C 语言头文件 stdio.h 中的输入输出函数详解

C 语言头文件 stdio.h 中的输入输出函数详解stdio h 几乎可以说是每一个 C 语言源代码中都要引用的一个文件 其中定义了许多常用的函数 如输入输出函数 文件相关的函数等

大家好,欢迎来到IT知识分享网。

C 语言头文件 stdio.h 中的输入输出函数详解

stdio.h 几乎可以说是每一个 C 语言源代码中都要引用的一个文件,其中定义了许多常用的函数,如输入输出函数、文件相关的函数等。

下面介绍 stdio.h 中定义的基本输入输出函数。

1. 格式化输入输出

第一个出场的是用得最多的一对输入输出函数。

咱就来看一下这两个函数在 stdio.h 文件中是如何定义的?

// 输入函数 int scanf(const char* __format, ...); // 输出函数 int printf(const char* __format, ...);

这两个函数定义的参数都有两个,第一个是字符指针常量,其实也就是字符串,是两个函数都必须要具备的参数。

后面的三个点,名为可变参数。不限制参数个数(0个及以上)、参数类型。

#include<stdio.h> int main() { int a; scanf("%d", &a); return 0; }

在 scanf 函数的字符串里,可以是格式字符、普通字符、空白字符,而转义字符在其中会失去它的转义功能,成为一个普通字符。

当字符串中每有一个格式符号,相应后面的可变参数列表中就要有一个变量,一一对应。如果不附上变量,就会产生报错。

变量如果是基本数据类型的,如整型、浮点型、字符型的,则要在变量前面加上一个寻址运算符(&),才能将数据传递给相应的变量。

同时需要注意的是,scanf 函数的可变参数列表只能传入变量,而不是能是常量、表达式等。

#include<stdio.h> int main() { int a=3; printf("输出数字:%d\n", a); return 0; }

printf 函数中,字符串中可以是任意字符,另外转义符号(如 \n、\t 等)不会被转换为普通字符。

和 scanf 函数不同的是,该函数的可变参数列表没有强制要求有多少个格式符号,就要填写变量,编译是不会发生错误,也会正常运行。

不过不建议这么做,因为没有意义,其次运行后编译器会随机安排一个垃圾值,获得预期外的结果。

且 printf 函数的可变参数列既可以是变量,也可以是常数、表达式。

2. 单字符输入输出

第二组输入输出函数,getchar 和 putchar。

// getchar int getchar(void); // putchat int putchar(int char);

getchar 函数是没有参数的。每一次只能接受一个字符,即是输入一连串的字符,也只会接收第一个字符,而且字符必须还是 ASCII 码表上的字符。如果输入的是一个汉字,那么是不会被接收的。

putchar 函数是有参数的,传入的参数只能是整数类型或者字符类型。其中整数只有在 0-255 之间才能输出字符,其他的是无法在屏幕上显示结果。

#include<stdio.h> int main() { char c = getchar(); putchar(c); return 0; }

输入输出:

C 语言头文件 stdio.h 中的输入输出函数详解

3. 字符串输入输出

顾名思义,这一组函数用于字符串的输入和输出。

// gets char* gets(char *); // puts int puts(const char *);

gets 函数有一个参数,可以是字符指针变量或者字符数组变量。

puts 函数也有一个参数,可以是字符指针变量、字符数组,也可以是字符指针常量。

当传给 gets 函数是一个字符指针的时候,需要对其进行初始化。

#include<stdio.h> int main() { char str[10]="\0"; char *string = str; gets(string); puts(string); return 0; }

输入输出:

C 语言头文件 stdio.h 中的输入输出函数详解

但需要注意的是,输入的字符不能大于定义的数组长度,否则就会造成内存溢出,产生异常。

C 语言头文件 stdio.h 中的输入输出函数详解

4. 附录

格式字符:

C 语言头文件 stdio.h 中的输入输出函数详解

转义字符:

C 语言头文件 stdio.h 中的输入输出函数详解

总结

关于 C 语言常用的输入输出函数就介绍到这结束了。如果本篇文章对您有所帮助,点个赞支持一下。

如有发现文中有错误或者不恰当的地方,欢迎在评论区留言讨论。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/160061.html

(0)
上一篇 2024-12-02 16:15
下一篇 2024-12-02 16:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信