【发布时间】:2020-05-04 19:03:09
【问题描述】:
我的函数读取一个文件并将其放入一个字符串中以便我处理它。显然,我需要在 EOF 之前阅读。问题是 EOF 字符也放在字符串中,我找不到绕过它的方法,因为它会导致程序的其他部分失败。我链接下面的函数。
string name_to_open, ret = string();
ifstream in;
getline(cin, name_to_open);
in.open(name_to_open.c_str());
if (!in.is_open()) {
cout << "Error." << endl;
return string();
}
else {
ret += in.get();
while (in.good()) {
ret += in.get();
};
};
in.close();
return ret;
该函数可以正常读取到文件末尾,然后附加 EOF 和 \0。我该如何解决这个问题? EOF 字符在控件中工作正常吗?我还尝试在循环结束时添加一行ret[ret.size() - 1] = '\0';,但这似乎也不起作用。
【问题讨论】:
-
你怎么看这个“EOF字符”?