当前位置:首页 » 编程语言 » c语言循环读取文件
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言循环读取文件

发布时间: 2022-02-16 12:56:30

‘壹’ 如何用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语言读取文件然后保存到数组中的流程是:

  1. 打开文件

  2. 根据文件格式循环读取数据

  3. 将数据存入数据

  4. 重复2-3,直到文件读取完毕

  5. 关闭文件

下面是示例代码:

#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语言循环读取文件内容

  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语言 关于循环读取多行文件的问题

这段程序应该是存在问题的,在第一个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个字符赋''),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。


5 参数:

*buf:字符型指针,指向用来存储所得数据的地址。

bufsize:整型数据,指明存储数据的大小。

*stream:文件结构体指针,将要读取的文件流。


6 返回值:

成功,则返回第一个参数buf;

在读字符时遇到end-of-file(文件结尾),则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则buf保持原来的内容,返回NULL;

如果发生读入错误,error指示器被设置,返回NULL,buf的值可能被改变。


7 示例代码:

逐行读取in.txt中的数据,并打印。每行不超过100个字符。

intmain()
{
FILE*fp;
charbuf[101];
fp=fopen("in.txt","r");//打开文件
while(fgets(buf,sizeof(buf),fp))//每次读取一行数据,直到读取失败。
{
printf("%s ",buf);//打印该行。
}
fclose(fp);//关闭文件。

return0;
}

‘玖’ C语言中,如何实现从文件中读取数据(大量的数据)后,在循环体中使用,每次传递3个值到数组。

假定文本文件,全部是 int 数据,空格 分隔。
FILE *fp;
int i =0, n;
fp = fopen("jsz.txt","r"); //打开文件,用来读。
if (!fp) { ......打开失败 的 处理 };
while(1){
fscanf(fp,"%d %d %d", &a[i], &a[i+1],&a[i+2]);
if ( feof(fp) ) break; // 文件终了判断
i=i+3; // 下3个的 起始元素下标
}
fclose(fp); // 关闭文件

‘拾’ C语言中怎么实现循环读取文件.文件名为A_in1.txt,A_in2.txt,A_in3.txt,A_in4.txt

#include<stdio.h>
#include<io.h>
intmain()
{
longhandle;
inti=0,j=0;
struct_finddata_tfileinfo;

handle=_findfirst("C:\*",&fileinfo);

do{
puts(fileinfo.name);
}while(!_findnext(handle,&fileinfo));

_findclose(handle);
return(0);
}