C语言中一些常用IO函数的总结

时间:2023-01-03 21:18:33

scanf()函数格式化读入函数,采用转换说明匹配

scanf()通过%的形式对数据进行读入,可以一次读入多个数据。scanf的实现依靠指针所以有如下两条规则:

1、scanf()读入基本数据类型时,需要在变量名前加&。

2、scanf()读入字符串数组时,不需要加。

如scanf("%d",&a),一次读入一个整型数据,scanf("%d%d",&a,&b),一次读入两个数据,在输入两个数据时,遇到第一个空白符号结束读入,开始第二个数据读入。同时,scanf()函数在读入单个字符时scanf("%c",&a)时,要小心缓冲区中空格,换行符等被读入。可以在百分号前加入空格过滤,具体与scanf()的实现有关。

scanf("%s",name)读入字符串,但是如果字符串中有空白符,则读到空白符结束。scanf()函数使用空白、制表符、换行符、空格把输入分成多个字段,从而完成对多个字段的读入。在依次把转换说明和字段匹配时跳过空白等。

在使用scanf()函数读入时,应该避免用于读入带空白等字符的字段。另外应该对scanf()函数发生不匹配时,无限占用缓冲缓冲区进行处理,可用两种方法,对scanf()返回值进行检查,若不匹配则直接退出。或者刷新缓冲区。


getchar()函数用于从输入队列中读入下一个字符,没有任何参数。如:ch=getchar();


gets()函数,读取整行输入,直至遇到换行符或者结束,然后i丢弃换行符,存储其余的字符到字符串数组,但是此函数不检查数组是否装得下整行的字符,容易造成溢出。

处理方法: