从控制台读取字符
reading char from console
我有一个非常简单的问题=.=。我想从控制台扫描字符,这是我的代码:
char odp;
printf("Czy uwazasz ze z Twoimi oczami jest coś nie w porzadku?n");
scanf("%c",&odp);
printf("ZNAK ZCZYRTANY: %cn",odp);
while(odp != 't' || odp != 'n'){
printf("zle dane wprowadz jeszcze razn");
scanf("%c",&odp);
}
if(odp == 'n') /* prawa galaz */ //JAKO "NIE" POZIOM 1
{
printf("Kontrola u okulisty jest potrzebna czesciej niz mysliszn");
system("PAUSE");
return 0;
}
问题是,当我打印这个字符时,它向我显示"t"或"n",但它不希望我通过。这是怎么回事?
试试这个。你有两个问题
- 一个是带有 if 条件。它应该是odp != 't' && odp != 'n'
- 扫描在标准输入上留下了一个""。这导致您的第二个 scanf() 失败。所以您可以使用另一个虚拟字符刷新此""。
试试这个
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: %cn",odp);
while(odp != 't' && odp != 'n'){
printf("zle dane wprowadz jeszcze razn");
scanf("%c%c",&odp,&newline);
}
if(odp == 'n') /* prawa galaz */ //JAKO "NIE" POZIOM 1
{
printf("Kontrola u okulisty jest potrzebna czesciej niz mysliszn");
system("sleep 10");
return 0;
}
请再看一遍。你知道为什么即使我输入正确的答案(正确的键),它也会向我显示两次或更多次 printf in while 循环吗?
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 mysliszn");
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);
}
}
相关文章:
- 尝试一次将单个字符读取到大小不确定的数组中
- C++将 txt 数据和字符读取到 2D 数组中
- C++ UTF-8 瑞典语字符读取为 ASCII
- C++逐个字符读取二进制文件字符
- 逐个字符读取文件并使用<cctype>
- C 如何通过特定n字符读取TXT文件的值
- 如何使用4个字符读取C 的文本文件
- 使用C++中的字符读取具有文件 I/O 的文件
- 是否可以从C 中的文件中的线中的特定字符读取
- 将字符读取到数组
- 如何在 c++ 中逐个字符读取文件并通过 array_name[index] 访问它
- 如何从文本文件中读取,C++中逐个字符读取
- 如何将多个字符读取合并为std::向量
- 在 c++ 中逐个从文件字符读取
- C++ 中有多少个方法逐个字符读取字符串,以对每个字符执行所需的操作
- scanf 只能将 3 个字符读取到 5 位字符数组中
- 将行的前 X 个字符读取为字符串
- 逐个字符读取以查看它是否是数字
- 如何从字符**读取字符串
- 如何逐个字符读取文件的全部内容