求助
/* Note:Your choice is C IDE */#include "stdio.h"
void main()
{
char a ,b ;
while(1)
{
printf("请输入一个字符:");
scanf("%c",&a);
if('a'<=a&&a<='z')
{
b = a - 32;
printf("%c的大写字母是%c\n",a,b);
getchar();
printf("\n");
}
else if ('A'<=a&&a<='Z')
{
printf("%c它不是一个小写字母\n",a);
getchar();
printf("\n");
}
else
{
printf("%c它不是一个小写字母\n",a);
getchar();
printf("\n");
}
}
}
这段代码,如何在输入ii的时候只读取首字符 利用数组,完美取出第一个字符
#include<stdio.h>
void main()
{
char ch,cha;
char b = "";
while(1)
{
printf("请输入一个字符,");
scanf("%c",&ch);
getchar();
b = ch; // 将接收到的字符存入字符数组
ch = b; // 将数组的第一个元素赋给变量 ch;
fflush(stdin); // 清除键盘缓冲区
if('a' <= ch && ch <= 'z')
{
cha = ch - 32;
}
else
{
printf("%c它不是一个小写字母\n",ch);
printf("\n");
continue;
}
printf("%c的大写字母是:%c\n",ch,cha);
printf("\n");
}
}
ffulsh这个没懂是什么 我是第一名 发表于 2020-10-18 18:36
ffulsh这个没懂是什么
看一个简单的程序:
#include <stdio.h>
int main()
{
char c;
scanf("%c", &c);
printf("%d\n", c);
scanf("%c", &c);
printf("%d\n", c);
return 0;
}
运行这个程序,输入1, 并按enter键,结果为:
49
10
这个结果是正常的,字符 1 对应的 ASCII 值为 49, enter 键对应的 ASCII 值为 10, 所以就有这样的结果。由此可以看出,第二个 scanf 函数执行了,从缓冲区中得到了回车键的值(当然,这个值不是我们想要的),那么我们如何在读取到我们所需要的值之后,就需要将缓冲区里的废弃数据冲掉,正业下次的键盘输入作好准备,就得用 fflush 函数就可以了。
页:
[1]