我目前正试图让我的程序退出时,“退出”是打出来,但它不会工作,什么也没有发生。有时它终止它。我是超级新的所有编码,所以任何帮助是赞赏。这是我写的:
下面是代码第一部分的阅读行引用的内容。我在编写这些内容时得到了帮助,现在没有了帮助,我很难理解。我想这是学习的时刻。
int main(){
int length = 1024;
char *mainInput = new char[length];
Start(mainInput, length - 1);
delete []mainInput;
return 0;
}
void Start(char* &input, int length){
char message[] = "Type quit to exit program. Type any other line to begin: ";
ReadLine(input, length, message);
if(strstr(input, "quit")){
cout << "Terminating program." << endl;
exit(0);
}
cout << "Youre string is: " << input << endl;
int option;
cout << "Choose option: (Vowels_Vs_Consonants (1), Letter_Swap (2), Flip_String (3), Palindrone_Detector(4), Words_Frequency(5)): ";
cin >> option;
switch(option){
case 1:
vowels_vs_consonants(input);
break;
case 2:
letter_swap(input);
cout << "Our new string: " << input << endl;
break;
case 3:
reverse_string(input);
cout << "Original: " << input << endl;
break;
case 4:
if(is_palindrome(input)){
cout << "It is a palindrome." << endl;
}
else{
cout << "It is not a palindrome." << endl;
}
break;
case 5:
word_frequency(input);
break;
default:
Start(input, length);
break;
}
cin.clear();
Start(input, length);
}
Added code for understanding:
void ReadLine(char* &charArray, int length, char* message){
cin.clear();
cout << message; cin.getline(charArray, length);
if(cin.fail()){
cin.ignore(length,'\n');
cin.clear();
ReadLine(charArray, length, message);
}
cin.clear();
cin.ignore();
}
I've tried messing around with the capitalization factor but I can't get it to compile.
1条答案
按热度按时间yqlxgs2m1#
我认为问题出在你的ReadLine()函数中。因为我不知道你的ReadLine()包含什么,我假设其他评论者说的是这种情况(你也阅读了换行符)。上面的解决方案是有效的,但我不知道这是否是你的问题。
我能想到的另一个解决方案是:
1.修改“input”变量,去掉“strstr”之前结尾处的换行符。
1.正在添加cin.忽略('\n');某处
(Note:我复制了你的代码,并删除了一些,以使我的解决方案更具可读性。我是一名学生,所以我的代码可能不是最合理/优化的太)
希望能有所帮助!