scanf(“%[^:]]”,word)在C中如何工作

时间:2018-09-25 05:26:39

标签: c scanf

scanf("%[^:]]", word)

我知道该命令会尝试扫描用户输入,直到检测到“:”为止,但是我不确定前面的最后一个“]”的作用。

1 个答案:

答案 0 :(得分:3)

  

front 格式部分的最后一个“]”有什么作用?

没什么用。

通常,孤立的"]"将扫描匹配的]。如果找到一个。从stdin中读取并丢弃。其他扫描停止。

然而,由于它紧跟"%[^:]"之后,它将继续扫描数据,直到遇到':' 1 ,因此不会发生跟随的"]"


以下更有意义:

// Limit input, scan in non-`:` and then and scan in an excluded ':'.
char word[100];
if (scanf("%99[^:]:", word) == 1) Success();

1 扫描将继续进行,直到下一个字符':',或者发信号通知文件结尾或发生输入错误为止。