我在xCode中为我的iPhone资源添加了一个save.txt,文本相同“......”
我给文件写了一些字符串,而不是读它,但是当我读它时,我只得到旧的内容..所以没有新的内容写入其中
NSString* resources = [ [ NSBundle mainBundle ] resourcePath ] ;
std::string respath( [ resources UTF8String ] ) ;
std::string fpath = respath + "/" + "save.txt" ;
std::ofstream file;
file.open(fpath.c_str(), std::ios::out );
file << "some text\n";
file.close();
std::ifstream rf;
rf.open(fpath.c_str(), std::ios::in );
char str[255];
while(rf) {
rf.getline(str, 255);
if(rf) printf("%s", str);
}
答案 0 :(得分:12)
您无法在应用程序包中编写或修改文件,file.open()调用肯定会失败,但您不会检查错误。相反,您应该写入应用程序的Documents文件夹。
根据您的代码示例,即:
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsPath = [searchPaths objectAtIndex:0];
std::string respath( [ documentsPath UTF8String ] ) ;
答案 1 :(得分:1)
写作时永远不会检查错误。事实上,你没有写入该文件和错误代码,如果选中,可能会告诉你更多关于错误的信息而不是我的回答。