Closed. This question is off-topic. It is not currently accepting answers. Learn more。
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
5年前关闭。
我有个问题真的很简单。我想从控制台扫描字符,这是我的代码:
问题是,当我打印这个字符时,它显示“t”或“n”,但它不希望我通过。这里怎么了?
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
5年前关闭。
我有个问题真的很简单。我想从控制台扫描字符,这是我的代码:
char odp;
printf("Czy uwazasz ze z Twoimi oczami jest coś nie w porzadku?\n");
scanf("%c",&odp);
printf("ZNAK ZCZYRTANY: %c\n",odp);
while(odp != 't' || odp != 'n'){
printf("zle dane wprowadz jeszcze raz\n");
scanf("%c",&odp);
}
if(odp == 'n') /* prawa galaz */ //JAKO "NIE" POZIOM 1
{
printf("Kontrola u okulisty jest potrzebna czesciej niz myslisz\n");
system("PAUSE");
return 0;
}
问题是,当我打印这个字符时,它显示“t”或“n”,但它不希望我通过。这里怎么了?
最佳答案
试试这个。你有两个问题
一个是有if症状的。应该是
奥德普!='t'&&odp!='n'
扫描程序在stdin上留下了一个“\n”。这导致第二次扫描失败。所以
您可以使用另一个虚拟字符刷新此'\n'。
试试这个
char odp;
char newline;
printf("Czy uwazasz ze z Twoimi oczami jest coś nie w porzadku?\n");
scanf("%c%c",&odp,&newline);
printf("ZNAK ZCZYRTANY: %c\n",odp);
while(odp != 't' && odp != 'n'){
printf("zle dane wprowadz jeszcze raz\n");
scanf("%c%c",&odp,&newline);
}
if(odp == 'n') /* prawa galaz */ //JAKO "NIE" POZIOM 1
{
printf("Kontrola u okulisty jest potrzebna czesciej niz myslisz\n");
system("sleep 10");
return 0;
}
关于c++ - 从控制台读取char ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21221222/
10-12 06:45