跳到主要内容

C 语言输入输出(I/O)

提示
  1. 输出函数printf():在C语言中,printf()用于格式化输出到屏幕,如显示字符串、整数(%d)、浮点数(%f%lf)和字符(%c)。
  2. 输入函数scanf()scanf()用于从标准输入(如键盘)读取格式化的输入,需要使用格式说明符(如%d%f%lf%c)和变量的地址。
  3. ASCII值处理:在字符I/O中,输入的字符实际存储为其ASCII值,使用%c格式显示字符,%d显示其ASCII值。

C语言输出

在C编程中,printf()是主要的输出函数之一。这个函数将格式化的输出发送到屏幕。例如,

示例1:C语言输出

#include <stdio.h>
int main()
{
// 显示引号内的字符串
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将被testInteger的值替换。

示例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("输入一个整数:");
scanf("%d", &testInteger);
printf("Number = %d",testInteger);
return 0;
}

输出

输入一个整数:4
Number = 4

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

注意,在scanf()中我们使用了&testInteger。这是因为&testInteger获取了testInteger的地址,用户输入的值存储在该地址中。

示例6:Float和Double输入/输出

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

printf("输入一个数字:");
scanf("%f", &num1);
printf("输入另一个数字:");
scanf("%lf", &num2);

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

return 0;
}

输出

输入一个数字:12.523
输入另一个数字:10.2
num1 = 12.523000
num2 = 10.200000

我们使用%f%lf格式说明符分别用于floatdouble

示例7:C语言字符I/O

#include <stdio.h>
int main()
{
char chr;
printf("输入一个字符:");
scanf("%c",&chr);
printf("您输入的是%c。", chr);
return 0;
}

输出

输入一个字符:g
您输入的是g

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

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

示例8:ASCII值

#include <stdio.h>
int main()
{
char chr;
printf("输入一个字符:");
scanf("%c", &chr);

// 当使用%c时,会显示一个字符
printf("您输入的是%c。\n",chr);

// 当使用%d时,会显示ASCII值
printf("ASCII值是%d。", chr);
return 0;
}

输出

输入一个字符:g
您输入的是g。
ASCII值是103

I/O多个值

以下是如何从用户处获取多个输入并显示它们的方法。

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

printf("输入一个整数然后输入一个浮点数:");

// 获取多个输入
scanf("%d%f", &a, &b);

printf("您输入的是%d和%f", a, b);
return 0;
}

输出

输入一个整数然后输入一个浮点数:-3
3.4
您输入的是-33.400000

I/O的格式说明符

如上面的示例所示,我们使用

  • %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