所以我有一个带有接收文件名的函数的 .cpp 文件,并且应该返回一个带有文件内容的字符串(实际上修改了内容,我修改了代码以使其更易于理解,但这对我的问题)。问题是f.good()
正在返回false
并且读取文件的循环不起作用。代码 :
#include "StdAfx.h"
#include "Form21.h"
#include <string>
#include <fstream>
#include <iostream>
string ReadAndWrite(char* a){
char filename[8];
strcpy_s(filename,a);
string output;
char c;
ifstream f(filename,ios::in);
output+= "Example text"; // <-- this writes and returns just fine!
c = f.get();
while (f.good())
{
output+= c;
c= f.get();
}
return output;
}
有谁知道为什么会这样?它是否与这是一个单独的 .cpp 文件有关(当我删除它时它甚至不会抛出错误#include <fstream>
)。也许有一种不同的方法来制作循环?我很高兴听到有关如何解决此问题的任何建议,或者关于如何实现我的目标的不同方法。