欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第三节--输入输出专题

程序员文章站 2022-04-11 13:17:30
...

一、字符输出函数和格式输出函数

数据输出:
C语言无I/O语句,I/O操作由函数实现
#include <stdio.h>


字符输出函数:
格式: putchar( c )
参数: c为字符常量、变量或表达式
功能:把字符c输出到显示器上
返值:正常,为显示的代码值;
例子,

#include <stdio.h>
main()
{   int c;
    char a;
    c=65;  a='B';
    putchar(c); putchar('\n'); putchar(a);
}

运算结果为:A
B


格式字符:
第三节--输入输出专题

int a=567;printf (%d”,a);	         //567
int a=255;printf(%x”,a); 		    //ff
int a=65;printf(%o”,a); 		   //101
int a=567;printf(%u”,a); 		   //567
char a=65;printf(%c”,a);		   //A
printf(%s”,“ABC”); 		   //ABC
float a=567.789;printf(%e”,a);	   //5.677890e+02
float a=567.789;printf(%f”,a);	   // 567.789000
float a=567.789;printf(%g”,a);	   // 567.789
printf(%%);			       //%

附加格式说明符:
第三节--输入输出专题

例  m.n
int a=1234;
float f=123.456;
char ch=‘a’;
printf(%8d,%2d\n”,a,a);
printf(%f,%8f,%8.1f,%.2f\n”,f,f,f,f);
printf(%3c\n”,ch);static char a[]=“Hello,world!printf(%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a);

运行结果:
第三节--输入输出专题

0+
int a=1234;
float f=123.456; 
printf(%08d\n”,a); 
printf(%010.2f\n”,f); 
printf(%0+8d\n”,a);    
printf(%0+10.2f\n”,f)

总结与思考;
主要介绍了C语言中的两个输出函数,字符输出函数和格式输出函数(重点)。
思考:
格式输出函数有哪些格式字符?
格式输出函数的格式字符有哪些附加说明符?

二、字符输入函数和格式输入函数

字符输入函数:
字符输入函数 getchar
格式: getchar( )
功能:从键盘读一字符
返值:正常,返回读取的代码值;出错或结束键盘输入(ctrl d),返回-1

#include <stdio.h>
int main()
{  int c;
   printf("Enter a character:");
   c=getchar();
   printf("%c--%d->hex%x\n", c, c, c);
}

运行结果:

Enter a character:A
A--65->hex41

格式输入函数:

格式: scanf(“格式控制串”,地址表)
功能:按指定格式从键盘读入数据,存入地址表指定
存储单元中,并按回车键结束
返值:正常,返回输入数据个数
地址表:变量的地址,常用取地址运算符&

目前,scanf支持的格式字符很多,如下:
第三节--输入输出专题
scanf函数支持的格式说明符可以带以下修饰符:
第三节--输入输出专题

1
scanf(%4d%2d%2d”,&yy,&mm,&dd);
若输入19991015
则yy为1999, mm为10, dd为15
2
 scanf(%2d%*3d%2d”,&a,&b);
 若输入1234567
 则a为12,b为67

说明:
用“%c”格式符时,空格和转义字符作为有效字符输入
例子,
scanf(“%c%c%c”,&c1,&c2,&c3);
若输入abc
则c1为a, c2为空格, c3为b


总结,输入数据时,遇以下情况认为该数据结束:
遇空格、TAB、或回车
遇非法输入
遇宽度结束
例子,
ret=scanf(“%d%c%f”,&a,&b,&c);
若输入1234a123o.26
则a为1234, b为‘a’, c为123


总结与思考:
主要介绍了C语言中的两个输入函数,字符输入函数和格式输入函数(重点)。

思考:
格式输入函数有哪些格式字符?
格式输入函数的格式字符有哪些附加说明符?

三、输入函数的垃圾处理及字符串的输入输出

1、掌握如何处理输入函数留下的垃圾
2、掌握字符串输入函数的用法
3、掌握字符串输出函数的用法


输入函数留下的“垃圾:
使用输入函数可能会留下垃圾

int x;
char ch;
scanf(%d”,&x);
scanf(%c”,&ch);
printf(“x=%d,ch=%d\n”,x,ch);

方法1:用getchar()清除:

int x;
 char ch;
 scanf(%d”,&x);
 getchar();//--清楚垃圾
 ch=getchar();
 printf(“x=%d, ch=%d\n”, x, ch);

方法2:用格式串中空格或“%*c”来“吃掉”:

int x;
char ch;
scanf(%d”,&x);
scanf(%c”,&ch);scanf(%*c%c”,&ch);//--清楚垃圾

字符串输入函数”:

字符串输入函数gets
格式: char * gets(char *s)
功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加‘\0’
说明1:输入串长度应小于字符数组维数
说明2:与scanf函数不同,gets函数并不以空格作为字符串输入结束的标志。
举例如下

int main( )
{     char string[15];
	    printf(“Input a string:);
       gets(string);
	    printf(%s\n”, string);
	    return 0;
 }

字符串输出函数:

字符串输出函数puts
格式:int puts(const char *s)
功能:向显示器输出字符串(输出完,换行)
说明:字符数组必须以‘\0’结束
举例如下

#include <stdio.h>
int main( )
{     char string[80] = “How are you”;
	   puts(string);
      return 0;
 }
输入:  How  are  you?
输出:  How  are  you ?  

总结与思考:
主要介绍了C语言中的如何处理输入函数留下的垃圾,字符串的输入输出函数。
思考:
解决输入函数留下的垃圾,有几种方法?
C语言中,如何输入或输出一个字符串

putchar字符变量输出:
程序:
第三节--输入输出专题

编译结果:
aaa@qq.com:~/xiaoyu/putchar$ gcc in_out.c -o in_out -Wall
aaa@qq.com:~/xiaoyu/putchar$ ./in_out
A             
8
分析:65对应字符A    “/n”换行     ‘8’是字符8   所以显示(A   换行    8)

printf输出:
程序:
第三节--输入输出专题
编译结果:
第三节--输入输出专题