社区
C语言
帖子详情
关于scanf("%[^\n]",str);
Schordinger
2017-12-30 10:34:39
scanf("%[^\n]",str);这句话是什么意思呢,是碰见了回车就退出然后把缓冲区里面的内容按字符串格式输入str中,然后回车还留在缓冲区里是吧,要以这个格式读入下一个字符串的时候,要先getcahr读掉一个回车。
那么在格式字符串后加一个\n即scanf("%[^\n]\n",str);会是什么效果呢,原以为是把回车前的内容给str,然后读掉回车,结果scanf好像结束不掉了?
...全文
778
2
打赏
收藏
关于scanf("%[^\n]",str);
scanf("%[^\n]",str);这句话是什么意思呢,是碰见了回车就退出然后把缓冲区里面的内容按字符串格式输入str中,然后回车还留在缓冲区里是吧,要以这个格式读入下一个字符串的时候,要先getcahr读掉一个回车。 那么在格式字符串后加一个\n即scanf("%[^\n]\n",str);会是什么效果呢,原以为是把回车前的内容给str,然后读掉回车,结果scanf好像结束不掉了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Schordinger
2018-01-01
打赏
举报
回复
我好像懂了,%[^\n]读到回车就把缓冲区回车之前的赋给要输入的字符串,要是在scanf格式字符串最后放\n,那么他会一直等你输入一个
非
空格,tab,回车的东西。读字符串时,为了避免读到上次剩下的回车,可以使用" %s"(%前有个空格,会忽略掉开始的所有的空白字符)或者scanf("%[^]%*c",str);%*c表示读入一个字符,但不向任何地方输入
paschen
2017-12-31
打赏
举报
回复
http://blog.csdn.net/sunhaoyn/article/details/41347999
C语言入门到高阶-- printf、
scanf
与 CGI 文件重定向
尹成老师,带你步入 C 语言的殿堂,讲课生动风趣、深入浅出,全套视频内容充实,整个教程以 C 语言为核心,完整精彩的演练了数据结构、算法、设计模式、数据库、大数据高并发检索、文件重定向、多线程同步、进程通讯...
scanf
(“%[^\n]“,
str
);是什么意思
1、
scanf
("%[^\n]",
str
)的用法。 1、 ^表示“非”,[^\n]表示读入换行符就结束读入。这是
scanf
的正则用法,一般情况下
scanf
是不能接收空格符,已接收到空格就结束读入,所以不能像gets()等函数一样接受一行字符串,所以用[^\n]就可以读取一行,直到碰到‘\n’才结束读入。 读取一个字符集,以\n作为结束标志
scanf
("%[^\n]",
str
); 2、*表示该输入项读入后不赋予任何变量,即
scanf
("%*[^\n]%*c")表示跳过一行字符串。其中%c可以把\n吸收掉,
scanf
(“%[^n],c)和
scanf
(“%[^ ],c)具体含义
【扩展知识1】
scanf
("%[^n],c)和
scanf
("%[^ ],c)具体含义 以前自己也遇到这些问题,也查了查,但慢慢的又忘了~- ~。今天又碰到,所以就把它写成篇文章吧,以供大家查阅。本文中写的内容有参考网上高手们的,我只是总结总结,谢谢。 #include <stdio.h> int main( void ) { ...
C语言学习笔记——
scanf
(%[^n]%c)
C语言学习笔记之
scanf
(%[^n]%c)
scanf
(“%[^\n]“,
str
)正则用法
scanf
() 遇到空格结束输入 可以用
scanf
("%[^\n],
str
") 输入一行数据包括空格,直到遇到换行符 ’ \n ’
scanf
("%*[^\n]");//清理输入缓冲区中第一个\n之前的所有字符
scanf
("%*c"); //清理输入缓冲区中第一个字符,也就是上次遗留下的\n
scanf
("%*[^\n]%*c")是把这两句放在一起 ...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章