从文件中读取,只读取文本,直到它变为空白

时间:2011-10-15 13:08:30

标签: c++ file dev-c++

我设法成功读取了文件中的文本,但它只读到空白区域,例如文本:“嗨,这是一个测试”,cout为:“嗨”。

删除“,”没有任何区别。

我想我需要在下面的代码中添加类似于“inFil.ignore(1000,'\n');”的内容:

inFil>>text;
inFil.ignore(1000,'\n');
cout<<"The file cointains the following: "<<text<<endl;

我宁愿不改为getline(inFil, variabel);,因为这会迫使我重做一个本质上有效的程序。

感谢您的帮助,这似乎是一个非常小且容易修复的问题,但我似乎无法找到解决方案。

2 个答案:

答案 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>()
);