c语言 --- 基本输入输出

article/2025/10/30 16:38:29

printf 函数

  • #include <stdio.h> C语言标准输入输出头文件

  • printf做原样打印,把要打印的东西作为参数

  • 代码的行数不影响显示结果的行数

//函数
//printf("要打印的内容");
//一行的形式
printf("ILoveYou");
printf("ILoveYou""IMissYou""HaHa");
//多行的形式 每行都需要有"" 代码格式分为多行 但实际输出并没有多行
printf("ILoveYou"
"IMissYou"
"HaHa");
/*输出*/
ILoveYouILoveYouIMissYouHaHaprintf("ILoveYou\n"
"IMissYou\n"
"HaHa\n");
/*输出*/
ILoveYou
ILoveYou
IMissYouHaHaprintf("ILove\r123");    //打印123时回到当前行首,当前行前面有东西,采用覆盖的方式
/*输出*/
123 e    //123'\0'e      //有一个不可见字符'\0'字符串结束标记 打印出来没有任何效果
  • 转义字符→ 达到打印的格式调整

常用的转义字符效果
\n换行
\r换行(回到当前行首),判断按键是否是回车键
\t水平制表

 制表的原理: 通过控制数据的输出宽度,不足8位填充空格,超过8位以16位制表,1个 ' \t ' 8位两个' \t '16位

 汉字:占用两个位置

 普通字符:占用一个位置

printf("姓名\t年龄\t编号\t");
printf("大白\t18\t1001\t");printf("姓名\t\t年龄\t编号\t");
printf("12345678\t18\t1001\t");/*输出*/
姓名    年龄    编号
大白     18     1001姓名        年龄    编号
12345678     18     1001

打印特殊符号

  • 通过\加上特殊符号打印符号

//printf("""); 报错
printf("\"\t\'");
printf("\\");    //两个\打印一个'\' 不能是3个'\' 会和注释混在一起
printf("%%");    //特殊符号和转义字符无关 两个%打印一个%
/*输出*/
"    '\%

数据的输出

  • 格式控制字符: 占位符

  • 不同的数据类型有不同的控制字符

  • 数据的顺序必须要和占位符的顺序一致

int  %d
char %c
float %f
double %lf
字符串  %s 指针类型
unsigned int %u
printf("a=%d,b=%c",1,'A');
a=%d,b=%c1,  'A'
a=1,b=A
//一般情况下占位符的个数是要和后面数据个数相同
printf("整数:%d,字符:%c,字符串:%s",1,'a',"iloveyou");
int iNum = 3;
char cNUm = 'N';
printf("iNUm = %d,cNum = %c\n",iNum,cNum);    /*输出*/整数:1,字符:a,字符串:iloveyou
iNUm = 3,cNum = N
  • 浮点型的格式问题

%+a.bf    
%-a.blf
a:输出数据的宽度 不足补空格
b:小数位
+: 右对齐 不写默认是右对齐
-: 左对齐
printf("%3.3lf\n",1.3345);    //有效小数位数是 3 位 最后一位5没有打印,四舍五入往前进了一位
printf("%10.3lf\n",1.3345);   //输出数据的宽度是 10 位//通过输出数据的宽度 自己制表
printf("%-10s%-10s%-10s\n","姓名","年龄","编号");    
printf("%-10s%-10s%-10s\n", "12345678","18","1001");/*输出*/1.335      1.335 
姓名      年龄      编号
12345678  18       1001

scanf函数

  • scanf 基本用法

    • &(按 shif + 7键)取地址符:取变量的地址-->把数据放到变量的内存中去,要知道变量在内存中的位置

    • scanf 工作原理

      • scanf("格式控制字符","变量的地址");

      • 输入的格式控制字符不需要转义字符,不需要精度控制

      • 输入的数据放在输入缓冲区stdin中,scanf 函数根据格式控制字符去输入缓冲区中拿数据

      • error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead

        • 项目属性-->SDL改为否

  • 字符输入

    • 清除缓冲区---> 在字符或者字符串输入前 做了输入,就需要清除缓冲区

  • scanf_s: vs给 scanf 做的增强版本

    • 输入数字类是没什么区别

    • 输入字符类或者字符串必须要加入长度

    • 其他编译器没有 scanf_s 只有 scanf

  • scanf一次输入多个不同类型的数据

