基本输入输出函数的使用

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

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

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

 

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

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

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

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

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

 

 

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

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

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

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

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

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

 

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

注意

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

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

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

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

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

posted @ 2014-09-06 14:21  白菜hxj  阅读(355)  评论(0编辑  收藏  举报