C++ 当循环再次重复时
我不知道我的代码出了什么问题,它又在重复C++ 当循环再次重复时,c++,c,input,char,C++,C,Input,Char,我不知道我的代码出了什么问题,它又在重复 do { scanf("%c", &operacao); //Tratamento de erro (Validando a informacão vinda do usuário if ((operacao != '*') && (operacao != '+') && (operacao != '-')) { printf("-----
do {
scanf("%c", &operacao);
//Tratamento de erro (Validando a informacão vinda do usuário
if ((operacao != '*') && (operacao != '+') && (operacao != '-')) {
printf("---------------------------------------\n");
printf("***** MENSAGEM DE ERRO *****\n");
printf("---------------------------------------\n");
printf("Você digitou um valor inválido!\n");
printf("Por favor, digite + para soma, - para subtração * para multiplicar ou / para dividir!\n");
}
} while ((operacao != '*') && (operacao != '+') && (operacao != '-'));
使用以下语句
scanf(" %c", &operacao);
^^^
否则,也会读取空白字符(例如,与按下的Enter键相对应的新行字符“\n”)。听起来您可能需要学习如何使用调试器逐步完成代码。有了一个好的调试器,您可以逐行执行您的程序,并查看它偏离预期的地方。这是一个必要的工具,如果你要做任何编程。进一步阅读:1。读完歌剧后再把它打印出来。2.歌剧是什么类型的?打印值将帮助您理解while循环。既然您标记为C++,则应考虑<代码> CIN > C <代码>,而不是<代码> SCANF。您需要检查<代码> SCANF< /COD>的返回值。
scanf
返回满足的参数数量,如果有错误,返回-1。不要相信用户输入正确的数据。Thx提示-我已经解决了这个问题。谢谢你的关注。@AlexSousa一点也不。不客气。