//1.输入输出
//输出:从计算机向外部输出设备(显示器、打印机)输出数据。 输入:从输入设备(键盘、鼠标、扫描仪)向计算机输入数据。
//输入函数:scanf() 、 getchar()、gets(): 输出函数:printf() 、 putchar()、puts():
//
//scanf(),是格式输入函数,可接收`任意类型`的数据 <---> printf(),是格式输出函数,可按指定的格式显示任意类型的数据
//getchar(),是`字符`输入函数, 只能接收`单个字符` <---> putchar(),`字符`显示函数,只能显示`单个字符`
//gets(),是`字符串`输入函数。 <---> puts(),是`字符串`输出函数
#include <stdio.h> //这一节重点掌握scanf函数的使用
//C语言本身并没有提供输入输出函数,需要调用标准的函数库 <stdio.h>
// 包括就像printf 这个输出 就是引用的<stdio.h>这个头文件
int main() {
//2.scanf()的使用
//格式:scanf("格式控制字符串",参数地址列表) 注意不是参数列表
//举例:scanf("%d%d%d",&a,&b,&c) &是寻址操作符 &a表示a在内存中的地址
//
// 数组一般都是指向数组的首元素地址 因此 在遇到数组时不使用运算符 &
//
//注意:如果scanf中%d是连着写的,如“`%d%d%d`”,在输入数据时
// 数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔。
//如果是“`%d, % d, %d`”,则在输入数据时需要加 “, ”,如“`2,3, 4`”。
//练习一:计算圆的面积,其半径由用户指定
float R,H,V;
printf("请依次输入圆柱的高和半径使用空格隔开:");
scanf_s("%f%f",&H,&R);//此处遇到一个问题 scanf()出现错误 查询得出在新版本的编译器中,
V = H * 3.14 * R * R;//scanf()是不安全的,因为他不会检查输入的缓冲区是否溢出,
printf("圆柱的体积为:%f\n",V);//可能导致缓冲区溢出漏洞,推荐使用更安全的scanf_s函数来进行代替。
//练习输出多个变量的值求乘积
int A, B, C, D, E, F,S;
printf("请在屏幕上输入求乘积的6个数使用空格隔开");
scanf_s("%d%d%d%d%d%d",&A,&B,&C,&D,&E,&F);
scanf_s("%*c");//读取并且丢弃一个字符,可处理缓冲区残留字符,不然后面那个getchar受影响 无法从键盘读取
S = A * B * C * D * E * F;
printf("%d*%d*%d*%d*%d*%d = %d\n",A,B,C,D,E,F,S);
//getchar()和putchar()的使用
//getchar()输入一个字符
//putchar()输出一个字符
char c1 = 'A';
putchar(c1);
printf("\n请输入一个字符:");
char c2 = getchar();//和scanf一样也是一个阻塞式函数(就是等用户输入)
putchar(c2);
//gets和puts的使用 专门用来处理字符串的
//gets 表示输入字符串
//puts 表示输出字符串
//
char str[] = { "\nChina" };
puts(str);
char str1[] = { "BeiJing" };
puts(str1);
///char str2[15];
//gets(str2);//从键盘输入字符串,gets读取后并且将字符串保存在str2数组中
//我的编译器识别不了gets,资料说gets由于由于安全隐患已经被弃用
//所以此处省略............................
return 0;
}
C 语言 几种输入输出函数
于 2025-04-17 21:41:38 首次发布