fscanf(fp,"%[^\n]s",&a); %[^\n]s是啥意思呢?字符串?不包含换行的字符串???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fscanf(fp,"%[^\n]s",&a); %[^\n]s是啥意思呢?字符串?不包含换行的字符串???相关的知识,希望对你有一定的参考价值。

%[^\n]s遇到第一个换行符停止,将字符串存入a中,s仅仅是掩码一个字符.例如
123 4 \ns34 将123 4 赋值给a,文件指针移动到3追问

[^\n]和正则表达式有关系吗?正则表达式中它表示一个不是换行符的字符吧,而s表示一个没有空白的字符串,岂不是就是从文件中输入一个:一个非换行字符+字符串?什么又叫:s仅仅是掩码一个字符?s不是%c才表示是一个字符吗?%与s之间不是只是对字符串的修饰吗?

追答

%[^\n]是表示当碰到第一个换行符时之前的字符串
%s是表示当碰到第一个空白符时之前的字符串,空白符是空格,制表符,回车和换页符
%[^\n]s和%[^\n]%s是不同的效果,前一个需要一个变量,后一个需要2个变量进行存储
%[^\n]s这时的s已经失去字符串作用,因为[^\n]最先与%匹配,如果是%.4s,%和s直接的0.4就是对字符串进行长度取4的约束。

参考技术A 还是自己写个可靠一点的吧。

以上是关于fscanf(fp,"%[^\n]s",&a); %[^\n]s是啥意思呢?字符串?不包含换行的字符串???的主要内容,如果未能解决你的问题,请参考以下文章

C语言 格式读取 fscanf() 如何读取至末尾结束(txt)

关于C语言中fscanf()函数如何读入文件中下一行的数据!!

c语言求助 帮我看看,求大神,错误是syntax error before'&' token,急

怎么使用C编写一个串口文件传输程序

C语言中fscanf()按一定的格式读取文本文件!

在C/C++中,fscanf(fp,"%s",temp_str);和fscanf(fp,"%lf",&min_snr);的意思分别是啥?