#include <stdio.h>
int main() 
{//No.4 不同数据类型输入//数字和字符组合在一起int iNum;char xNum;double dNum;printf("input int,char,double:");//scanf自动区分数据,不需要人为区分:字符和浮点数之间不需要加空格scanf("%d %c%lf", &iNum, &xNum, &dNum);     //1 A 3.13为了避免数据出错强制加一个空格printf("iNum=%d,xNum=%c,dNum=%lf\n", iNum, xNum, dNum);printf("input int,char,double:");           //输入数据的格式必须是这个格式//%d,%c,%lf //scanf("%d,%c,%lf", &iNum, &xNum, &dNum);//printf("iNum=%d,xNum=%c,dNum=%lf\n", iNum, xNum, dNum);scanf_s("%d %c%lf", &iNum, &xNum,1, &dNum); //多个字符输入用scanf_sprintf("iNum=%d,xNum=%c,dNum=%lf\n", iNum, xNum, dNum);//No.1 输入单个数据printf("input a num:");//习惯:定义变量的时候给变量初始化(赋初始值)int num = 0;                  //定义变量赋值为0int result = 0;               //返回值被忽略 scanf的返回值:输入数据的成功个数result=scanf("%d", &num);     //等待键盘输入printf("num=%d\n", num);//No.2 输入多个数据int a, b;printf("input a,b:");result=scanf("%d%d", &a, &b); //格式控制字符中没有空格但是可以输入空格|或者用回车当作数据的间隔|在字符输入时会有影响printf("a=%d,b=%d\n",a,b);//scanf("%d\n", &a);          //没有这种写法float fNum;//scanf("%.3f", &fNum);       //没有这种写法//No.3 字符输入char cNum;char x;printf("input a char:");//getchar();			      //常用scanf("%c", &x);			  //接收字符再做输入 清除缓冲区的\n x等于'\n'//fflush(stdin);			  //被淘汰//setbuf(stdin);			  //会影响文件操作//这个两个等效上面scanf的作用scanf("%c", &cNum);printf("cNum=%c\n", cNum);printf("input a char:");scanf("%c", &x);              //没有停在字符输入的位置-> '\n'直接给了字符scanf_s("%c", &cNum, 1);	  //长度一般用变量能够存储的数据长度-> 能够存储的数据长度printf("cNum=%c\n", cNum);//字符串--字符数组;return 0;
}
/*输出*/input int,char,double:1           //多个输入中间有字符导致出错的原因:把空格当做字符去处理
A
1.23
iNum=1,xNum=A,dNum=1.230000
input int,char,double:1
e
1.34
iNum=1,xNum=e,dNum=1.340000
input a num:3
num=3
input a,b:2
4
a=2,b=4
input a char:A
cNum=A
input a char:C
cNum=C

字符处理函数

getchar函数

  • 输入一个字符getchar() 表示输入的字符

  • #include <stdio.h>

putchar函数

  • 输出一个字符putchar('A') 要输出的字符放在括号中

  • 一旦字符输入前做了输入,就一定要做清空缓冲区处理,否则会存在跳过现象

  • #include <stdio.h>

getch函数

  • 输入一个字符getch() 表示输入的字符,不需要回车确认输入

  • #include <conio.h>

  • 在vs中,getch()要改为 _getch()

#include <stdio.h>
#include <conio.h>
int main() 
{//NO.2 getchint userKey = 0;userKey = _getch();	  //不需要回车确认 输入完就可以做交互//想象玩游戏上下左右键的处理putchar(userKey);//scanf_s scanf,getchar 都需要回车确认输入//No.1  getchar() putchar()int number;printf("input a number:");scanf_s("%d", &number);printf("number=%d\n", number);int iNum;printf("input a char:");//int x;//scanf("%c", &x);   //定义一个 x 接收换行getchar();		     //输入一个字符,不做处理用来清空缓冲区(清除\n) C6031:返回值被忽略"getchar"iNum=getchar();      //getchar():输入一个字符,getchar() 表示输入的字符 然后把输入的字符赋值给iNum//上面这句话等效: scanf("%c",&iNum);printf("iNum=");putchar(iNum);       //打印iNumputchar('\n');       //等效printf("\n");return 0;
}
/*输出*/2input a number:3
number=3
input a char:e
iNum=e

