导航:首页 > 文件教程 > fgets读取文件

fgets读取文件

发布时间:2021-03-24 18:26:56

1. C语言 怎么用fgets()读取一个txt文件中的任意行的信息

如果使用fgets()读取某个文件,第一次读取的bufsize为5,而文件的第一行有10个字符(算上’\n’),那么读取文件的指针会偏移至当前读取完的这个字符之后的位置。也就是第二次再用fgets()读取文件的时候,则会继续读取其后的字符。
如果使用fgets() 读取文件的时候bufsize大于该行的字符总数加2(多出来的两个,一个保存文件本身的’\n’换行,一个保存字符串本身的结束标识’\0’),文件并不会继续读下去,仅仅只是这一行读取完,随后指向文件的指针会自动偏移至下一行。

2. C++fopen和fgets怎么用来读取文件,举个例子谢谢

把文件名中的汉字去掉是最简单的方法。
你如果想用C++标准文件流来读汉字名文件似乎不好实现,因为标准C++使用的是ANSI字符集,其汉字的编码方案好像为GB2312,而现在的系统中汉字一般使用unicode字符集,与ansi字符集的中文编码方案不是同一种,所以无法识别。
如果想要读入含汉字文件名的文件,最好是将工程换成unicode字符集,并使用windows API的CFile类

3. C语言用fgets()从文件读取多行字符时出现的问题

fgets函数每次读取一行,如果读取的数据存入数组s中,
那么s[0]为‘2’
那么s[1]为‘3’
那么s[2]为‘4’
那么s[3]为空格
那么s[4]s[5]为小字编码

4. C语言fgets读取头文件出现问题

1、fgets函数:
原型:char * fgets(char * buf, int bufsize, FILE * stream);
功能:从文件结构体指针stream中读取数据,每次读取一行;
说明:读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋值为)。如果该行不足bufsize个字符,则读完该行就结束,如果该行超过bufsize-1个字符,则fgets只返回一个不完整的行,buf缓冲区以字符结束,下一次fgets调用会继续读取该行剩余的字符;
头文件:stdio.h;
返回值:若读入成功,返回与参数buf相同的字符指针,若读入过程中遇到EOF或发生错误,返回NULL指针。所以当遇到返回值为NULL的情况时,应使用ferror或feof函数检查是发生错误还是遇到EOF。
2、例程:

#include<stdio.h>
inta;
charb,c[100];
intmain(){
FILE*fp1=fopen("input.txt","r");//打开输入文件
FILE*fp2=fopen("output.txt","w");//打开输出文件
if(fp1==NULL||fp2==NULL){//若打开文件失败则退出
puts("不能打开文件!");
rturn0;
}
fscanf(fp1,"%d",&a);//从输入文件读取一个整数
b=fgetc(fp1);//从输入文件读取一个字符
fgets(c,100,fp1);//从输入文件读取一行字符串

printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数

fputs(c,fp2);//向输出文件写入一行字符串
fputc(b,fp2);//向输出文件写入一个字符
fprintf(fp2,"%d",a);//向输出文件写入一个整数

fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return0;
}

5. C语言 怎么用fgets()把一个文件多行内容读取到一个字符串中

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//返回从filename中读取第m到n行字符保存到mystring,
//如果打不开文件,失败返回NULL
//如果不足m行,返回NULL,且mystring为空串
//如果不足n行,返回NULL,mystring为m行之后的所有内容
//如果完成成功,返回mystring,且mystring保存m到n行的字符
char*getfilechar(char*filename,intm,intn,char*mystring){
#defineN2000//假设每行长度不超过2000字符
FILE*fp;
inti;
charstr[N];
*mystring='';
if((fp=fopen(filename,"r"))==NULL){
printf("打开文件%s失败 ",filename);
returnNULL;
}
for(i=1;i<m;i++)
if(fgets(str,N,fp)==NULL){
printf("文件%s长度不足%d行 ",filename,m);
fclose(fp);
returnNULL;
}

for(i=m;i<=n;i++){
if(fgets(str,N,fp)==NULL){
printf("文件%s长度不足%d行 ",filename,n);
fclose(fp);
returnNULL;
}
strcat(mystring,str);
}
fclose(fp);
returnmystring;
}
intmain(){
charmystring[2000];
getfilechar("d:\temp.txt",20,26,mystring);
if(mystring!=NULL)printf("%s",mystring);
}

