📜  C中scanf()函数中添加空格的效果

📅  最后修改于: 2022-05-13 01:55:04.423000             🧑  作者: Mango

C中scanf()函数中添加空格的效果

在本文中,我们将讨论在 C 编程语言中的 scanf()函数在格式说明符之前或之后添加空格的场景。

scanf()函数添加空白字符会导致它读取元素并尽可能多地忽略所有空白并搜索非空白字符以继续。

scanf("%d ");
scanf(" %d");

scanf("%d\n"); This is different
from scanf("%d"); function.

示例 1: scanf函数在读取数字后开始进一步读取,直到在输入中找到非空白字符并打印输入的第一个数字。

下面是实现上述方法的 C 程序:



C
// C program to demonstrate the
// above approach
  
#include 
  
// Driver Code
int main()
{
    // Declaring integer variable a
    int a;
  
    // Reading value in "a" using scanf
    // and adding whitespace after
    // format specifier
    scanf("%d ", &a);
  
    // Or scanf("%d\n", &a);
  
    // Both work the same and
    // print the same value
    printf("%d", a);
  
    return 0;
}


C
// C program to demonstrate the
// above approach
#include 
  
// Driver Code
int main()
{
    // Declaring integer variable
    int a;
  
    // Reading value in a using scanf
    // and adding whitespace before
    // format specifier
    scanf(" %d", &a);
  
    // Printing value of a
    printf("%d", a);
  
    return 0;
}


输出:

说明:在上面的例子中,当程序执行时,程序首先会要求第一个输入。

  • 在这种情况下,输入 2 ,在给出空格之后仍然没有输出,而是等待下一个输入。
  • 输入 3 时,将打印输出,即输入的第一个数字,即2
  • 类似的,在输入第一个输入后的情况,即上述情况下的2 ,如果用户按下回车按钮并进入下一行,程序仍在等待输入,输入第二个输入后打印结果.

示例 2: scanf函数忽略空白字符并且只读取元素一次。

下面是实现上述方法的 C 程序:

C

// C program to demonstrate the
// above approach
#include 
  
// Driver Code
int main()
{
    // Declaring integer variable
    int a;
  
    // Reading value in a using scanf
    // and adding whitespace before
    // format specifier
    scanf(" %d", &a);
  
    // Printing value of a
    printf("%d", a);
  
    return 0;
}

输出:

说明:在此代码中,输入数字后立即输出,因为除了“%c”、“%n”和“%[”之外,几乎所有格式说明符之前的空格都被scanf %-conversions 忽略。因此,建议尽可能避免在 scanf函数空格,除非对其使用和必要性有信心。

想要从精选的视频和练习题中学习,请查看C 基础到高级C 基础课程