ASCLL码

用于做整数和字符的转换

字符存储在计算机中是一个数字,不同的字符对应不同的编码:ASCLL码,ASCLL码表代表了字符在计算机中的数据是多少

字符 A:65,字符 a:97,大写和小写之间相差 32,字符 0~9:48~57

int main()
{//No.1 基本转换printf("%c\n",65);     //用%c的方式打印整数->格式控制字符和数据不一致|默认通过ASCLL码表把65转换为字符printf("%d\n",'A'); //No.2 常用形态int a = 'A';printf("%d\n",a);      //自动把'A'转换为65->用%d的方式打印a就是65//2.1大小写转换--->任何大写字母和小写字母的间距是一样的 相差32--->相应的大写字母65+32==小写字母97char number = 'A';     //把大写'A'转换为'a'putchar(number + 32);  //打印小写'a'->打印字符|把97转换为小写a打印出来putchar('\n');//任何两个大、小写字母之间的间距是相同的//'A'-'a'=number-x;//x=number+'a'-'A';number = 'A';putchar(number + 'a' - 'A');putchar('\n');//2.2字符1转数字1char first = '1';int one = first -'0';  //因为字符0-9是连续的printf("%d\n",one);printf("打印:\101\n"); //特殊的格式控制字符: 65的八进制--->\ddd:1到3位八进制所代表的任意字符
}
/*输出*/A
65
65
a
a
1
打印:A

http://chatgpt.dhexx.cn/article/EdA2g07e.shtml

相关文章

C语言中的输入输出

在C语言中提供了许多内置的输入输出函数。 标准文件的定义 在C语言中会把所有设备当文件来处理。为了访问键盘和屏幕&#xff0c;以下三个文件会在程序执行时而打开。 标准文件文件指针设备标准输入stdin键盘标准输出stdout屏幕标准错误stderr屏幕 C 语言中的输入/输出通常使用…

C语言的输出

1&#xff1a;%c&#xff0c;%s的区别&#xff1f; %c在C语言中代表字符型格式符&#xff1b;结尾没有\0。 %s在C语言中代表字符串型格式符&#xff1b;结尾有\0。 %c和%s一般用在printf、sprintf等字符串格式化函数中&#xff0c;用于决定格式化参数的数据类型。如printf(&q…

C语言字符串输入输出函数

C语言字符串输入输出函数 putchar()函数getchar()函数puts()函数gets()函数getche()函数getch()函数 putchar()函数 格式: putchar( c )功能&#xff1a;向终端输出一个字符注意&#xff1a;输出的时候不会加回车 getchar()函数 格式&#xff1a;字符型变量&#xff1d;getc…

C语言基本输入输出

文章目录 前言一、数据类型二、基本输出1.printf函数的基本用法2.printf函数的格式化输出A. d 格式符B. c 格式符C. f 格式符D. e 格式符3.putchar函数的基本用法 三、基本输入1.scanf函数的基本用法A. scanf含有非输入控制符B. 多个scanf同时使用 总结 前言 本文主要介绍C语言…

C语言数据输入输出函数

文章目录 前言一、字符输入输出函数1.字符输出函数2.字符输入函数 二、格式输出函数printf()1.格式输出函数的一般形式2.格式控制 三、格式输入函数scanf()1.格式输入函数的一般形式&#xff1b;2.格式控制 四、字符串输入输出函数1.字符串输出函数puts()2.字符串输入函数gets(…

C语言的输入与输出

目录: 格式声明 基本的格式字符 附加的格式说明字符&#xff08;输出&#xff09;和&#xff08;输入&#xff09; 一、格式声明&#xff1a; 格式声明的一般形式为百分号&#xff08;&#xff05;&#xff09;的格式字符。 二、基本的格式字符。 1、%d: 表示以带符号的十进…

C语言程序——字符的输入和输出

文章目录 前言一、字符的输入和输出二、程序实例1.程序代码2.运行结果3.结果分析 三、拓展应用总结 前言 使用stdio库中提供的字符输入输出函数的时候&#xff0c;需要在程序中包含stdio.h的预处理命令&#xff0c;这样编译系统才能够调用库中的函数进行输入和输出。 一、字符…

