获取莫尔斯电码转换器的字符串长度会保持循环

时间:2012-08-26 17:34:36

标签: c++ morse-code

从事我的第一个编程任务,一个文本到莫尔斯(和后面)转换器,但无论出于什么原因,当我介绍一段文字与单词之间的空格时,我的程序进入无限循环并崩溃。有任何想法吗?很抱歉,如果这个描述很糟糕,仍然可以解读编程术语。

这是程序无法正常运行的部分:

    {

        string user_input;
        cout << "----------------------------------------" <<endl
        << "Text to Morse Mode" << endl
        << "Enter text for conversion : "<<endl;
        cin >> user_input;
        cout << endl << endl << user_input << " converts to : ";
        unsigned int str_lenght;
        str_lenght=user_input.size();
        cout << endl;

        for (i=0;i<str_lenght;i++)
        {

            find_string=0;

            while (find_string < stop_string)
            {


                if (user_input[i]==text[find_string][0])
                {
                    count=1;
                    cout << morse[find_string] << " ";
                    break;


                }

                find_string = find_string+1;
            }

        }

        cout << endl << endl << endl;

        if (count==0)
            cout << endl << " an error was encountered " << "\a" << endl ;
    }

2 个答案:

答案 0 :(得分:0)

stop_string在我看到的任何地方都没有定义。为了通过递增来打破循环,您需要定义stop_stringfind_string = find_string+1;也可以缩短为find_string++

答案 1 :(得分:0)

首先,你没有在任何地方定义stop_string变量。首先定义它或使用另一个变量。如果在此处使用字符串长度意图,请使用您创建的str_length。 其次,如果要在单词之间输入空格,请使用getline而不是cin。 cin划定空间特征。