3

当我使用 cin.get 函数从 cin 获取输入时,它会自动更新输入文件中的读取位置。我应该怎么做才能将读取位置返回到文件的开头,以便我可以再次输入输入?

比如说我有以下文件input.txt

“向你的新世界问好”

和以下获取循环以获取 input.txt 文件:

while(cin.get(charTemp)){
     numberOfChars++; 
} 

我怎么能输入两次?

4

2 回答 2

7

您将无法重新读取标准输入流。如果您确实需要两次阅读内容,则必须将其存储,例如:

std::stringstream input;
input << std::cin.rdbuf();
input.seekg(0);
// use input and seek back to the beginning if needed
于 2013-07-30T23:12:55.307 回答
-1

利用rewind(stdin)

http://www.cplusplus.com/reference/cstdio/rewind/供参考。

于 2013-07-30T22:33:20.673 回答