‘壹’ 如何用c语言对多个文件数据循环处理
#include<stdio.h>
int main()
{
int data[100];
int i=1;
FILE *fp=NULL;
char filename[10];
for(int i=1;i<=100;i++)
{
memset(filename,0,sizeof(filename));
itoa(i,filename,10);//将整型i转成对应的字符串形式
strcat(filename,".txt");//这样filename就是当前的文件了
if(fp=fopen(filename,"r"))==NULL)
return -1;
//读取你想要的内容到data,可以用fscanf等函数
fclose(fp);
}
fp=fopen("out.txt","w");
if(fp==NULL)
return -1;
//写到out.txt中,用fprintf函数即可
fclose(fp);
return 0;
}
‘贰’ c语言循环中fread如何读取文件
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intnumber[400],i;
FILE*fp;
fp=fopen("number.dat","r");
for(i=0;i<400;i+=100)
fread(number+i,sizeof(int),100,fp);
}
‘叁’ c语言读取文件然后保存到数组中
c语言读取文件然后保存到数组中的流程是:
打开文件
根据文件格式循环读取数据
将数据存入数据
重复2-3,直到文件读取完毕
关闭文件
下面是示例代码:
#include<stdio.h>
intmain()
{
ints[5][8];
intnum[]={0,6,5,6};
inti,j;
FILE*fp;
if((fp=fopen("D:\test.txt","r"))==NULL)
{puts("Notest.txt");return0;}
for(i=1;i<=3;i++)
{
for(j=1;j<=num[i];j++)
fscanf(fp,"%d",&s[i][j]);
}
for(i=1;i<=3;i++)
{
for(j=1;j<=num[i];j++)
{
if(j==1)
printf("%c",s[i][j]);
else
printf("%d",s[i][j]);
}
puts("");
}
fclose(fp);
return0;
}
‘肆’ C语言fgets如何循环读取整个文本文件的内容
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//函数返回fname指定文件的全部内容,如果打不开文件,则返回NULL,并显示打开文件错误
char *getfileall(char *fname){
FILE *fp;
char *str;
char txt[1000];
int filesize;
if ((fp=fopen(fname,"r"))==NULL){
printf("打开文件%s错误\n",fname);
return NULL;
}
fseek(fp,0,SEEK_END);
filesize = ftell(fp);
str=(char *)malloc(filesize);
str[0]=0;
rewind(fp);
while((fgets(txt,1000,fp))!=NULL){
strcat(str,txt);
}
fclose(fp);
return str;
}
int main(){
char *p;
char *fname="D:\\temp.txt";
p=getfileall(fname);
if (p!=NULL) puts(p);
}
‘伍’ 如何用C语言循环读取文件内容
循环读取一个文件的内容。
这样做没有任何意义,不如把读取的内容保持在变量当中,节省空间时间。如果非要反复读取的话可以使用rewind函数把文件指针重置。
函数名: rewind()
功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头
注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。rewind函数作用等同于 (void)fseek(stream, 0L, SEEK_SET);循环读取多个文件的内容。
把多个文件名存在一个字符串数组当中。使用循环语句反复打开-读取-关闭即可。
例如:
char*s[3]={"文件一","文件二","文件三"};
for(i=0;i<3;i++){
f=fopen(s[i]);//打开第i个文件
//读取数据
fclose(f);//关闭文件
}
‘陆’ C语言 关于循环读取多行文件的问题
这段程序应该是存在问题的,在第一个while循环里你打开了文件B.txt,退出循环前已经关闭,即在第二个while循环的时候,B.txt文件是关闭的,所以while ( fscanf(fpB,"%s %d %d %d\n",BS0,&BS1,&BS2,&BS3)!=EOF )这句代码会出错,可以这样
fpB = fopen("B.txt","r");
while ( fscanf(fpB,"%s %d %d %d\n",BS0,&BS1,&BS2,&BS3)!=EOF )
{}
这其实是重新打开了文件B.txt,自然数据指针是在文件首的
‘柒’ 关于C语言中文本文件的逐行读取的实现
若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
C语言中文本文件的逐行读取的实现的代码如下:
#include<stdio.h>
main()
{
FILE * fp;
fp=fopen(“noexist”,”a+”);
if(fp= =NULL) return;
fclose(fp);
}
(7)c语言循环读取文件扩展阅读
1、如果输入文本每行中没有空格,则line在输入文本中按换行符分隔符循环取值。
2、如果输入文本中包括空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制表符或换行符特环取值。
3、可以通过把IFS设置为换行符来达到逐行读取的功能。
‘捌’ c语言逐行读取文件
可以使用fgets函数。
1 函数名:
fgets
2 声明:
char *fgets(char *buf, int bufsize, FILE *stream);
3 头文件:
stdio.h
4 功能:
从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'