我有一个问题,真的是SIMPLE =。=。我想从控制台扫描角色,这是我的代码:
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”,但它不希望我得到它。这有什么不对?
答案 0 :(得分:2)
试试这个。你有两个问题
试试这个
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;
}
答案 1 :(得分:0)
请再看一遍。你知道为什么即使我输入正确的答案(右键),它也会在循环中显示两次或更多次printf?
printf("Czy uwazasz ze z Twoimi oczami jest coś nie w porzadku?\n");
scanf("%c",&odp);
while(odp != 'T' && odp != 'N'){
printf("zle dane wprowadz jeszcze raz");
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;
}
else if(odp == 'T') //LEWA GALAZ POZIOM 1
{
printf("Czy bola Cie oczy?\n");
scanf("%c",&odp);
while(odp != 'T' && odp != 'N'){
printf("zle dane wprowadz jeszcze raz");
scanf("%c",&odp);
}
if(odp == 'T')
{
printf("Kontrolujesz tonus - cisnienie galkowe?\n");
scanf("%c",&odp);
}
}