如题,求各位大神帮小弟解答,在Xcode项目内创建文件后,想将新建文件的内容以字符串的形式输出,但输出结果却为空。代码如下:
   ifstream kernelFile("File.strings",ios::in);
   string programString(istreambuf_iterator<char>(kernelFile),(istreambuf_iterator<char>()));
   cout<<programString<<endl;

解决方案 »

  1.   

    我写了个OS X的测试程序,用的如下代码:#import <Foundation/Foundation.h>
    #include <iostream>
    #include <fstream>
    #include <string>int main(int argc, const char * argv[]) {
        std::string line;
        std::ifstream myfile ("File.strings");
        if (myfile.is_open())
        {
            while (! myfile.eof() )
            {
                getline (myfile,line);
                std::cout << line << std::endl;
            }
            myfile.close();
        }
        
        else std::cout << "Unable to open file";    return 0;
    }只要[NSBundle mainBundle]下有对应的文件,就能读取到,你先在程序中把[NSBundle mainBundle]打印出来,再用Finder去看看
      

  2.   

    我用各种方法读文件内容然后写都显示空。我怀疑是Xcode新建文件时候逻辑地址中的文件和物理地址中的文件不一致,您说可能是这样吗?
      

  3.   

    用这个路径就行了:NSString *file = [[NSBundle mainBundle] pathForResource:@"File" ofType:@"strings"];
    std::ifstream myfile ([file UTF8String]);