我现在使用的代码是:
char c[15];
ifstream f("file.txt",ios::in);
f.seekg(0);
while(!f.eof())
{f>>c;
cout<<c;
}
getch();
f.close();
答案 0 :(得分:4)
试试这个:
std::string text;
while (std::getline(f, text))
{
std::cout << text << std::endl;
}
不要使用字符数组,因为它们可能会溢出。
在您的代码中,由于数组的大小,每次读取限制为15个字符。
f >> c
可能会超出您的阵列,因为您还没告诉系统要读取多少个字符。
答案 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';
}