读取stdio.h时无限循环

时间:2012-04-29 17:48:02

标签: c++

为什么以下程序陷入无限循环?

int main()
{
    string fname = "C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include\\stdio.h";
    char line[985];

    ifstream file(fname.c_str());

    if(file == NULL)
    {
        cout<<"unable to open";
        exit(0);
    }

    while(!file.eof())
    {
        file.getline(line,'\n');
        cout<<line<<'\n';
    }
}

1 个答案:

答案 0 :(得分:2)

getline()的第二个参数是流大小,第三个是分隔符。

而不是:

file.getline(line,'\n');

试试这个:

file.getline(line,256,'\n');