Day 6 数据输入输出

1.putchar

c语言函数之一,作用是向终端输出一个字符。其格式为putchar(c),其中c可以是被单引号(英文状态下)引起来的一个字符,可以是介于0~127之间的一个十进制整型数(包含0和127),也可以是事先用char定义好的一个字符型变量。

putchar函数的基本格式为:putchar(c)。

(1)当c为一个被单引号(英文状态下)引起来的字符时,输出该字符(注:该字符也可为转义字符);

(2)当c为一个介于0~127(包括0及127)之间的十进制整型数时,它会被视为对应字符的ASCII代码,输出该ASCII代码对应的字符;

(3)当c为一个事先用char定义好的字符型变量时,输出该变量所指向的字符。
1.,#include <stdio.h>

int main()

{

char a,b,c;

a='T';b='M';c='D';

putchar(a);putchar(b);putchar(c);putchar('\n');

putchar(a);putchar('\n');

putc

putchar

putchar

har(b);putchar('\n');

putchar(c);putchar('\n');

return 0;

}

输出结果为:

TMD

T

M

D

 

2.赋的值大于255时

#include<stdio.h>

void main( )

{

     int a = 592;  //将592值赋给变量a

     int b = 267;  //将267值赋给变量b

     putchar(a) ; //输出变量a的值

     putchar('\n') ;

     putchar(b) ; //输出变量b的值

     putchar('\n') ;

}

结果显示错误从结果中可以发现,赋的值被截断成char型数据了,也就是说只取了低八位的数据。

 

从示例来说,putchar()这个函数不会检查要输出的字符的真正范围。

 

2.printf

printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。

printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。

printf("",1,2,3, )

 %lm.n【格式字符】

a=12   b=15

printf("a=%d  b=%d",a,b);        

输出 a=12 b=15

 

int a=-1;  printf("%d,%u,%o,%x",a,a,a,a);

 

 

 printf("%5d\n",a);

%d表示把数按十进制整型输出,数字5表示的是输出宽度,即输出的数值如果大于5位,按原数输出,如果小于5位在数的左边补空格

 

3.getchar

getchar是读入函数的一种。它从标准输入里读取下一个字符,相当于getc(stdin)。返回类型为int型,为用户输入的ASCII码或EOF

getchar()是c语言中的一个函数,可以用它来赋一个字符的值。

当程序调用getchar时,程序就等待用户按键并将输入的字符被存放在键盘缓冲区中。getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕。在此之前,如果用户在按回车之前输入了一个以上的字符,那么其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键。

4.scanf

canf()C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

scanf函数返回成功读入的数据项数,读入数据时遇到了文件结束则返回EOF

如:

1

scanf("%d %d",&a,&b);

函数返回值为int型。如果ab都被成功读入,那么scanf的返回值就是2

如果只有a被成功读入,返回值为1

如果ab都未被成功读入,返回值为0

如果遇到错误或遇到end of file,返回值为EOFend of fileCtrl+z 或者Ctrl+d

例:使用scanf函数输入数据。

1

2

3

4

5

6

7

8

9

#include <stdio.h>

int main(void)

{

    int a,b,c;

    printf("Give me the value of a,b,c seperated with whitespaces:\n");

    scanf("%d%d%d",&a,&b,&c);

    printf("a=%d,b=%d,c=%d\n",a,b,c);

    return 0;

}

&a,&b,&c中的&是寻址操作符,&a表示对象a在内存中的地址 [2]  ,是一个右值。变量abc的地址是在编译阶段分配的(存储顺序由编译器决定)。

这里注意:如果scanf%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3tab 4” “2tab3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”

 

猜你喜欢

转载自blog.csdn.net/j_xianyu/article/details/81159162