C语言读取目录下的指定类型的文件,把所有文件的内容写入到一个txt文件中

时间:2022-05-05 19:56:43
例如在目录下面有文件:1.txt 2.txt 3.txt
1.txt内容为:
-----------------------
#BGP:
#white
#SONG    ML101
#001 short00 0 0 250
#SFX    SP00_C001_S1
------------------------

2.txt内容为:
------------------------
#002 short01 0 0 250
#003 short02 0 0 250
#004 short03 0 0 250
------------------------

3.txt内容为:
------------------------
#007 short06 0 0 250
#SFX    SP00_C003_S1
#END
------------------------

需要将这个目录下面这些txt文件的内容读取到一个txt文件中。注意考虑多个txt文件的情况
希望懂的朋友解答下,非常感谢!!!



6 个解决方案

#1


1、先用findfirst/findnext搜索所有txt文件;
2、再用fopen/fclose/fread/fwrite逐个以二进制的方式读取txt文件的全部内容,依次写入新文件中。

引用 楼主 tanqiyingk 的回复:
例如在目录下面有文件:1.txt 2.txt 3.txt
1.txt内容为:
-----------------------
#BGP:
#white
#SONG    ML101
#001 short00 0 0 250
#SFX    SP00_C001_S1
------------------------

2.txt内容为:
------------------------
#002 short01 0 0 250
#003 short02 0 0 250
#004 short03 0 0 250
------------------------

3.txt内容为:
------------------------
#007 short06 0 0 250
#SFX    SP00_C003_S1
#END
------------------------

需要将这个目录下面这些txt文件的内容读取到一个txt文件中。注意考虑多个txt文件的情况
希望懂的朋友解答下,非常感谢!!!

#2


system("cmd /c copy d:\\mydir\\*.txt d:\\all.txt");//将d:\mydir\*.txt的内容写入到d:\all.txt中。

#3


c语言的话!
就逐个读文件,写到新的同一个文件中就好了!
基本的文件操作

//google下这几个api的用法,自己动手写写
fopen(); 
fread();
fwrite();
fclose();

#4


type *.txt >log.log

#5


引用 2 楼 zhao4zhong1 的回复:
system("cmd /c copy d:\\mydir\\*.txt d:\\all.txt");//将d:\mydir\*.txt的内容写入到d:\all.txt中。
赵老师!谢谢你,这个问题解决了,还有一个问题就是我用
fgets()读取每一行的数据。
用strstr()识别这些行:
#SFX 
#SONG
那么怎么识别出
#001
#002
#003
....
....
这些‘#’+数字(有可能是3位数,有可能是四位数)的行呢。

#6


FILE *f;
char ln[80];
int n;
while (1) {
 if (NULL==fgets(ln,80,f)) break;
 if (1==sscanf(ln,"#%d",&n)) {
   //ln是以#数字开头
 }
}

#1


1、先用findfirst/findnext搜索所有txt文件;
2、再用fopen/fclose/fread/fwrite逐个以二进制的方式读取txt文件的全部内容,依次写入新文件中。

引用 楼主 tanqiyingk 的回复:
例如在目录下面有文件:1.txt 2.txt 3.txt
1.txt内容为:
-----------------------
#BGP:
#white
#SONG    ML101
#001 short00 0 0 250
#SFX    SP00_C001_S1
------------------------

2.txt内容为:
------------------------
#002 short01 0 0 250
#003 short02 0 0 250
#004 short03 0 0 250
------------------------

3.txt内容为:
------------------------
#007 short06 0 0 250
#SFX    SP00_C003_S1
#END
------------------------

需要将这个目录下面这些txt文件的内容读取到一个txt文件中。注意考虑多个txt文件的情况
希望懂的朋友解答下,非常感谢!!!

#2


system("cmd /c copy d:\\mydir\\*.txt d:\\all.txt");//将d:\mydir\*.txt的内容写入到d:\all.txt中。

#3


c语言的话!
就逐个读文件,写到新的同一个文件中就好了!
基本的文件操作

//google下这几个api的用法,自己动手写写
fopen(); 
fread();
fwrite();
fclose();

#4


type *.txt >log.log

#5


引用 2 楼 zhao4zhong1 的回复:
system("cmd /c copy d:\\mydir\\*.txt d:\\all.txt");//将d:\mydir\*.txt的内容写入到d:\all.txt中。
赵老师!谢谢你,这个问题解决了,还有一个问题就是我用
fgets()读取每一行的数据。
用strstr()识别这些行:
#SFX 
#SONG
那么怎么识别出
#001
#002
#003
....
....
这些‘#’+数字(有可能是3位数,有可能是四位数)的行呢。

#6


FILE *f;
char ln[80];
int n;
while (1) {
 if (NULL==fgets(ln,80,f)) break;
 if (1==sscanf(ln,"#%d",&n)) {
   //ln是以#数字开头
 }
}