关于 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()
以上都可以配上循环使用,但是需要检查溢出
本文深入探讨了C语言中的getchar()函数及其在字符和整数输入处理中的应用,对比了getchar(), scanf(), 和 gets()的不同特性,并提供了处理ASCII码和避免缓冲区溢出的实用技巧。
4939

被折叠的 条评论
为什么被折叠?



