🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# C 输入输出(I/O) > 原文: [https://www.programiz.com/c-programming/c-input-output](https://www.programiz.com/c-programming/c-input-output) #### 在本教程中,您将学习使用`scanf()`函数从用户那里获取输入,并使用`printf()`函数向用户显示输出。 ## C 输出 在 C 编程中,`printf()`是主要的输出函数之一。 该函数将格式化的输出发送到屏幕。 例如, * * * ### 示例 1:C 输出 ```c #include <stdio.h> int main() { // Displays the string inside quotations printf("C Programming"); return 0; } ``` **输出** ```c C Programming ``` 该程序如何工作? * 所有有效的 C 程序都必须包含`main()`函数。 从`main()`函数的开始开始执行代码。 * `printf()`是一种库函数,用于将格式化的输出发送到屏幕。 该函数在引号内打印字符串。 * 要在我们的程序中使用`printf()`,我们需要使用`#include <stdio.h>`语句包含`stdio.h`头文件。 * `main()`函数内的`return 0;`语句是程序的“退出状态”。 它是可选的。 * * * ### 示例 2:整数输出 ```c #include <stdio.h> int main() { int testInteger = 5; printf("Number = %d", testInteger); return 0; } ``` **输出** ```c Number = 5 ``` 我们使用`%d`格式说明符来打印`int`类型。 此处,报价内的`%d`将由`testInteger`的值替换。 * * * ### 示例 3:浮点和双精度输出 ```c #include <stdio.h> int main() { float number1 = 13.5; double number2 = 12.4; printf("number1 = %f\n", number1); printf("number2 = %lf", number2); return 0; } ``` **输出** ```c number1 = 13.500000 number2 = 12.400000 ``` 要打印`float`,我们使用`%f`格式说明符。 同样,我们使用`%lf`打印`double`值。 * * * ### 示例 4:打印字符 ```c #include <stdio.h> int main() { char chr = 'a'; printf("character = %c.", chr); return 0; } ``` **输出** ```c character = a ``` 要打印`char`,我们使用`%c`格式说明符。 * * * ## C 输入 在 C 编程中,`scanf()`是从用户获取输入的常用函数之一。`scanf()`函数从标准输入(例如键盘)读取格式化的输入。 * * * ### 示例 5:整数输入/输出 ```c #include <stdio.h> int main() { int testInteger; printf("Enter an integer: "); scanf("%d", &testInteger); printf("Number = %d",testInteger); return 0; } ``` **输出** ```c Enter an integer: 4 Number = 4 ``` 在这里,我们使用了`scanf()`函数中的`%d`格式说明符来获取用户的`int`输入。 当用户输入整数时,它存储在`testInteger`变量中。 注意,我们在`scanf()`中使用了`&testInteger`。 这是因为`& testInteger`获得了`testInteger`的地址,并且用户输入的值存储在该地址中。 * * * ### 示例 6:浮点和双精度输入/输出 ```c #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; } ``` **输出** ```c Enter a number: 12.523 Enter another number: 10.2 num1 = 12.523000 num2 = 10.200000 ``` 我们分别对`float`和`double`使用`%f`和`%lf`格式说明符。 * * * ### 示例 7:C 字符 I/O ```c #include <stdio.h> int main() { char chr; printf("Enter a character: "); scanf("%c",&chr); printf("You entered %c.", chr); return 0; } ``` **输出** ```c Enter a character: g You entered g. ``` 当用户在上述程序中输入字符时,字符本身不会被存储。 而是存储一个整数值(ASCII 值)。 当我们使用`%c`文本格式显示该值时,将显示输入的字符。 如果我们使用`%d`显示字符,则会打印它的 ASCII 值。 * * * ### 示例 8:ASCII 值 ```c #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; } ``` 输出量 ```c Enter a character: g You entered g. ASCII value is 103. ``` * * * ## I/O 多个值 这是您可以从用户那里获取多个输入并显示它们的方法。 ```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; } ``` **输出** ```c Enter integer and then a float: -3 3.4 You entered -3 and 3.400000 ``` * * * ## I/O 的格式说明符 从以上示例中可以看到,我们使用 * `int`的`%d` * `float`的`%f` * `double`的`%lf` * `char`的`%c` 这是常用的 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` |