通过C ++读取和显示大型文本文件

时间:2017-02-02 15:13:43

标签: c++ text-files

我正在研究c ++的基础知识。 我想通过C ++显示ANSI表单的.txt文件,但它只显示25行; 怎么做才能显示100行以上的大文本文件?

我现在使用的代码是:

char c[15];
ifstream f("file.txt",ios::in);
f.seekg(0);
while(!f.eof())
{f>>c;
cout<<c;
}
getch();
f.close(); 

2 个答案:

答案 0 :(得分:4)

试试这个:

std::string text;
while (std::getline(f, text))
{
  std::cout << text << std::endl;
}

不要使用字符数组,因为它们可能会溢出。

在您的代码中,由于数组的大小,每次读取限制为15个字符。

f >> c可能会超出您的阵列,因为您还没告诉系统要读取多少个字符。

另见Why eof in a loop is bad

答案 1 :(得分:1)

阅读Why is iostream::eof inside a loop condition considered wrong?

如果必须使用字符数组作为缓冲区,则应使用std::istream::read及其大小。为了做到这一点,需要做更多的工作。

你可能更喜欢:

#include <iostream>
#include <fstream>
#include <string>

int main(){
    std::ifstream file("file.txt");
    for(std::string line; std::getline(file, line);)
        std::cout << line << '\n';
}