在C中, %n是一种特殊的格式说明符。对于printf()函数, %n分配由printf()打印的字符数。当我们在scanf()中使用%n说明符时,它将分配scanf()函数读取的字符数,直到出现为止。
关键点:
- 这是一个编辑转换代码。
- 编辑转换代码%[^ \ n]可以用作gets的替代方法。
- C使用scanf()函数支持此格式规范。
- 此编辑转换代码可用于读取包含字符(如变量,甚至是空格)的行。
- 通常,具有%s之类的格式规范和具有%ws形式的字段宽度的规范的scanf()函数可以只读字符串,直到非空白部分为止。
- 这意味着它们不能用于阅读包含多个单词的文本,尤其是空格。
句法:
scanf("%[^\n]", variable_name);
下面是演示%n在scanf()中工作的程序:
C
// C++ to demonstrate %n in scanf()
#include
// Driver Code
int main()
{
int check;
int a, b;
// Input two variables
scanf("%d%d%n", &a, &b, &check);
// Print value of a, b, and check
printf("%d\n%d\n%d", a, b, check);
return 0;
}
输入:
以下是上述代码的输入:
输出:
以下是上述代码的输出:
解释:
scanf()函数分别在a和b中分别分配10和20,在变量检查中分配5,因为scanf函数读取了5个字符(包括空格)。
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。