C++ 除非未给出输入,否则退出循环 intmain() { 字符串名; while(cin>>名称) { 如果(名称=='\n') 打破 其他的 { cout
新行字符C++ 除非未给出输入,否则退出循环 intmain() { 字符串名; while(cin>>名称) { 如果(名称=='\n') 打破 其他的 { cout,c++,while-loop,C++,While Loop,新行字符'\n'是一个空白字符,默认情况下,运算符>>会跳过该字符作为输入流。请改用例如成员函数getline 这是一个演示程序 int main() { string name; while(cin>>name) { if(name=='\n') break; else { cout<<name; } } cout<<"Exited"; } #包括 int main() { 字符名[30]; w
'\n'
是一个空白字符,默认情况下,运算符>>会跳过该字符作为输入流。请改用例如成员函数getline
这是一个演示程序
int main()
{
string name;
while(cin>>name)
{
if(name=='\n')
break;
else
{
cout<<name;
}
}
cout<<"Exited";
}
#包括
int main()
{
字符名[30];
while(std::cin.getline(name,sizeof(name))&&name[0])
{
std::cout使用std::string
#include <iostream>
int main()
{
char name[30];
while ( std::cin.getline( name, sizeof( name ) ) && name[0] )
{
std::cout << name << std::endl;
}
std::cout << "Exited\n";
return 0;
}
#包括
#包括
int main()
{
while(true)
{
std::字符串名;
std::cout要观看的节目:
让我们添加正确的标题
让我们不要使用命名空间std;
执行,因为它会导致问题
让我们使用getline()
而不是operator>
,这样我们可以看到整行
让我们使用std::string
而不是字符的C-array
可以在while测试中检查空行
让我们添加'\n'
,以便查看输出
让我们做一些漂亮的格式化
结果:
#include <iostream>
#include <string>
int main()
{
while (true)
{
std::string name;
std::cout << "Enter a name: ";
getline( std::cin, name );
if (!std::cin or name.empty())
break;
// do stuff with name here
}
std::cout << "Exited\n";
}
#包括
#包括
int main()
{
std::字符串名;
while(std::getline(std::cin,name)&&name!=“”)
{
std::cout您的代码中有几个问题
首先,您不能将“cin>>名称”置于while条件中
这是完全错误的
您有字符数组(名称[30])
然后你想把它和用户的输入进行比较,因为你没有声明数组,所以它是错误的
然后,在下一个条件中,name=='\n'对于所需的内容无效
在我们的cmd控制台中,我们只能放置您不能使用的字符'\n'
在main函数的末尾,您必须返回一些内容(可能会让人困惑)
只需在最后写上“返回0”,就可以了
我建议您使用以下代码:
#include <iostream>
#include <string>
int main()
{
std::string name;
while(std::getline(std::cin, name) && name != "")
{
std::cout << name << "\n";
}
std::cout << "Exited\n";
}
#包括
使用名称空间std;
int main(int argc,字符**argv){
字符名[30];
而(1)
{
cin>>名称;
如果(名称[0]=“E”)
打破
其他的
{
CUTUY应该使用<代码> GETLION>代码:ST>::String < /C> >而不是< Calp> char []/Calp>。@ Apple Apple,你这样说是(GETLIN(name)){},并在编译器中打开一个高警告级别:<代码>….MCP.CP:10:21:错误:ISO C++禁止指针和整数之间的比较[-fPrime][Case> <代码>(name=='\n)]。
要正确使用getline
,请参阅此处的文档和示例代码:对字符*的无限制输入提取也是代码中的一个严重问题。不要这样做。
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
char name[30];
while(1)
{
cin >> name;
if( name[0] =='E')
break;
else
{
cout<<name;
}
}
cout<<"Exited";
return 0;
}