C/C++中的常见输入输出问题

C/C++中的常见输入输出问题

虽然大部分算法不是考查语法,输入都比较简单,一般先输入一个n,然后再输入n个数据,但也有些算法,尤其是格式复杂,涉及字符串处理的算法,它的输入就会比较麻烦,这里总结了c/c++中常见的输入函数。

scanf

这个是最经典的,也是最灵活的,它是格式化输入,对输入形式比较严格,它会在下列情况结束一个数据的输入

  1. 遇空格、“回车”、“跳格”键。
  2. 遇宽度结束。
  3. 遇非法输入

sscanf

把字符串赋值给其他变量

sscanf(str,"%d",&a);

利用循环语句

如果输入数据的数量未定,就可以用while语句进行输入

//c
while(scanf("%d",&a)!=EOF){
}
//c++
while(cin>>a){
}

getchar

这是一个无参数的函数,读取下一个字符(包括空格和回车)

c=getchar();

因为scanf输入会给缓冲区留下一个\n,所以一般用getchar清除缓冲区,比如

while(getchar()!='\n')

gets

gets用于从缓冲区中读取一个字符串类型,以回车结尾,同时也会取出回车

gets(str);

cin

输入分割:Tab,Space,Enter 缓冲区输入结束:Enter

但同样无法清除缓冲区中的回车

cin>>a>>b;

cin.getline

接受一个char类型的字符,包括空格

cin.getline(str,接受字符个数,结束字符);

getline

getline(cin,str,结束符);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值