用getline从文件中读取输入
问题描述:
我似乎对文件输入有一个基本的误解。我认为我的方法适用于我正在研究的项目,但它根本不适用。下面是代码:用getline从文件中读取输入
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int main(){
ifstream input;
char fname[20], lname[20];
input.open("text.txt");
input.getline(lname, 20, ',');
input.getline(fname, 20, ' ');
cout << lname;
cout << fname;
}
从一个文件中我有:
Squarepants, Spongebob
和COUT语句不输出任何东西
我做错了吗?
感谢
答
这可能是一个很好的模式来使用:
std::string lineOfText;
while(fileAccessor.good()) {
fileAccessor.getline(lineOfText);
//
// do stuff
// do stuff
//
if(fileAccessor.eof()) break;
}
+1
或者,删除单独的'good()'和'eof()'检查,并使用'while(fileAccessor)'来代替。流有一个['operator bool()'](http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool),当流处于“bad”,“fail”或'eof'状态。 –
假设文件实际上被打开(我的意思是你没有提供任何细节,为此,所以也许它没有) ,并且读取成功,[有输出](http://coliru.stacked-crooked.com/a/fa9aa3ae6685a19a)。 – chris
确保您的文件已成功打开。另外,请始终验证读取操作是否成功。 –
@chris对不起,我只是想掀起我的实际项目的一个片段,并没有包括错误检查,只是为了看看我能否在另一个环境中工作。我仍然没有输出,它可能是视觉工作室吗? –