【发布时间】:2019-08-08 09:33:52
【问题描述】:
我正在尝试编写一个将名称读取为 C 样式字符串的简单程序。 然后将名称垂直打印,每行一个字符。
目前当程序提示用户输入他们的名字时,例如。亨利詹姆斯,只有“亨利”是垂直打印的。它在名称之间的中断处停止打印。
char myName[ 64 ] = "";
cout << "Enter your name: ";
cin.get( myName, 64 );
int i = 0;
while ( myName [ i ] != ' ' )
{
cout << myName[ i ] << endl;
i++;
}
getch();
return 0;
我尝试将 cin.ignore() 放在 cin.get() 之前的行,但这最终会破坏程序。我在 while 循环中遗漏了什么?
【问题讨论】:
-
您明确写到您的循环应该在 ' ' 空格字符处停止。一切都符合预期:-)
-
如果您每行输入多个单词,并且希望它们 all 在一个字符串中,请使用
std::getline。这就是该功能的真正用途。 -
哈!愚蠢的错误,谢谢:)
标签: c++ while-loop control-structure