c语言遇到的问题

关于 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 3scanf 就会依次读取 1 2 3 ,最后输出的会是 3, 但是如此方式也会有它自己的用处。

读取字符

  • gets()同上
  • scanf()读取非空格字符(%s)或从指定集合(%[])中匹配非空字符

使用while循环从标准输入或某个文件中依次读入一个字符到缓冲区中,直到行尾或文件结尾,或者遇到其他相关终止符

  • getc()
  • fgetc()
  • getchar()

以上都可以配上循环使用,但是需要检查溢出

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值