C语言的基本的输入输出

C语言的基本的输入输出 printf()函数 在头文件stdio.h中scanf()函数 在头文件stdio.h中 printf()函数 在头文件stdio.h中 printf()函数是格式化输出函数&#xff0c;一般用于向标准输出设备按照规定格式输出信息。 printf()函数的格式为: printf("<格式化字符串>&q…

C语言 基本输入输出函数

1 几组常见的输入输出函数 在stdio.h头文件中内置了几种输入输出函数&#xff0c;如下列出&#xff1a; printf 与 scanfgetchar 与 putchargets 与 puts 相比之下 printf 与 scanf的功能最为强大&#xff0c;但操作稍显复杂&#xff0c;后两种则功能简单&#xff0c;但针对…

C语言的输出和输入

一、输出 printf 函数被成为格式输出函数&#xff0c;是按照用户指定的格式&#xff0c;把指定的数据显示到显示屏上。 printf 函数调用形式为&#xff1a;printf ("格式控制字符串"&#xff0c;输出表列)&#xff1b; 格式控制字符串可分为格式字符串和非格式字符串…

C语言数据输入与输出

1.输入与输出举例 例一&#xff1a;求abxc0方程的根。a,b,c由键盘输入&#xff0c;设-4ac>0 编写程序&#xff1a; 结果输出&#xff1a; 注&#xff1a;1.输入输出是以计算机主机为主体而言的. 2.C语言本身不提供输入输出语句。 3.要在程序文件的开头用预处理指令#includ…

C语言的输入、输出

C语言的输入与输出 一、scanf() 和 printf() 函数实例运行结果 二、getchar() 和 putchar() 函数实例1运行结果实例2运行结果 三、gets() 和 puts() 函数实例运行结果 一、scanf() 和 printf() 函数 实例 #include <stdio.h>int main() {char a[100];printf("Plea…

C语言中的输入和输出

一、数据的输入 在C语言中&#xff0c;有三个函数可以从键盘获得用户输入 getchar&#xff1a;输入单个字符&#xff0c;保存到字符变量中 gets&#xff1a;输入一行数据&#xff0c;保存到字符串变量中 scanf&#xff1a;格式化输入函数&#xff0c;一次可以输入多个数据&…

C语言详解-输入输出

1. 输入输出一览 以下输入输出库函数的操作主要在标准输入输出设备&#xff08;键盘和屏幕&#xff09;与数据缓冲区之间进行。 1.1 printf()与scanf () printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。 注意宽度输出和精度输出控制 scanf(): 从标准输入设备(键盘…

None、Null与空字符‘‘什么区别

1. None 表示空无一物&#xff0c;啥也没有存储。 编程语言里采用None 比如在python中None不是一个保留关键字&#xff0c;只是NoneType对象的一个实例。 空就是空&#xff0c;它不是整型&#xff0c;不是浮点型&#xff0c;也不是字符串&#xff0c;就是一个NoneType。所以在…

关于“空”string字符串

string a ""; string b ""; string c string.Empty; string d string.Empty; string e null; string f null;等运行完后在即时窗口中用&命令查看这些变量的地址 然后发现&#xff0c;所有变量的栈地址都不同&#xff08;废话&#xff09;&#x…

空字符串、NULL、空格串的区别

1、表示区别 string str1 ""; //空字符串 str1.length() 等于 0 string str2 null; //NULL string str3 " "; //空格串 str2.length() 等于 1 2、内存区别 "" &#xff1a;分配了内存 &#xff0c;分配了一个空间 null…

如何输入带空格的字符串

转载自&#xff1a;https://www.cnblogs.com/houchen/p/10356396.html 问题一&#xff1a;带空格的字符串输入(c) 对于string类 getline(cin, str) 对于字符数组 方法一&#xff1a;getline() 读入整行数据&#xff0c;使用回车键输入的换行符来确定输入结尾。 调用方法&am…

C++ 空字符

C 空字符 本来想定义一个空的字符&#xff0c;想当然的就写成了下面的样子&#xff1a; #include <iostream>using namespace std; int main() {char ch ;cout<<ch<<endl;return 0; } 运行直接报错 加上\0 就对了 &#xff0c; 哎 基础呀。。。。。 #i…