基本输入输出函数的使用

fread从文件流stream 中读取nmemb个元素,写到ptr指向的内存中,每个元素的大小为size个字节。

fwrite从ptr指向的内存中读取nmemb个元素,写到文件流stream中,每个元素size个字节。

所有的文件读写函数都从文件的当前读写点开始读写,读写完以后,当前读写点自动往后移动size*nmemb个字节。

gets()会忽略' ',如果程序一执行,就按enter的话,字符串中存的就是''。遇到错误或到文件结尾,返回NULL。

puts()会把''换成 输出。遇到错误返回EOF。

fgets()返回数组首地址,' '也存上,再加个'',遇到文件结尾返回NULL。遇到错误或到文件结尾,返回NULL。

fputs不会在行尾自动添加换行符。遇到错误返回EOF。

注意:从文件中读字符串,末尾都是会自动添加’’d的。

/* 关于输入输出的问题此处再强调一次,gets不会存储‘
’,并将最后一个‘
’换成‘’存储。
 * puts会将‘’变成‘
’输出。
 * gets是一个不安全函数,会输出直至遇到‘’为止。
 * fgets会存储‘
’,fputs输出时不会将‘’变成‘
’      

以f开头的将格式化后的字符串写入到文件流stream中,或者从文件流stream中读取格式化后的字符串

以s开头的将格式化后的字符串写入到字符串str中,或者从字符串str中读取格式化后的字符串

对于写函数,返回写的字符个数(不包括‘’),遇到错误返回一个负数。

对于读函数,返回匹配的个数。遇到错误或者到达文件结尾,返回EOF。

注意:对于读函数,匹配字符串时会忽略空格,并且会在结尾加’’。

read与write函数是Linux系统调用,仅仅用于Linux系统。非缓冲。

注意

针对管道,read的返回值有如下3种情况:

1. 读取正常,返回读到的字符个数

2. 对方写端关闭,read返回0

3. 自己的读端关闭,read出错,返回-1。

 注意:用read读数据到数组中时,是不会自动在末尾加’ ’的!

原文地址:https://www.cnblogs.com/hxjbc/p/3959398.html