流的相关内容:
fopen:可以指定打开文件的路径和模式。
函数原型:FILE*fopen(const char *path,const char *mode)
Path:包含要打开的文件路径及文件名 mode:文件打开方式
打开方式参数如下:
r或rb 打开只读文件,该文件必须存在。
r+或r+b 打开可读写的文件,该文件必须存在。
w或wb 打开只写文件,若文件存在则会删除以前的内容;不存在则会建立该文件。
w+或w+b 打开可读写文件,若文件存在则会删除以前的内容;不存在则会建立该文件。
a或ab 以附加方式打开只写文件。若文件不存在则会建立该文件;若文件存在,写入的数据会被加到文件尾,即原先的文件内容会得到保留。
a或ab 以附加方式打开可读写文件。若文件不存在则会建立该文件;若文件存在,写入的数据会被加到文件尾,即原先的文件内容会得到保留。
fdopen():可以指定打开的文件描述符和模式。
freopen():可以指定打开的文件、模式、特定的I/O流。如:freopen("file_e","w",stdout)
fclose 该函数将流的缓冲区内的数据全部写入文件中,并释放相关的资源。
函数原型:intfclose(FILE *stream); 如:fclose(fp);
perror 错误处理相关函数 如perror("freopen");
fread():对文件流按指定大小为单位进行读操作
函数原型size_tfread(void *ptr,size_t size,sie_t nmemb,FILE *stream)
ptr:存放读入记录的缓冲区 size:读取的每个记录的大小
nmemb:读取的记录数 stream:要读取的文件流
fwrite():对文件流按指定大小为单位进行读操作
函数原型size_tfwrite(void *ptr,size_t size,sie_t nmemb,FILE *stream)解析如上
fprintf sprintf重点掌握
每个一秒钟显示当前的时间值并将时间值写入text文件中:
#include <time.h>
int main()
{
FILE*fp;
structtm *p;
time_tt;
if((fp=fopen("text","w+"))==NULL)
{
perror("freopen");
return-1;
}
while(1)
{
t= time(NULL);
p= localtime(&t);
fprintf(fp,"%d-%d-%d%d:%d:%2d\n",p->tm_year+1900,p->tm_mon+1,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec);
printf("%d-%d-%d%d:%d:%2d\n",p->tm_year+1900,p->tm_mon+1,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec);
fflush(fp);
sleep(1);
}
fclose(fp);
return0;
}