如何运行 while 循环直到到达行尾或空字符。
这是我的代码
#include<iostream>
using namespace std;
main()
{
char input[20];
cout<<"Enter a line: ";
cin>>input;
while(input!='\0')
{
cout<<"This is a text";
}
system("pause");
}
最佳答案
如果您想一直读到换行符或 NUL,请在循环内一次读取一个字符。
#include<iostream>
int main()
{
char input;
std::cout << "Enter a line: " << std::flush;
while(std::cin >> input && input != '\n' && input != 0) {
std::cout << "This is a test\n";
}
}
注意事项:
- main 需要一个返回类型
- 永远、永远不要说“使用命名空间标准;”
- 如果您希望
cout
立即出现,请不要忘记刷新。 - 注意
while
条件中的复合测试:- 首先,读取是否成功?
- 接下来,是不是
'\n'
(你的条件之一)。 - 接下来,是不是NUL(你的其他条件)。
- 循环体将针对每个输入字符执行一次——这是您想要的吗?
但是,请考虑您是否正确指定了您的要求。这是一个不寻常的要求——为什么文本文件中会有 NUL,为什么要单独处理每个字符?
在惯用的 C++ 中,您可以使用 std::getline
一次读取一行输入文件:
std::string myString;
while(std::getline(std::cin, myString)) {
// process myString
}
如果你只想在一行中阅读:
std::string myString;
if(std::getline(std::cin, myString)) {
// process myString
}
最后,如果你想读一行,并忽略它的内容:
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
关于c++ - While Loop 永远持续到输入字符串的结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8174728/