我有一个简单的问题......假设我想从标准输入中读取行,只要有东西,但我不知道会有多少行。例如我在做功课,输入是
a
ababa
bb
cc
ba
bb
ca
cb
Run Code Online (Sandbox Code Playgroud)
我不知道到底会有多少行,所以我试过了
string *line = new string[100];
int counter = 0;
while(getline(cin,line[counter]))
{
counter++;
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用...感谢您的帮助。
您还可以为此使用文件结尾标记。它的用法是这样的。
std::ifstream read ("file.txt") ;
while(!read.eof())
{
//do all the work
}
Run Code Online (Sandbox Code Playgroud)
如果已到达文件末尾,则此函数返回 true。所以它会一直持续到你遇到它为止。
编辑:
正如评论中提到的,该方法eof可能很危险并且无法提供所需的结果。因此,不能保证它在所有情况下都能运行。您可以在这里查看这种情况何时可能发生。