📜  C中的scanf()中的%n,包含示例

📅  最后修改于: 2021-05-28 03:20:28             🧑  作者: Mango

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基础课程》。