C语言中常用的输入和输出函数
-
scanf()函数(Scan Format)
- 函数原型:
int scanf(const char*format,...);
- 函数作用:从标准输入流stdin(标准输入设备,一般指向键盘)读取输入,并根据提供的format来浏览输入;
- 注意点:该函数的返回值是成功读入的数据项数(int 类型),当遇到了“文件结束”则返回EOF;
- 举例:
scanf("%d%d", &a,&b);
-
如果a和b都被成功的读入,那么就会返回2;
-
如果只有a被成功读入,或者只有b被成功读入,那么就会返回1;
-
如果a和b都未被成功读入,那么就会返回0;
-
如果遇到错误或者遇到end of file(end of file 是指ctrl+z或者ctrl+d),返回EOF。
-
- 函数原型:
-
printf()函数(Print Format)
-
函数原型:
int printf(const char*format,...);
-
函数作用:函数把输出写入到标准输出流stdout(标准输出设备,一般为屏幕),并根据提供的format来输出;
-
注意点:该函数也是有返回值的,返回值是prinf()函数实际输出的字符个数;
-
举例:
-
printf("%d",printf("123"));
最终会打印1231,123为printf("123")打印的,1则是printf("123")的返回值;
-
printf("%d",printf("%d",printf("123")));
最终会打印12331,123为最里层 printf("123")打印的结果,第二个3为 printf("123")的返回值,最后面那个1则为 printf("%d",printf("123"))的反回值;
-
printf("%d", printf("123 "));
最终会打印123 4,中间会有一个空格,因为空格也算字符,所以最终返回4,而不是3。
-
-
-
getchar()函数
-
函数原型:
int getchar(void);
-
函数作用:getchar是读入函数的一种,它从标准输入流stdin读取一个字符,相当于getc(stdin);
-
注意点:如果stdin有数据,那么它就可以直接读取了,第一次调用getchar()时,需要用户输入,但是如果你输了多个字符,下一次的getchar()再执行时就会直接从缓冲区中读取;
-
举例:
#include <stdio.h> int main() { int ch; ch = getchar(); putchar(ch); return 0; }
输入:abc 输出a;
-
-
putchar()函数
-
函数原型:
int putchar(int c);
-
函数作用:将指定的表达式的值所对应的字符输出到标准输出终端上,表达式可以是字符型或整型,它每次只能输出一个字符。
-
注意点:
- 当c为一个被单引号(英文状态下)引起来的字符时,输出该字符;
- 当c为一个介于0~127(ASCII码的取值范围)之间的十进制整型数时,它会被视为对应字符的ASCII代码,输出该ASCII代码对应的字符;
- 当c为一个事先用char定义好的字符型变量时,输出该变量所指向的字符。
- 当输出正确时,返回输出字符的ASCII码
- 当输出错误时,返回EOF文件结束符
-
举例:
#include <stdio.h> int main( ) { char ch = 'o'; int num = 109; putchar('T'); putchar(ch); putchar(num); return 0; }
输出:Tom
-
-
gets函数
-
函数原型:
char *gets(char *s);
-
函数作用:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在字符数组中,读取的换行符会被转换为'\0',由此来结束字符串;
-
注意点:读入成功时,返回接收读取结果的字符数组的首地址,读入发生错误或遇到EOF返回NULL;
-
举例:
#include <stdio.h> #include <stdlib.h> int main( ) { char *str; str = (char *)malloc(20*sizeof(char)); gets(str); puts(str); free(str); return 0; }
输入:TomHe789 输出:TomHe789
-
-
puts函数
-
函数原型:
int puts(const char *s);
-
函数作用:该函数用来向标准输出设备stdout(屏幕)输出字符串并换行;
-
注意点:
- 该函数只能输出字符串,不能输出其他类型数值;
- 执行成功返回非负数,执行失败返回EOF;
-
举例:
#include <stdio.h> int main( ) { char *str = "TomHe789"; puts(str); return 0; }
输出:TomHe789
-