scanf函数读取原理及某个问题的解决办法

本文介绍了C语言中scanf函数的使用方式,包括如何输入字符、字符串和数值类型的数据。同时,文章指出scanf函数在读取数据时会受缓冲区影响的问题,当遇到空格或回车符时会停止读取。为了解决这个问题,提出了使用getchar()函数清空缓冲区的方法,确保后续输入的正确性。
摘要由CSDN通过智能技术生成

        scanf函数是C语言初学者经常使用的一种用于键盘输入的标准库函数,我们可以通过scanf函数输入字符,字符串,整数,浮点数等多种类型的参数,对于像我这样的初学者来说是一个简单友好易上手的函数。

1.scanf函数输入数据的方式

scanf在使用前需要引用标准输入\输出头文件<stdio.h>:

#include <stdio.h>

       scanf函数只能读取数据的地址,直接输入数据本身会导致函数无法使用,需要使用取地址操作符&将数据地址取出,作为scanf函数的输入参数,才能正常输入数据:

int main()
{
	int a = 0;
	
	printf("请输入一个整数:>");
	scanf("%d", a);//err - 应改为scanf("%d", &a);

	return 0;
}

        在用数组存储字符或者字符串时,数组名本身就是地址,因此不需要使用取地址操作符&就能正常输入:

int main()
{
	char arr1[20] = { 0 };
    char arr2[] = { 0 };
	
	printf("请输入一个字符串:>");
	scanf("%s", arr1);
    printf("请输入一个字符:>");
    scanf("%c", arr2);

	return 0;
}

2.scanf函数读取数据的缺陷以及解决办法</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值