c语言--输入输出

article/2025/10/30 16:37:23

c语言本身没有输入输出语句

格式化输出

%o :八进制
%x :十六进制
%d :十进制
%m.nf :输出的数字总共占有m个,其中n个为小数,在左边补零
%-m.nf :在右边补空格
%0md:在左边补上0得到m个数字

int main(){printf("s1=*%5s*\n","chi");//s1=*  chi*printf("s1=*%-5s*\n","chi");//s1=*chi  *printf("s1=*%05s*\n","chi");//s1=*00chi*printf("\n"); printf("s2=*%5d*\n",342);//s2=*  342*printf("s2=*%5ld*\n",342);//s2=*  342*printf("\n"); printf("s3=*%5d*\n",-342);//s3=* -342*printf("s3=*%-5d*\n",-342);//s3=*-342 *printf("s3=*%+5d*\n",-342);//s3=* -342*printf("\n"); printf("s4=*%05d*\n",-342);//s4=*-0342*printf("s4=*%+05d*\n",-342);//s4=*-0342*printf("s4=*%-05d*\n",-342);//s4=*-342 *printf("\n"); printf("s5=*%5o*\n",342);//s5=*  526*printf("s5=*%#5o*\n",342);//s5=* 0526*printf("s5=*%05o*\n",342);//s5=*00526*printf("s5=*%+05o*\n",342);//s5=*00526*}

在这里插入图片描述

%#x

%#x需要表明是八进制数还是十六进制

int main(){int a=252;printf("a=%o a=%#o\n",a,a);printf("a=%x a=%#x\n",a,a);}

在这里插入图片描述

# include <stdio.h>int main(void)
{int  x=47;  //47是十进制printf("%x\n", x);        //输出结果是:  2fprintf("%X\n", x);        //输出结果是:  2Fprintf("%#X\n", x);      //输出结果是: 0X2Fprintf("%#x\n", x);      //输出结果是: 0x2freturn 0;
}

%+

int main()
{double a=0.004;double b=0.005;double c=-0.004;double d=-0.005;printf("a=%.2f  b=%.2f  c=%.2f  d=%.2f\n",a,b,c,d);printf("a=%+.2f  b=%+.2f  c=%+.2f  d=%+.2f\n",a,b,c,d);return 0;
}

分析:
如果数字是正数,即输出+号
如果数字是负数,即先输出-号再输出绝对值

在这里插入图片描述

%e和%f

%e小数点后的有6个数,e+000总共占5个
%f可以四除五进

printf("%e\n",3.1415);
printf("%f\n",3.1415);
printf("%4.3f\n",3.1415);

在这里插入图片描述

printf的返回值

printf返回值是打印的字符的个数

	int t=0;while(printf("*")){t++;if(t>1)break;}    //**printf("\n%d\n",t);//2t=0;while(printf("+")){if(t++>1)break;}   //+++printf("\n%d",t);//3while(printf("")){//返回0printf("hello");}

printf遇到\0即停

char c[5]={'a','\0','b'};
printf("%s",c);
char a[]="c\0b";
printf("%s",a);

在这里插入图片描述

ASCII

	printf("%d\n",'a');//97printf("%d\n",'A');//65printf("%d\n",'0');//48

在这里插入图片描述

字符串的输入

https://blog.csdn.net/lord12580/article/details/82109850

1.char *name;
2.char name[81];

1,2 的不同点:
1.的指针在未进行初始化之前可能指向任何地方
2.已分配了81个字节的地址。 char *name; scanf(“%s”,name); // 错误 会将输入的字符串拷贝到任何地方可能会擦写掉程序中的数据或代码。
为字符串分配内存后便可读入字符串

没搞懂这道题???

#include<stdio.h>
#include<math.h>
#include <string.h>char fun(char *s){char a[7];s=a;strcpy(a,"look");
}
int main(){char *p=NULL;fun(p);puts(p);return 0;
}

运行结果是不确定的值
在这里插入图片描述

scanf()函数。

弊端:只能读取一个单词。

原理:如果输入了空格会认为字符串结束,将空格后的字符作为下一个输入处理。

例如:

scanf("%s",name); 
输入:aas df 

会将aas放入地址中再在后面自动添加’\0’,并将df作为下一个输入处理。、

scanf中%c和%s的区别

对于%c来说 scanf()接收键盘输入的所有东西,遇回车结束输入 ,可以读入空格,句号。当scanf以%c接收一串字符时,每次只能接收一个字符,即单个字符。

可以得出%s读入字符串时:遇到空格,回车就会结束读入

	char c1,c2,c3,c4,c5;printf("输入\n");scanf("%c%c",&c1,&c2);//a<回车> c3=getchar();//bc4=getchar();//空格 c5=getchar(); //cprintf("输出\n");printf("%c,%c,%c,%c,%c\n",c1,c2,c3,c4,c5);//a,回车,b, ,cprintf("%d,%d,%d,%d,%d",c1,c2,c3,c4,c5);//97,10,98,32,99char c6[10];printf("\n输入\n");scanf("%s",c6);//ab cprintf("%s*",c6);//ab* 

在这里插入图片描述

2.gets()函数。

弊端:该函数只知道数组的开始处,并不知道数组的大小,如果输入的字符串过长容易溢出,可能擦写掉程序中的其他数据导致程序异常终止。

原理:读取整行的输入直至遇到换行符,然后丢弃换行符,储存其余字符,并在这些字符末尾添加一个空字符使其成为一个字符串。

3.fgets()函数。

gets()的参数只有数组的地址,而fgets()函数的参数有三个。

 fgets(将要输入字符串的地址,读入字符的最大数量,要读入的文件) 

通过第二个参数来限制读入字符的数量解决gets()的溢出的问题。
终止条件:①读入n-1个字符②遇到第一个换行符
原理:①终止在末尾添加一个空字符。
②终止保留换行符再在末尾添加一个空字符。
返回值:当读到文件末尾时返回空指针。

4.getchar()

	char c;while(c=getchar()){printf("%c",c);if(c=='\n') break;}

getchar可以接受空格
在这里插入图片描述

	char c;printf("%d\n",'\n');while(c=getchar()){printf("%d\n",c);if(c=='\n') break;}

getchar()可以接受回车,即\n,其ascii为10
在这里插入图片描述

5.puts()

自动在后面加上\n

	char *a="coda";char b[100]="you are the best one.";char *p;p=strcpy(b+8,a);puts(p);puts(b);puts(a);

在这里插入图片描述

char * strcpy(char *dst,const char *src)   
{if((dst==NULL)||(src==NULL))return NULL; char *ret = dst; //[1]while ((*dst++=*src++)!='\0'); //[2]return ret;//[3]
}

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

相关文章

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

printf 函数 #include <stdio.h> C语言标准输入输出头文件 printf做原样打印&#xff0c;把要打印的东西作为参数 代码的行数不影响显示结果的行数 //函数 //printf("要打印的内容"); //一行的形式 printf("ILoveYou"); printf("ILoveYou&q…

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…