当前位置:  开发笔记 > 编程语言 > 正文

ifstream,行尾和移动到下一行?

如何解决《ifstream,行尾和移动到下一行?》经验,为你挑选了1个好方法。

我如何使用std :: ifstream检测并移动到下一行?

void readData(ifstream& in)
{
    string sz;
    getline(in, sz);
    cout << sz <> v;
        if (in.good())
            cout << v << " ";
    }
    in.seekg(0, ios::beg);
    sz.clear();
    getline(in, sz);
    cout << sz <

我知道很好会告诉我是否发生了错误,但一旦发生这种情况,流不再有效.如何在阅读另一个int之前检查我是否在行尾?



1> Martin York..:

使用ignore()忽略所有内容,直到下一行:

 in.ignore(std::numeric_limits::max(), '\n')

如果你必须手动完成,只需检查其他字符,看看是否'\n'

char next;
while(in.get(next))
{
    if (next == '\n')  // If the file has been opened in
    {    break;        // text mode then it will correctly decode the
    }                  // platform specific EOL marker into '\n'
}
// This is reached on a newline or EOF

这可能是失败的,因为您在清除坏位之前正在进行搜索.

in.seekg(0, ios::beg);    // If bad bits. Is this not ignored ?
                          // So this is not moving the file position.
sz.clear();
getline(in, sz);
cout << sz <

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有