我设法成功读取了文件中的文本,但它只读到空白区域,例如文本:“嗨,这是一个测试”,cout为:“嗨”。
删除“,”没有任何区别。
我想我需要在下面的代码中添加类似于“inFil.ignore(1000,'\n');
”的内容:
inFil>>text;
inFil.ignore(1000,'\n');
cout<<"The file cointains the following: "<<text<<endl;
我宁愿不改为getline(inFil, variabel);
,因为这会迫使我重做一个本质上有效的程序。
感谢您的帮助,这似乎是一个非常小且容易修复的问题,但我似乎无法找到解决方案。
答案 0 :(得分:4)
std::ifstream file("file.txt");
if(!file) throw std::exception("Could not open file.txt for reading!");
std::string line;
//read until the first \n is found, essentially reading line by line unti file ends
while(std::getline(file, line))
{
//do something line by line
std::cout << "Line : " << line << "\n";
}
这将帮助您阅读该文件。我不知道你要实现的是什么,因为你的代码不完整,但上面的代码通常用于读取c ++中的文件。
答案 1 :(得分:2)
你一直在使用格式化提取来提取单个字符串,一次:这意味着一个单词。
如果你想要一个包含整个文件内容的字符串:
std::fstream fs("/path/to/file");
std::string all_of_the_file(
(std::istreambuf_iterator<char>(filestream)),
std::istreambuf_iterator<char>()
);