C语言 数据输入/输出函数

Ⅰ )概述

         C语言的语句是用来向计算机系统发出操作指令的。当要求程序按照要求执行时,先要给它一个指示,这个时候就要使用向程序输入数据的方式。当程序解决了一个问题,还要使用输出的方式将执行的结果显示出来。C语言中常用的数据输入输出函数主要包括:字符数据输入输出函数getchar(),putchar()、字符串输入输出函数gets(),puts()和格式输入输出函数scanf()和printf()函数,使用这些输入输出函数是都要包含头文件 stdio.h。

Ⅱ)数据输入输出函数 
2.1.1 字符数据输入函数 

      字符数据输入使用的是getchar 函数,此函数的作用是从输入设备输入一个字符。

      getchar函数的定义为: int getchar(); 

      getchar 函数没有参数,函数的值是从输入设备(一般是指键盘)输入一个字符。

      例如:从输入设备得到一个字符变量值附给字符变量,首先需要定义一个char型的字符 变量,然后使用getchar 函数将输入的字符赋给已经定义的char型变量,代码如下: 

      char C; C=getchar(); 

      通过getchar函数就可以将键盘输入的字符数据赋给字符变量C。

      需要注意的是:getchar()只能接受一个字符。getchar函数得到的字符还可以作为表达式的一部分。例如:               putchar(getchar()); 

      getchar函数作为putchar()函数参数,当getchar 函数从输入设备得到字符后,putchar 函数将字符输出。 

      getchar函数得到的字符除了可以赋给字符变量外还可以赋给整形变量,将getchar函数得到的字符赋给整形变量输出的是该字符变量的ASCⅡ码。

      例如: 

       

#include<stdio.h>

 

int main()

{

    int a;               //定义一个整形变量

    a = getchar();     //将getchar得到值赋给一个整形变量a得到

    printf("%d\n", a);//输出整形变量a

    return 0;

}


     从键盘输入赋给整形变量的字符A输出A的ASCⅡ码65.


      2.12 字符数据输出函数 

    字符数据输出使用的是putchar函数,作用是向显示设备输出一个字符。

      该函数的定义为: int putchar(int ch); 其中ch为要进行输出的字符,可以是字符型变量、整形变量或常量。

      例如输出一个字符A的代码如下:

        putchar('A'); 

       putchar函数的使用比较简单,例如使用putchar函数输出字符串“Tom”: 

#include<stdio.h>

 

int main()

{

    char c1, c2, c3;          //定义三个char型变量

    c1 = 'T';                  //变量赋值

    c2 = 'o';

    c3 = 'm';

    putchar(c1);              //使用putchar函数输出

    putchar(c2);

    putchar(c3);

    printf("\n");

    return 0;

}


 2.2.1 字符串输入函数 

       字符串输入函数为gets 函数,作用是将读取的字符串保存在形式参数 str中,读取过程直到出现新的一行为止。其中新的一行的换行字符将会转化为字符串中的空终止符“\0”。gets函数的定义为:

      char* gets(char* str); 其

      中的str字符指针变量为形式参数,例如定义字符数组变量String,然后使用gets 函数获取输入字符串,代码如下: 

       char String[20]; gets(String); 

       在上面的代码中,Cstring 变量获取到了字符串,并将最后的终止符“\0”转换为换行符。

       字符串输入函数举例:

       

#include<stdio.h>

 

int main()

{

    char str[50];        //定义char型数组来储存字符串

    gets(str);           //输入字符串

    printf("%s\n", str); //利用printf函数输出

    puts(str);           //利用puts 函数输出

    return 0;

}

       程序运行结果: 



       通过键盘输入“Hello Tom and Jerry"通过printf 函数和puts 函数都可以进行输出。puts 函数数将在后面介绍,值得注意的是:

printf("%s\n", str); //利用printf函数输出

    puts(str);           //利用puts 函数输出

     使用puts函数没有输入转义字符“\n”,但执行结果却自动换行。这是因为:编译器会在字符串常量的末添加“\0”,puts函数会在字符串中判断“\0”,结束符,遇到结束符时,后面的字符不在输出并且自动换行。


