从事我的第一个编程任务,一个文本到莫尔斯(和后面)转换器,但无论出于什么原因,当我介绍一段文字与单词之间的空格时,我的程序进入无限循环并崩溃。有任何想法吗?很抱歉,如果这个描述很糟糕,仍然可以解读编程术语。
这是程序无法正常运行的部分:
{
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 ;
}
答案 0 :(得分:0)
stop_string
在我看到的任何地方都没有定义。为了通过递增来打破循环,您需要定义stop_string
。 find_string = find_string+1;
也可以缩短为find_string++
答案 1 :(得分:0)
首先,你没有在任何地方定义stop_string变量。首先定义它或使用另一个变量。如果在此处使用字符串长度意图,请使用您创建的str_length。 其次,如果要在单词之间输入空格,请使用getline而不是cin。 cin划定空间特征。