%n用于在scanf中用于存储已读取的字符数。
它在printf中不常用,但在scanf中有时很有用。当%n出现在scanf的格式字符串中时,它告诉scanf在成功读取并赋值给前面的变量后,将到目前为止读取的字符数(不包括任何由于空白字符、不可转换的字符或匹配失败而跳过的字符)存储在相应的指针所指向的int变量中。
#include <stdio.h>
int main() { int num; int char_count; scanf("%d%n", &num, &char_count); printf("Read number: %d, Read characters: %d\n", num, char_count); return 0;
}
如果用户输入123abc,则num将被赋值为123,而char_count将被赋值为3(因为数字123包含3个字符)。