自动重复代码

时间:2013-04-07 05:56:44

标签: c++

我写了一些代码来将任何字符串转换为摩尔斯电码。代码工作正常,直到我尝试自动重复它。

我是使用“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');
}

1 个答案:

答案 0 :(得分:1)

用户输入输入后,按Enter键。换行符'\n'仍在cin流中。您需要ignore

cin >> ch;
cin.ignore(numeric_limits<streamsize>::max(), '\n'); //this ignores all subsequent characters until the newline character