关于 getchar() 的使用
getchar() 是处理屏幕上输入的字符或整数(每次只读取一个),如果输出用 %c 则输出其原始数据,若用 %d 输出对应的ASCII码。
char a[50];
t = 0;
a[t] = getchar();
printf ("%c",a[t]);
//上面是将单个字符赋值给 a[]
接下来举个整数的例子
int a[50];
t = 0;
a[t] = getchar();
printf ("%d", a[t]);
输入:7 输出:55
解决 getchar()读入的单个字符后用 scanf("%d",a[t])
输出ASCII码的问题
如果你用 getchar() 后想输出原始数据就需要减去
'0'
,一般是针对于其ASCII码大于 48 的进行处理,也就是说一般是对于十进制数进行处理,举个例子吧3’ - ‘0’ 对应的ASCLL码就是 51-48 ,结果是3
k = a[1] - '0';
printf ("%d",k);
gets()
: gets()
函数是从标准输入中读取一行到缓冲区中,直到 EOF
或者 换行
,但是并不检查溢出情况。
关于scanf的问题
c语言中对于输入整数而言,输入的整数之间是没有间隔的就直接存储在了对应的内存区,若输入的是
1 2 3
则scanf
就会依次读取1 2 3
,最后输出的会是3
, 但是如此方式也会有它自己的用处。
读取字符
- gets()同上
scanf()
读取非空格字符(%s)或从指定集合(%[])中匹配非空字符
使用
while
循环从标准输入或某个文件中依次读入一个字符到缓冲区中,直到行尾或文件结尾,或者遇到其他相关终止符
getc()
fgetc()
getchar()
以上都可以配上循环使用,但是需要检查溢出