c++ - 从 std::cin 读取输入两次

标签 c++ input iostream cin

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

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

“向你的新世界问好”

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

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

关于c++ - 从 std::cin 读取输入两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17958571/

相关文章:

c++ - cin >> val 有时会读取 0,具体取决于 Ctrl-Z

c++ - Segmentation Fault (Core Dumped) 从文件读取后

javascript - 多维名称选择器

java - 我将如何跨多行搜索一串单词

c++ - 为什么我的 vfptr 表条目混淆了?

c++ - 修改系统时钟时,boost::deadline_timer 可能会失败

python - 如何让用户在两个选项之间进行选择?

c++ - 为什么我不能使用 std :cin as an argument

c++ - 如何使用 Direct3D9 缩放 IDirect3DTexture9?

c++ - C++ 中多个值的多线程原子存储/加载