C语言与C++中常见的读取函数

C语言

一.scsanf()函数

1.介绍:

scanf("输入格式控制符"&输入参数);
若输入格式与格式控制符不相符合,则输入无效(大概率出现错误)

2.注意点
a. scanf不是直接在键盘上读取数据,而是在输入缓冲区读取;(键盘上的任意输入都会放入缓冲区,当然就包括了空格与回车)
b. 读取遇到空格或者换行符结束读取(输入格式内有空格不受影响);
例如:

char a[20];
scanf("%s",a);
printf("%s\n",a);

运行这段代码就会出现下图情况:
在这里插入图片描述
其中输入i love you,预期打印i love you,结果:输出i;
原因正如以上a,b俩点所示,要解决的话则需要反复读取,比较麻烦,在这里不做介绍。
3.如何清空缓冲区(避免scanf误读):
使用以下几个函数之一:

a. rewind(stdin);
b.setbuf(stdin,NULL);//通用性可能不是很高
c.fflush();//VS上可用,其他编译器不保证

二.gets()函数

1.介绍:

gets(所需读取的字符串的地址);
功能:从输入缓冲区读取一个字符串

2.注意点:
a.遇到换行符(回车)结束(空格不结束读取);
b.在使用完gets()函数后,系统会自动取出换行符,因此不用认为刷新缓冲区
举例:

char str[20];
gets(str);  //例如直接输入i love you
printf("%s\n",str);

输出结果:
在这里插入图片描述
可以解决上边scanf()读取英文句子时需要反复读取的弊端。

三.getchar()函数

1.功能:
在缓冲区读取一个字符(包括空格,回车,Tab),若读取到的为数字,也当作字符处理。
2.注意:
a.一次只能从缓冲区读取一个字符;
b.在读取时,在输入完之后需要输入一个回车键,getchar才会拿到这个字符,因此
char a; a=getchar(); putchar(a);
这段代码若要打印出a则需要输入俩次回车键;
c.若在输入时,输入了超过一个的字符,则一个getchar只能读取一个,剩下的还会停留在缓冲区,等待下一个getchar来读取;

四.getch()函数

功能:
与getchar函数功能相似
注意:
a.头文件:#include<conio.h>
b.在键盘上输入后会直接打印 ,不需用按回车。
c.在linux平台下时,还应该在使用函数之前使用initscr(),使用完之后调用endwin().否则的话不需输入就会直接返回。

C++读取函数

一.getline()函数

一.功能:
读取一个字符串,遇到换行符结束读取。
二.用法:

头文件:<string>
getline(cin,所要读取的字符串的地址);
其中cin是标准输入流

二.cin

用法:

cin>>str;
str为字符串地址;
读取遇到换行符 空格结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值