C语言里“%n”是什么意思

2025-04-02 17:16:48
推荐回答(3个)
回答1:

%n说明符输出有效字符数量,%n在scanf和printf中都可使用。与%n相对应的形参是一个int类型的指针,%n不影响scanf和printf的返回值。例如:
scanf("%d %d%n", &i, &j, &k);
如果输入434 6434,则k等于8,而scanf的返回值仍然为2。又如:
scanf("%c%n", &ch, &k);
输入“sbcdefdg”后,k等于1,而不是8,因为%c只取一个字符,%n输出的是有效字符数量。

printf的返回值就是输出了多少个字符,所以%n一般没什么作用
一般用来检索scanf输入了多少个字符 包括空格 Tab

回答2:

%n与其他格式说明符号不同。%n不向printf传递格式化信息,而是令printf把自己到该点已打出的字符总数放到相应变元指向的整形变量中。

回答3: