c语言读取文件夹下的所有文件(c语言读取文件所有内容)

http://www.itjxue.com  2023-03-29 06:39  来源:未知  点击次数: 

求c语言代码 读入多个文件夹内的所有txt文件

首先要知道文件夹内所有txt文件的名称,然后使用fopen函数分别打开哥哥txt文件,分别读入即可。

1.fopen的函数原型:FILE * fopen(const char * path,const char * mode);

? fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:

r 以只读方式打开文件,该文件必须存在。

r+ 以可读写方式打开文件,该文件必须存在。

rb+ 读写打开一个二进制文件,允许读数据。

rw+ 读写打开一个文本文件,允许读和写。

w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)

wb 只写打开或新建一个二进制文件;只允许写数据。

wb+ 读写打开或建立一个二进制文件,允许读和写。

wt+ 读写打开或着建立一个文本文件;允许读写。

at+ 读写打开一个文本文件,允许读或在文本末追加数据。

ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。

??? 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。

2.例程:

#includestdio.h

#define?F_PATH?"d:\\myfile\\file.txt"

#define?F_PATH1?"d:\\myfile\\file1.txt"

char?c;

int?main(){

????FILE*fp=NULL;//需要注意

????fp=fopen(F_PATH,"r");????//打开第一个txt文件

????if(NULL==fp)?return?-1;//要返回错误代码

????while(fscanf(fp,"%c",c)!=EOF)?printf("%c",c);?//从文本中读入并在控制台打印出来

????fclose(fp);

????fp=NULL;//需要指向空,否则会指向原打开文件地址

????fp=NULL;//需要注意

????fp=fopen(F_PATH1,"r");????//打开第二个txt文件

????if(NULL==fp)?return?-1;//要返回错误代码

????while(fscanf(fp,"%c",c)!=EOF)?printf("%c",c);?//从文本中读入并在控制台打印出来

????fclose(fp);

????fp=NULL;//需要指向空,否则会指向原打开文件地址???

????return?0;

}

如何用C语言获取目录下的文件和目录列表?

1、可以利用getenv函数来实现。

在Linux系统中,home目录的定义是通过系统环境变量中的HOME变量值来确定的,在shell下可以通过

echo $HOME来查看。

而在C语言中,库函数getenv可以用作获取环境变量值。该函数位于stdlib.h, 原型为

char *getenv(char *name);

功能为获取名字为name的环境变量字符串。

所以,下面代码就可以获取到home目录名了:

2、例程:

char *home;

home = getenv("HOME");

printf("the home path is %s\n", home);

关于读取同一文件夹下的文档,C语言

#includestdio.h

#includestdlib.h

#includedirent.h

#includeunistd.h

#includesys/stat.h

#includestring.h

int main()

{

char *dir="d:\\";

DIR *dp;

struct dirent *entry;

struct stat statbuf;

char str[255][255];

int i=0;

FILE *fp;

if((dp=opendir(dir))==NULL)

{

fprintf(stderr,"cannot open %s",dir);

exit(1);

}

chdir(dir);

while((entry=readdir(dp))!=NULLi255)

{

stat(entry-d_name,statbuf);

if(!S_ISREG(statbuf.st_mode))

continue;

fp=fopen(entry-d_name,"r");

if(fp==NULL)

return 1;

fscanf(fp,"%s",str[i++]);

fclose(fp);

}

while(i=0)

{

printf("%s\n",str[i--]);

}

return 0;

}

我不是在linux下,WIN下GCC可用,调试成功,结果正确。

c 如何读文件

在C语言开发中,想要读入一个文件。C语言可以使用FILE文件操作进行读取。下面小白就来简单说说C语言如何读取一个txt文件。

C语言读取步骤一:首先需要以写入的方式打开一个空白的texr.txt文件。FILE*fpWrite=fopen("text.txtquot;"w");

C语言读取步骤二:打开以后,继续进行循环写入0到9的操作。代码。

C语言读取步骤三:完成文件写入操作后,一定要记得对打开文件进行关闭操作。

C语言读取步骤四:接下来对文件中写入数据的读取。首先需要创建一个用于保存读取数据的数组。

C语言读取步骤五:创建好数组以后,以读取的方式对text.txt文件进行打开操作。

C语言读取步骤六:最后,将读取到的数据循环保存的创建好的数组中,并且将其显示到控制台中。

C语言中,如何读取同一文件夹下的所有txt文件?

#include stdio.h

#includeio.h

int main(int argc, char *argv[])

{

struct _finddata_t fa;

long fHandle;

if( (fHandle=_findfirst( "*.txt", fa ))==-1L )//这里可以改成需要的目录

{

printf( "当前目录下没有txt文件\n");

return 0;

}

else

do

{

printf( "找到文件:%s\n", fa.name );

}while( _findnext(fHandle,fa)==0 );

_findclose( fHandle );

return 0;

}

(责任编辑:IT教学网)

更多

推荐3DMAX教程文章