%[^ \ n]在C中是什么意思?

萨尔曼·萨迪(Salman sadi)

%[^\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;
}
md5

[^\n] 是一种正则表达式。

  • [...]:它匹配来自扫描集的非空字符序列(由给出的一组字符...)。
  • ^表示scanset被“否定”:由其补码给定
  • ^\n:扫描集是除以外的所有字符\n

此外fscanf(和scanf)将读取与格式匹配的最长输入字符序列。

因此,scanf("%[^\n]", s);将读取所有字符,直到您到达\n(或EOF)并将其放入s阅读C语言中的整行是常见的习惯用法。

另请参见§7.21.6.2fscanf函数

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章