『壹』 如何用c读取文件
1.循环读取一个文件的内容。这样做没有任何意义,不如把读取的内容保持在变量当中,节省空间时间。如果非要反复读取的话可以使用rewind函数把文件指针重置。函数名:rewind()功能:将文件内部的位置指针重新指向一个流(数据流/文件)的开头注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。rewind函数作用等同于(void)fseek(stream,0l,seek_set);2.循环读取多个文件的内容。把多个文件名存在一个字符串数组当中。使用循环语句反复打开-读取-关闭即可。例如:char * s[3]={"文件一","文件二","文件三"};for(i=0;i<3;i++){ f=fopen(s[i]); //打开第i个文件 //读取数据 fclose(f);//关闭文件}
『贰』 C语言文件的文本怎么读取
根据你给的文件保存的数据的格式,我猜测每一行是一个学生的信息,格式如下:
序号 姓名 成绩1 成绩2 成绩3 …
知道了题意和题目要求,那么一切将会变得简单起来,请看代码。
#include<stdio.h>#defineREAD_FILE"data.txt"/*要读取的文件的名字*/#defineWRITE_FILE"T_data.txt"/*要写入的文件的名字*/#defineSTU_NUM10/*最大学生人数*/#defineMAX_LEN50/*一行的最大字符数*//**获取总分函数*/intget_sum(charconst*msg){ intsum=0; inttmp; /* *遍历一行字符 */ while(*msg!=''){ /* *以空格为一项成绩的分隔标志 */ tmp=0; while(*msg!=''&&*msg!=''){ /* *char类型数字转int类型数字 */ tmp=(tmp*10)+((*msg)-'0'); msg++; } /* *求总和 */ sum+=tmp; if(*msg==''){ break; } msg++; } returnsum;}intmain(void){ FILE*rfp,*wfp;/*声明读取/写入文件指针*/ charstudent[STU_NUM][MAX_LEN];/*存放读取到的数据缓存数组*/ charch; intsum[STU_NUM];/*成绩总和*/ inti=0; intj=0; intk=0; rfp=fopen(READ_FILE,"r");/*打开数据文件*/ if(rfp==NULL){ perror(READ_FILE); exit(1); } for(i=0;i<STU_NUM;i++){ sum[i]=0; } /* *逐个字符读取文件的内容, *直至遇到文件结束符为止。 */ i=0; while((ch=fgetc(rfp))!=EOF){ /* *遇到换行符表示已经读取完一个学生的资料; *否则继续将数据写入缓存数组中。 */ if(ch=='
'){ student[i][j]=''; j=0; i+=1; }else{ student[i][j++]=ch; } } student[i][j]=''; wfp=fopen(WRITE_FILE,"w"); /* *开始分析数据 *根据文件存放数据的格式,从下标为2的位置开始分析数据。 *当遇到空格时证明后面的数据是成绩,每一科成绩分数均以空格分开。 *printf是显示出来。 *fprintf是写入另一个文件。 */ for(j=0;j<=i;j++){ k=2; printf("%c%c",student[j][0],student[j][1]); fprintf(wfp,"%c%c",student[j][0],student[j][1]); while(student[j][k]!=''){ printf("%c",student[j][k]); fprintf(wfp,"%c",student[j][k]); k++; } printf("'ssumofscoresumis"); fprintf(wfp,"'ssumofscoresumis"); sum[j]=get_sum(&student[j][k]); printf("%d
",sum[j]); fprintf(wfp,"%d
",sum[j]); } /* *记得关闭文件哦。 */ fclose(rfp); fclose(wfp); return0;}
以下是运行结果:
这个程序仅仅是针对你的题目要求来的,文件存放的数据格式不能更改,否则会出错。每一行必须以回车键结束,最后一行的最后一个字符之后什么也不能有。我尽量以你看得懂的方法来写,关键部分都带有注释,有问题不要追问了,自己多思考思考,实在解决不来还是很欢迎可以追问的哦,哈哈哈!!!
『叁』 c语言中文件怎样调用文件
lz是不是不知复道怎么把多个制文件联系在一起编译运行啊!首先修正一个楼上的错误。对于用户自己写的头文件,应当用#include“xx.h”而不能用#include<xx.h>。否则将会出错。lz在写好这个头文件后,比如你说的xx.h只需要在你的源文件,也就是.c文件的开头使用预处理命令#include"xx.h"便可以将头文件里面的内容包含到你的.c文件了。然后直接编译,链接你的源文件(.c),然后生成生成.exe文件,便可以运行了。lz注意喽!一定要把你的头文件和源文件放到同一个文件夹目录下,才能正确运行喽!
『肆』 C语言如何读取文件
文件流指针应打文件,要同操作两文件,所要用两文件流指针,像要同操作两箱.程序理解:两箱,fp1,fp2;打箱fp1,fp2,拿1024东西看,同放第二箱fp2,至箱东西完全拿,关闭两箱.例都差,看看stdlibf函数,C文件操作:FILL*pf;//声明指针,指针数组FILEpf[2]或FILE**pf;pf=fopen();fread()orfwrite()……//操作文件fclose(pf)//关闭文件
『伍』 c语言读取文本文件
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。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;}
『陆』 怎么用C语言读取文件
#include"stdio.h"intmain(){ FILE*pf=NULL; //文件指针 intfilelen=0; inti=0; char*buf; pf=fopen("D:\\test.txt","r"); //以只读方式打开文件 if(pf==NULL) { return0; } else { //获得文件长度 fseek(pf,0,SEEK_END); //文件指针移到末尾 filelen=ftell(pf); //获得文件当前指针位置,即为文件长度 rewind(pf); //将文件指针移到开头,准备读取 buf=malloc(filelen+1); //新建缓冲区,存储独处的数据 //将缓冲区的数据设置为0 for(i=0;i<filelen+1;i++) buf[i]=0; //读取文件 fread(buf,filelen,1,pf); //关闭文件 fclose(pf); //buf中即为要读出的数据 printf("%s\n",buf); //输出一下数据,你可以随便怎么用 free(buf); //最后记得要释放 } return1;}
『柒』 C读取文件
下面是一个完整的实例, 楼主参考:#include <stdio.h>#include <stdlib.h>int main(){ char *pchBuf = NULL; int nLen = 0; FILE *pF = fopen(__FILE__, "r"); //打开文件 fseek(pF, 0, SEEK_END); //文件指针移到文件尾 nLen = ftell(pF); //得到当前指针位置, 即是文件的长度 rewind(pF); //文件指针恢复到文件头位置 //动态申请空间, 为保存字符串结尾标志\0, 多申请一个字符的空间 pchBuf = (char*) malloc(sizeof(char)*nLen+1); if(!pchBuf) { perror("内存不够!\n"); exit(0); } //读取文件内容//读取的长度和源文件长度有可能有出入,这里自动调整 nLen nLen = fread(pchBuf, sizeof(char), nLen, pF); pchBuf[nLen] = '\0'; //添加字符串结尾标志 printf("%s\n", pchBuf); //把读取的内容输出到屏幕看看 fclose(pF); //关闭文件 free(pchBuf); //释放空间 return 0;}
『捌』 如何用C语言获取目录下的文件和目录列表
#include <stdio.h>#include <stdlib.h>void main() {system("DIR /D C:\\ /s /B > a.log");}C:\下的所有抄文件夹袭,子文件夹里所有文件,转向到 文本文件 a.log 里。格式:C:\aaa\bbb\ccc\…只要文件夹命令:dir /d c: /B /ad 只要文件夹命令,含子文件夹:dir /d c: /B /ad /s
『玖』 c怎么读取文件中的相应数据
首先在D盘里创建一个data的txt文件,然后将data文件放进c语言的数据中即可读取相应数据。C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。 C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机拦知凯器语言以及不需要任何运行环境简唤支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持猛迟着跨平台的特性。