刚学C语言时,是不是总被printf和scanf这两个函数绕晕?别慌!带你轻松掌握这对“输入输出黄金搭档”~
printf:C语言的“嘴巴”,负责把程序里的信息(比如数字、文字)打印到屏幕上,让用户看到结果。scanf:C语言的“耳朵”,负责从键盘接收用户输入的信息(比如你输入的数字、名字),并交给程序处理。简单来说:程序通过printf说话,通过scanf听话,两者配合才能和用户“交流”。
printf:把信息“打印”到屏幕上printf("要显示的内容");""里的内容:可以是普通文字(比如"你好!"),也可以是变量(比如"你的分数是:%d")。%d、%f等:用来告诉程序“这里要替换成某个类型的变量值”(后面细讲)。#include <stdio.h> // 必须包含的头文件(后面解释)
int main() {
printf("欢迎学习C语言!\n"); // \n是换行符(下面会讲)
return 0;
}运行结果:屏幕上显示
欢迎学习C语言!
(然后换到下一行)如果想把程序里的变量值显示出来,要用占位符(比如%d、%f):
占位符 | 对应变量类型 | 例子 |
|---|---|---|
%d | 整数(int) | 你的年龄(比如18) |
%f | 小数(float/double) | 你的身高(比如1.75) |
%c | 单个字符(char) | 你的首字母(比如’A’) |
%s | 字符串(多个字符) | 你的名字(比如"小明") |
示例代码:
#include <stdio.h>
int main() {
int age = 18; // 定义一个整数变量age,值是18
float height = 1.75; // 定义一个小数变量height,值是1.75
printf("我的年龄是:%d岁\n", age); // %d会被age的值(18)替换
printf("我的身高是:%f米\n", height); // %f会被height的值(1.75)替换
return 0;
}运行结果:
我的年龄是:18岁
我的身高是:1.750000米 // 注意:%f默认显示6位小数\n和精度控制\n:换行(相当于按键盘的“回车”)。%.2f:控制小数只显示2位(比如1.75而不是1.750000)。改进版代码:
printf("我的身高是:%.2f米\n", height); // 只显示2位小数结果:
我的身高是:1.75米scanf:从键盘“接收”用户输入scanf("占位符", &变量名);printf一样(比如%d、%f),告诉程序“要接收什么类型的数据”。&变量名:&是取地址符(小白可以理解为“告诉scanf把输入的值存到这个变量的家里”),必须加!#include <stdio.h>
int main() {
int age; // 定义一个变量age,用来存用户输入的年龄
printf("请输入你的年龄:"); // 先提示用户输入
scanf("%d", &age); // 接收用户输入的整数,存到age变量里
printf("你今年%d岁!\n", age); // 打印用户输入的年龄
return 0;
}运行过程:
请输入你的年龄:18),然后按回车。18存到变量age里,接着打印:你今年18岁!#include <stdio.h>
int main() {
float height;
printf("请输入你的身高(米):");
scanf("%f", &height); // 注意:%f对应float类型,&不能少!
printf("你的身高是:%.2f米\n", height);
return 0;
}运行过程:
你输入1.75,程序会打印:你的身高是:1.75米(自动控制2位小数)。
如果想一次接收多个值(比如年龄和身高),可以这样:
#include <stdio.h>
int main() {
int age;
float height;
printf("请输入你的年龄和身高(用空格分开,比如18 1.75):");
scanf("%d %f", &age, &height); // 两个占位符对应两个变量
printf("你今年%d岁,身高%.2f米!\n", age, height);
return 0;
}运行过程:
你输入18 1.75(中间用空格隔开),程序会分别把18存到age,1.75存到height,然后打印完整信息。
printf的流程(输出信息)
例子:printf("年龄:%d", 18) → 系统把%d换成18,屏幕显示年龄:18。
scanf的流程(接收输入)
例子:scanf("%d", &age) → 你输入18 → 系统把18存到变量age里,后面用age就能拿到这个值。
scanf忘记加&!
错误写法:scanf("%d", age); (少了&)→ 程序可能崩溃或输入无效!
正确写法:scanf("%d", &age); (&必须加!)。
scanf("%d", &age)要求输入整数,但你输入了字母(比如abc)→ 程序会出错!
解决方法:按照提示输入正确类型(%d对应数字,%f对应小数)。
scanf和换行
如果前面用了printf打印多行,后面scanf可能因为残留的回车符出错→ 可以多按几次回车,或清空输入缓冲区(进阶内容,小白先不用管)。
printf:用来“打印”信息到屏幕(用%d、%f等占位符显示变量值)。scanf:用来“接收”用户输入(别忘&符号!用%d、%f对应变量类型)。printf提示用户输入,再用scanf接收,最后用printf显示结果。现在,打开你的C语言编译器(比如Dev-C++、VS Code),试试下面的代码吧!
#include <stdio.h>
int main() {
int score;
printf("请输入你的考试分数:");
scanf("%d", &score);
printf("你的分数是:%d分!\n", score);
return 0;
}输入你的分数,看看程序能不能正确显示~ 恭喜你,已经迈出C语言交互的第一步啦!