两次读取std::cin的输入

Reading input from std::cin TWICE

本文关键字:cin 输入 std 读取 两次      更新时间:2023-10-16

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

例如,假设我有以下文件input.txt:

"向你的新世界问好"

和下面的get循环来接收input.txt文件:

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

我怎么能接受两次输入?

您将无法重读标准输入流。如果你真的需要阅读两次内容,你必须存储它,例如:

std::stringstream input;
input << std::cin.rdbuf();
input.seekg(0);
// use input and seek back to the beginning if needed

使用rewind(stdin)

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