c++ primer plus中里面有个代码不懂
cin.get(tem,SIZE);
while(cin);
不太懂while(cin);这个语句
循环读取未知数量的数据吧,直到遇到结束符或无效的输入退出, 应该还要加上个变量吧,比如:
int value;
while(cin >> value) // 通过检测其流的状态来判断结束(遇到结束符或无效的输入退出)
{
}
该回答引用NewBing
在C++中,while(cin)是一个循环,它将读取输入流(cin)并在读取到EOF时停止。EOF是一个特殊的字符,表示输入流的结束。在这个例子中,while(cin)循环将一直运行,直到读取到EOF。(1)(2)
在你提供的代码中,cin.get(tem,SIZE);将从输入流(cin)中读取SIZE-1个字符并将它们存储在tem数组中。然后,while(cin);将一直运行,直到读取到EOF。因为while(cin);没有任何条件来终止循环,所以它将一直运行下去。(1)(2)
源: 与必应的对话, 2023/4/19
(1) c++ - Cin in a while loop - Stack Overflow. https://stackoverflow.com/questions/19307979/cin-in-a-while-loop.
(2) While(cin) - C++ Forum. https://cplusplus.com/forum/beginner/115079/.
(3) C++ Primer Plus - Stephen Prata - Google Books. https://books.google.com/books/about/C++_Primer_Plus.html?id=P7HuWSWtsh0C.
这个语句会一直等待用户的输入直到用户输入ctrl+C或者ctrl+Z结束输入。它的作用是保持程序的运行状态,以便用户随时输入数据并与程序进行交互。在某些程序中可能需要等待用户的输入,这时就可以使用while(cin)来实现这个功能。
以下是示例代码:
#include <iostream>
int main()
{
std::cout << "请输入数字:\n";
int num;
while(std::cin >> num) // 等待用户输入
{
std::cout << "您输入的数字是:" << num << "\n";
}
return 0;
}
在这个例子中,用户可以输入一个数字,并且程序会一直等待用户输入,直到用户输入错误或使用ctrl+C或者ctrl+Z退出程序。