6. C语言fgets函数读取文件,为何以行判断字符串结束

fgets有三个参数, 第二个参数是传入的空间大小, 也就是第一个参数指向的大小。
如果第二个回参数值为n, 那么当答实际读到的字符为n-1个, 或者遇到换行,都会使fgets结束读取。 注意是n-1, 因为要留一个字符放结束符\0
于是 第一次调用 n=8,实际读入7个 “15B 18 ”这里有两个空格。
第二次 n=4, 实际读入3个, "122"
第三次, n=4, 但读取的时候遇到换行了, 于是只读了一个换行就返回了, 结果是"\n"
第四次 n=4读入三个 "166"
第五次 n=8 只读入一个换行 "\n"
第六次 n=6 读入16后遇到换行, 实际读了三个"16\n"
所有都是按照规则来的,对照一下就清楚了。
感觉你是对第二个参数理解不对, 才产生的疑惑。

7. fgets和fread读取文件的区别

读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为: fgets(字符数组名,n,文件指针); 其中的n是一个正整数。表示从文件中读出的字符串不超过 n-1个字符。在读入的最后一个字符后加上串结束标志'\0'。例如:fgets(str,n,fp);的意义是从fp所指的文件中读出n-1个字符送入 字符数组str中。
fputs函数的功能是向指定的文件写入一个字符串,其调用形式为: fputs(字符串,文件指针) 其中字符串可以是字符串常量,也可以是字符数组名, 或指针变量.
整块数据的读写函数。 可用来读写一组数据,如一个数组元素,一个结构变量的值等。读数据块函数调用的一般形式为: fread(buffer,size,count,fp); 写数据块函数调用的一般形式为:
fwrite(buffer,size,count,fp); 其中buffer是一个指针,在fread函数中,它表示存放输入数据的首地址。在fwrite函数中,它表示存放输出数据的首地址。 size 表示数据块的字节数。count 表示要读写的数据块块数。fp 表示文件指针。

8. C语言fgets如何循环读取整个文本文件的内容

while(!feof(fp))
{
fgets(buff,sizeof(buff),fp);

SetDlgItemText(hwnd,IDC_RICHEDIT,buff);

}
不是只读取了一来行,源是只在RICHEDIT这里面显示了一行,可能是数据放到RICHEDIT这里面被覆盖了,试试用EDIT_BOX控件吧,在style里面勾选want return选项
-物联网校企联盟技术部

9. 关于C语言fgets()读取文件

C语言中fgets()函数说明:fgets()用来从参数stream 所指的文件内读入字符并存到参数s 所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1 个字符为止, 最后会加上NULL 作为字符串结束。

原型 char * fgets(char * s, int n,FILE *stream);

参数:

s: 字符型指针,指向存储读入数据的缓冲区的地址。

n: 从流中读入n-1个字符。

stream : 指向读取的流。

返回值:

1. 当n<=0 时返回NULL,即空指针。

2. 当n=1 时,返回空串""。

3. 如果读入成功,则返回缓冲区的地址。

4. 如果读入错误或遇到文件结尾(EOF),则返回NULL。

标准库中fgets(...)的实现如下:

char*fgets(char*s,intn,FILE*stream)
{
registerintc;
registerchar*cs;
cs=s;
while(--n>0&&(c=getc(stream))!=EOF)
if((*cs++=c)==' ')
break;
*cs='';
return(c==EOF&&cs==s)?NULL:s;
}
阅读全文

与fgets读取文件相关的资料

热点内容
win7取消共享文件密码 浏览:519
怎么练c编程 浏览:101
xml文件中的注释是 浏览:353
报考质量内审员在什么网站 浏览:883
服务网络拓扑怎么变化 浏览:871
微信接收文件在电脑哪 浏览:232
java定时器定时执行一次 浏览:821
微信公众平台javademo 浏览:83
大学生课件APP怎么弄 浏览:241
js获取到span中的值 浏览:20
手机自动跳出游戏安装程序 浏览:920
iphone4s612固件 浏览:65
奥数编程有哪些用处 浏览:810
win101704游戏闪屏 浏览:461
深孔钻编程软件哪个好 浏览:756
怎么上传百度文件下载 浏览:203
wordpress做的学校网站 浏览:314
xp系统启动之后网络图标 浏览:184
excel打开其他文件打不开 浏览:634
苹果手机听新闻哪个app好 浏览:165

友情链接