当前位置: 技术问答>linux和unix
标准I/O函数fgets()的用法?//linux C编程
来源: 互联网 发布时间:2017-03-07
本文导语: 本帖最后由 rbf926 于 2012-08-02 15:07:53 编辑 首先往/home/ryan/file里写入字符串"hellonworldn",然后关闭流fp,再重新打开流,从文件/home/ryan/file读取字符串的时候能将字符串显示在标准输出。但是如果将字符串"hellonworldn"写入/h...
#include
int main()
{
FILE * fp = NULL;
char * retchar = NULL;
char output[] = "hellonworldn";
char buf[32]={0};
if (NULL == (fp = fopen("/home/ryan/file","w+")));
{
perror("open /home/ryan/file");
exit(1);
}
fputs(output,fp);
fclose(fp);
fopen("/home/ryan/file","r");
while((retchar = fgets(buf,32,fp))!=NULL)
{
puts(buf);
}
fclose(fp);
return 0;
}
|
修改一下。重新打开文件,把文件六指针指向文件的开头。
fp=fopen("/home/ryan/file","r");
fseek(fp, 0, SEEK_SET);
while((retchar = fgets(buf,32,fp))!=NULL)
{
puts(buf);
}
fclose(fp);
return 0;
fseek 重定位流(数据流/文件)上的文件内部位置指针
注意:不是定位文件指针,文件指针指向文件/流。位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变指向别的文件。
fp=fopen("/home/ryan/file","r");
fseek(fp, 0, SEEK_SET);
while((retchar = fgets(buf,32,fp))!=NULL)
{
puts(buf);
}
fclose(fp);
return 0;
fseek 重定位流(数据流/文件)上的文件内部位置指针
注意:不是定位文件指针,文件指针指向文件/流。位置指针指向文件内部的字节位置,随着文件的读取会移动,文件指针如果不重新赋值将不会改变指向别的文件。
|
将文件指针fseek偏移到文件头部。