c语言读取文件夹下的所有文件(c语言读取文件所有内容)
求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;
}