Day04-C语言-输入输出

发布时间:2024年01月19日

今天的主要内容是输入输出,但是在讲输入输出之前,还是有一些其他的知识点需要掌握。

首先是C语言程序结构

在这里插入图片描述
c语言的语句用来向计算机系统发出操作指令,每个语句在进行编译后均会产生若干条机器指令。而程序应该包括数据描述(由声明部分来实现)和数据操作(由语句来实现)。数据描述包括定义数据结构和在需要时对数据赋予初值。
C语句主要分为以下5类:

1.控制语句:控制语句用于完成一定的控制功能。
(1if...else			//条件语句2for...				//循环语句3while()...		//循环语句4do...while()		//循环语句5continue			//结束本次循环语句6break				//终止执行7switch				//多分枝选择语句8goto				//转向语句9return				//从函数返回语句
2.函数调用语句:由一个函数调用加一个分号构成
eg:printf("Hello World!") ;
3.表达式语句:由一个表达式加一个分号构成
eg:a = 34.空语句。
eg:   ;
5.复合语句:可以用{}把一些语旬括起来成为复合语句(又称分程序)。
eg:{
		z = x + y;
		t = z / 100;
		pritnf("%f\n",t);
	}

接下来介绍今天的重点——输入输出在C语言中的实现

在C语言函数库中有一批“标准输入输出函数”,其中有:

putchar(输出字符)
getchar(输入字符)
printf(格式输出)
scanf(格式输入)
puts(输出字符串)
gets(输入字符串)

今天主要介绍前四个,puts和gets在学到数组时讲。

首先讲单字符的输入输出:

getchar:
int getchar(void); //
功能:
    从终端获取一个字符 
参数:
   	void --空类型 //表示没有参数 
返回值:
    unsigned char ---> int  
	成功:返回读到的字符的ASCII码值 
	失败:EOF (-1)
注意:只能接收一个字符,getchar获得的字符可以赋值给一个字符变量或整型变量,也可以不赋值。
putchar:
int putchar(int c);
功能:
    向终端输出一个字符 
参数:
    要输出的字符的ascii码值 
返回值:
    成功:是输出的字符的ASCII的值
	失败:EOF 

格式化的输入scanf:

int scanf(const char *format, ...);
格式:
	scanf("格式控制字符串",地址列表)
格式控制字符串:
普通字符: 
       原样输入 //不建议写 
占位符:
       占了一个位置,将输入的数据,转换为占位符指定的格式,放到地址列表对应的一块内存空间上 
占位符也决定能识别的字符的范围 

占位符:
  	 //整型 
 	 %d  将输入的数据转换为有符号十进制格式 
 	 %u  将输入的数据转换为无符号十进制格式 
  	 %x  将输入的数据转换为十六进制格式
 	 %o  将输入的数据转换为八进制格式
 	 //浮点数 
	 %f  将输入的数据转换为小数的形式
 	 %g  将输入的数据只取有效字节
 	 %e  //科学计数法
 	 %E  
 	 //字符    
	 %c  以字符的格式输入 //将对应的ASCII码值的字符形式输出 
 	 %s  以字符串格式输入   
注意:
    1.第二个参数注意一定要写 & (取地址)
	2.当多个数据输入时,如果以空白符作为分割符:
	  空白符分别有:
	  	空格 
	  	回车 
	  	tab 
	3.浮点型数据输入时 
	  double -- %lf 
	  类型要匹配 
	  int - %d
	  long - %ld
	  long long - %lld
	4.辅助控制符 
	  m  宽度 -- 输入的宽度 
	  达到宽度时,输入匹配结束 
	  只能获取到前m个数据   
    5.scanf匹配结束的条件 
	 a.空白符 
	 b.指定宽度 
	 123456
	 scanf("%3d",&a); //123(只取前三位)
	 c.非法字符
     123a45	 
	 scanf("%d",&a);//只取到非法字符前的数字
	6. %c 字符占位符:几乎可以识别键盘输入的任何字符 
	  scanf("%c %c %c",&c1,&c2,&c3); // 一个空白符 匹配任意多个空白符 
   	  %*c // 表示跳过一个数据项 

格式化的输出printf:

int printf(const char *  format, ...);
... //代表可变参 
    //参数个数是变化的 
格式:
	printf("格式化控制字符串",输出列表);
格式控制字符串:
	printf("b= %d\n",10);
普通字符: 
       原样输出 
占位符:(与scanf输入差不多)
       占了一个位置,最终输出效果,将输出列表中对应的参数,以占位符指定的格式输出
占位符与输出列表的匹配,从左到右逐个对应的 
如果占位符个数大于输出列表参数个数 , 多的输出是随机值 

占位符:
  	//整型 
  	%d  以有符号十进制格式输出 
  	%u  以无符号十进制格式输出
  	%x  以十六进制格式输出
  	%X  以十六进制格式输出 ,但是对应的a b c d e f 都是大写
  	%o  以八进制格式输出
  	//浮点数 
  	%f  以小数的形式输出,默认保留6位小数
  	%g  以更简洁的方式输出 ,同时不会输出多余的0 
  	%e  以科学计数法形式输出
  	%E  输出结果中e大写 
  	//字符    
  	%c  以字符的格式输出 //将对应的ASCII码值的 字符形式输出 
  	%s  以字符串格式输出 
 辅助控制符:
  	%[辅助控制符]d
  
  # 
     %#x //表示输出十六进制的前缀 
	 %#o //表示输出八进制的前缀
	 
  m:数字  
	 输出的宽度 
	 如果实际的参数的宽度 > m  则以实际参数的宽度为准 
	                    < m  默认右对齐 ,前面的空位补空格 
	 左对齐,辅助控制符前加一个负号(-)
  
  .n:数字 
     主要用于浮点数 
  	 表示控制输出的小数位数 
	 
  字符串:表示输出字符串的前n位 
  
  l // long 类型 
  ll //long long 类型
   
  h  //half --一半  2个字节 
  hh //1个字节 

以上就是今日所学内容。

文章来源:https://blog.csdn.net/m0_61988812/article/details/135682329
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。