C 语言中获取用户输入和输出信息

本文介绍了如何使用 scanf() 函数从用户获取输入,以及如何使用 printf() 函数向用户显示输出。

在 C 语言中, scanf() 函数用于从用户获取输入,printf() 函数则用于向用户显示输出。

输出

在 C 语言编程中, printf() 是最常用的输出函数之一。 printf() 函数将格式化输出发送到屏幕/控制台。例如,

示例 1:输出

#include <stdio.h>
int main()
{
    // Displays the string inside quotations
    printf("C Programming");
    return 0;
}

输出

C Programming

这个程序是如何运作的?

  • 所有有效的 C 程序都必须包含该 main() 函数。代码执行从 main() 函数的开头开始。
  • printf() 是一个将格式化输出发送到屏幕的库函数。该函数打印引号内的字符串。
  • 要在我们的程序中使用 printf(),需要使用 #include <stdio.h> 语句包含 stdio.h 头文件 。
  • main() 内部最后的语句 return 0; 是程序的“退出状态”。它是可选的。

示例 2:输出整数

#include <stdio.h>
int main()
{
    int testInteger = 5;
    printf("Number = %d", testInteger);
    return 0;
}

输出

Number = 5

我们使用 %d 格式说明符来打印 int 类型。输出时,引号内的内容 %d 将被替换为整数参数.

示例 3:输出 float 和 double

#include <stdio.h>
int main()
{
    float number1 = 13.5;
    double number2 = 12.4;

    printf("number1 = %f\n", number1);
    printf("number2 = %lf", number2);
    return 0;
}

输出

number1 = 13.500000
number2 = 12.400000

要打印 float ,我们使用 %f 格式说明符。同理,使用 %lf 用来打印 double 值。

示例 4:打印字符

#include <stdio.h>
int main()
{
    char chr = 'a';
    printf("character = %c", chr);
    return 0;
}

输出

character = a

要打印 char ,我们使用 %c 格式说明符。

C 输入

在 C 语言编程中, scanf() 函数用于从用户那里获取输入。scanf() 函数从标准输入(如键盘)读取格式化输入。

示例 5:输入输出整数

#include <stdio.h>
int main()
{
    int testInteger;
    printf("Enter an integer: ");
    scanf("%d", &testInteger);
    printf("Number = %d",testInteger);
    return 0;
}

输出

Enter an integer: 4
Number = 4

在这里,我们在 scanf() 函数内部使用了 %d 格式说明符来获取用户输入的 int 数据。当用户输入一个整数时,它被存储在 testInteger 变量中。

请注意,我们在 scanf() 参数中使用了 &testInteger&testInteger 表示 testInteger 的内存地址, scanf() 函数直接将读取的值写入到 testInteger 内存地址中给 testInteger 赋值。

示例 6:输入输出浮点数

#include <stdio.h>
int main()
{
    float num1;
    double num2;

    printf("Enter a number: ");
    scanf("%f", &num1);
    printf("Enter another number: ");
    scanf("%lf", &num2);

    printf("num1 = %f\n", num1);
    printf("num2 = %lf", num2);

    return 0;
}

输出

Enter a number: 12.523
Enter another number: 10.2
num1 = 12.523000
num2 = 10.200000

我们分别使用 %f%lf 格式说明符读取 floatdouble 类型的数据。

示例 7:输入输出字符

#include <stdio.h>
int main()
{
    char chr;
    printf("Enter a character: ");
    scanf("%c",&chr);
    printf("You entered %c.", chr);
    return 0;
}

输出

Enter a character: g
You entered g

当用户在上述程序中输入字符时,字符本身不会被存储,而是存储一个整数值,即字符对应的 ASCII 值。

当我们使用 %c 文本格式显示该值时,会显示输入的字符。如果我们 %d 用来格式化显示字符,则打印它的 ASCII 值。

示例 8:ASCII 值

#include <stdio.h>
int main()
{
    char chr;
    printf("Enter a character: ");
    scanf("%c", &chr);

    // When %c is used, a character is displayed
    printf("You entered %c.\n",chr);

    // When %d is used, ASCII value is displayed
    printf("ASCII value is %d.", chr);
    return 0;
}

输出

Enter a character: g
You entered g.
ASCII value is 103

输入多值

以下示例展示了 C 语言编程中如何从用户那里获取多个输入并显示它们。

#include <stdio.h>
int main()
{
    int a;
    float b;

    printf("Enter integer and then a float: ");

    // Taking multiple inputs
    scanf("%d%f", &a, &b);

    printf("You entered %d and %f", a, b);
    return 0;
}

输出

Enter integer and then a float: -3
3.4
You entered -3 and 3.400000

输入输出的格式说明符

从上面的例子中可以看出,我们使用

  • %d 格式化 int 类型的数据
  • %f 格式化 float 类型的数据
  • %lf 格式化 double 类型的数据
  • %c 格式化 char 类型的数据

下表时 C 语言编程中的数据类型及其对应的格式说明符。

数据类型 格式说明符
int %d
char %c
float %f
double %lf
short int %hd
unsigned int %u
long int %li
long long int %lli
unsigned long int %lu
unsigned long long int %llu
signed char %c
unsigned char %c
long double %Lf