%[^\n]
在C中是什么意思?我在一个程序中看到了它,该程序scanf
用于将多个单词输入到字符串变量中。不过我不明白,因为我了解到scanf不能接受多个单词。
这是代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
char line[100];
scanf("%[^\n]",line);
printf("Hello,World\n");
printf("%s",line);
return 0;
}
[^\n]
是一种正则表达式。
[...]
:它匹配来自扫描集的非空字符序列(由给出的一组字符...
)。^
表示scanset被“否定”:由其补码给定。^\n
:扫描集是除以外的所有字符\n
。此外fscanf
(和scanf
)将读取与格式匹配的最长输入字符序列。
因此,scanf("%[^\n]", s);
将读取所有字符,直到您到达\n
(或EOF
)并将其放入s
。阅读C语言中的整行是常见的习惯用法。
另请参见§7.21.6.2fscanf函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句