我写了一些代码来将任何字符串转换为摩尔斯电码。代码工作正常,直到我尝试自动重复它。
我是使用“while”还是“do while”代码只运行一次然后终止。 你能帮忙找出问题所在吗?
int main ()
{
cout<<"Enter the string: ";
char myStr[81];
char ch='y';
while (ch=='Y'||ch=='y')
{
getString(myStr);
toUpper(myStr,strlen(myStr));
removeSpace(myStr);
getMorse(myStr,strlen(myStr));
cout<<"to repeat press Y/y";
cin>>ch;
}
return 0;
}
我添加了getString()函数
void getString(char myStr[])
{
cin.getline(myStr,81,'\n');
}
答案 0 :(得分:1)
用户输入输入后,按Enter键。换行符'\n'
仍在cin
流中。您需要ignore
:
cin >> ch;
cin.ignore(numeric_limits<streamsize>::max(), '\n'); //this ignores all subsequent characters until the newline character