scanf("%[^:]]", word)
我知道该命令会尝试扫描用户输入,直到检测到“:”为止,但是我不确定前面的最后一个“]”的作用。
答案 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 扫描将继续进行,直到下一个字符':'
,或者发信号通知文件结尾或发生输入错误为止。