提问人:Jacolack 提问时间:11/6/2019 最后编辑:CommunityJacolack 更新时间:11/6/2019 访问量:318
C++ istream.get() 解压后返回换行符 [复制]
C++ istream.get() after extraction returning newline [duplicate]
问:
这是最小代码的链接,如果它在这里消失了,那就是如果你想在 cpp.sh 中运行它:
#include <iostream>
int main()
{
int num1;
int num2;
std::cout << "Enter num1: ";
std::cin >> num1;
std::cout << std::cin.get() << "\n";
std::cout << "Enter num2: ";
std::cin >> num2;
std::cout << std::cin.get() << "\n";
std::cout << "You're nums: " << num1 << ", " << num2 << "!\n";
}
我对为什么返回 ASCII 'LF'(解析为“10”)感到困惑,即使已经读取了整行。cin.get()
cin >> num1
编辑:
这个问题出现在我使用格式化提取的文件中读取时,我想在格式化提取使用的换行符之后返回下一个可用字节。相反,它返回了该换行符。我很困惑,如果换行符实际上是“下一个可用”字符,这如何不会“搞砸”后续的提取调用。file.get()
答:
0赞
Vlad from Moscow
11/6/2019
#1
std::cin.get()
当您按 Enter 键时,读取存储在输入缓冲区中语句后面的新行字符。std::cin >> num2;
评论
std::getline
std::getline
std::istream::get()
std::skipws
操纵器。在开始执行格式化输入时,流将丢弃流中的前导空格。