2.2.2 字符串输出函数 

       字符串输出使用的是puts 函数,作用是输出一个字符串到屏幕上。

       该函数的定义为:int puts(char* str); 

       其中形式参数str是字符指针类型,可以接收要进行输出的字符串。例如:使用puts函数输出一串字符:                     puts("Tom and Jerry");

       这条语句执行后后输出一个字符串“Tom and Jerry”并自动换行。这与printf函数有所不同,printf函数进行换行时,要在其中添加转义字符"\n"但是puts函数会在字符串中判断“\0”,结束符,遇到结束符时,后面的字符不在输出并且自动换行。 

       例如:puts("Tom \0 andJerry");

       执行此语句遇到"\0",就会自动结束输出"\0"前面的字符串,输出"Tom"。 

       字符串输出函数举例:

#include<stdio.h>

 

int main()

{

    char* c = "Tom and Jerry";         //定义字符串指针变量

 

    puts("Tom and Jerry");            //输出

    puts("Tom\0 and Jerry");           //输出,在Tom 后面加“\0”

    puts(c);                           //输出字符串变量的值

 

    return 0;

}

      运行结果: 



      通过例子,我们可以很好的理解字符串输出函数puts。puts函数用于字符串输出,当使用puts输出字符串常量时,如果在字符串中没有结束符"\0",则输出的字符会一直到最后编译器为其字符串添加的结束符"\0",如果在字符串中添加"\0",则只输出"\0"前面的内容,同是我们也可以将字符串赋值给一个指针变量或字符数组,同过指针变量名或字符数组名输出字符串。

2.3.1 格式输入函数 

      格式输入函数scanf的功能是可以制定固定的格式,并且按照指定的格式,接收用户在键盘上输入的数据,最后将数据存储在指定的变量中。scanf 函数的一般形式为:

      scanf(格式控制,地址列表); 

     例如:从键盘输入一个整形数据的操作,C语言语句为:scanf("%d", &a);

     "& "为取地址运算符,表示取变量a的地址。在编写程序时,在scanf函数的参数地址列表一定要使用变量的地址,而不是变量的标识符,否则编译器会提示错误。


 例:从键盘输入圆的半径,求圆的面积:

   

#include<stdio.h>

#define PI 3.14                          //宏定义圆周率PI

 

int main()

{

    float radius;

    float area;

 

    printf("请输入圆的半径:\n");      //提示输入圆半径

    scanf("%f", &radius);               //输入圆半径

    area = PI*radius*radius;

    printf("圆的面积为:%6.3f", area);   //%6.3f 表示输出占6个字节保留3位小数

 

    return 0;

}

       这是一个相对简单的例子,通过scanf函数从键盘输入要计算面积的圆半径,然后通过公式计算圆面积,并输出。 

       2.3.2 格式输出函数 

       printf函数就是格式输出使用的函数,也称为格式输出函数。printf函数的作用是向输出设备输出数据,其一般格式为: printf(格式控制,输出列表); 

      (1)格式控制是指用" "括起来的内容。其中包括两种字符,一种是格式字符,另一种是普通字符。

       ①格式字符用来进行格式说明,说明输出数据的类型。格式字符是以“%”开头的。

       

int a=124;

    printf("%x", a);

表示以十六进制整数形式输出定义的变量a,执行会输出124的16进制数 :7c。 

     ②普通字符是需要原样输出的字符,其中包括双引号内的逗号,空格和换行符。 例如: 

printf("Hello world\n"); 

      则输出 “Hello world”并进行换行。 

    (2)输出列表中列出的是要进行输出的一些数据,可以是变量名或表达式。 

      例如:

     

int a = 10;

    printf("This is %d\n", a);

       执行上面的语句输出"This is 10" 在格式控制双引号中的字符是“This is %d”,其中的this is 字符是普通字符,而“%d”是格式字符,表示后面输出的是整型变量a的值。



      下面介绍一个比较有意思的输出:

#include<stdio.h>

 

int main()

{

    printf("%d\n", (printf("%d", printf("%d", 43))));

    return 0;

}


      这段代码执行输出:4321 运行结果如下图:


     

       解释这个问题,我们需要知道printf 函数的返回值。printf函数的返回值是被打印字符的个数。这段代码首先执行

printf("%d",43);这时输出43。我们知道printf函数有两个参数,printf("%d",printf("%d",43));在这个语句中后面的

printf("%d",43)可以看作是printf("%d",printf("%d",43));的一个参数,所以其返回值是打印字符“43”的个数2,同理,

最后一个打印出来的值是字符"2"的个数即1,所以,其运行结果为:4321。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值