小技巧-整行读入

基克船长告诉我scanf是可以读空格的,比赛的时候是不能用gets的,getchar是可以代替gets的。
本菜鸡就去搜了一下,整合如下:

scanf 读一行

#include <stdio.h> 
int main() 
{ 
    char str[80]; 
    scanf("%[^\n]",str); //读到'\n'结束读取
    printf("%s",str);
    return 0; 
}

延申:

//读到'\n'结束读取,存入str,再抛弃一个字符
scanf("%[^\n]%*c",str);
//读到'\n'结束读取,并将其读到的数据抛弃,然后再抛弃一个字符(这个字符是'\n')
//此时缓存中不存在任何字符
scanf("%*[^\n]%*c");

getchar 这样是读字符 如果是数字的话就用一个游标一个个读 大概也类似吧

int c;
while((c=getchar())!='\n'&&c!=EOF); 
//读取一个字符,直到是\n或者是EOF停止
//等价于
scanf("*[^\n]");

通过这种方法省略前置字符串

#include <stdio.h>
   int main()
   {
       char  c;    
       //直到遇到字符a停止读取,
       //舍弃a
       //读取将a后的一个字符存入变量c
       scanf("%*[^a]%*c%c",&c);
       printf("%c\n",c);
       return 0;
   } 
输入:bcdeaf 
输出:f
全部评论
江大佬就是牛逼
1 回复 分享
发布于 2019-12-20 20:20
江大佬就是牛逼!
点赞 回复 分享
发布于 2019-12-20 20:15

相关推荐

02-25 11:00
点赞 评论 收藏
分享
01-29 18:11
海南大学 Java
奔跑的suechil...:单从项目看这个简历不怕被问穿吗 带微服务的项目需要相当多的项目理解和经验诶
点赞 评论 收藏
分享
三分入剑:我觉得还是学历问题 如果你真的想要进大厂不想在小厂的话读个211得研究生吧 我感觉简历还没你好呢 我都实习了俩月了 我投了一百多份能投出20多份简历 能面试六七次 我们部门只招研究生了都 现在连9本都很难找到像样的大厂了 你又没打过rm这种 我觉得想要进步的话就考个研究生吧
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务