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

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

#include <stdio.h>

#include<io.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

}

用C语言从txt文件中读取数据,可以使用C标准库文件自带的文件接口函数进行 *** 作。

一、打开文件:

FILE *fopen(const char *filename, const char *mode)

因为txt文件为文本文件, 所以打开时选择的mode应为"r"或者"rt"。

二、读取文件:

读取文件应根据文件内容的格式,以及程序要求,选择读取链手文件的函数。可以使用一种,也可以几种混用。 常用的文件读取函数如下:

1、fgetc, 从文件中读取一个字节并返回。 适用于逐个字节读取。

2、 fgets, 从文件中读取一行盯仔。适用于整行读取。

3、fscanf, 格式棚则嫌化读取文件, 在已经清楚文件存储格式下,可以直接用fscanf把文件数据读取到对应类型的变量中。

4、fread, 整块读取文件, 对于txt文件比较少用。

三、关闭文件:

读取结束后,应调用fclose函数关闭文件。

//自己写的代码,绝对可用,望采纳

#include <string> // std::string

#include <vector> // std::vector

#include <io.h>// _finddata_t

#include <iostream>// std::cout

//dirpath为你要查找的文件件绝对路径,如txt在D盘文件扒歼夹名为1的情况下,即输入:

//std::string = "D:\\1\\"

//std::vector<std::string>filepaths//为所有高瞎txt的文件名称,这是输出参数

//std::string regular_expression_input = "*.txt"

//你写一个主函数即可使用。

int get_filenames_under_dir_based_on_regular_expression(const std::string&dirpath, std::vector<std::string>&filepaths, const std::string&regular_expression_input)

{

struct _finddata_t filefind

std::string curr = dirpath + regular_expression_input

int done=0,i,handle

int N = 0

std::string tmp_string

if( (handle = _findfirst(curr.c_str(),&filefind)) == -1 )

{

return N

}

else

{

if( strcmp(filefind.name,"..") &&strcmp(filefind.name,"."戚此空) )

{

filepaths.push_back(filefind.name)

N++

}

}

while( !(done = _findnext(handle,&filefind)) )

{

if((!strcmp(filefind.name,"..")) || (!strcmp(filefind.name,".")))

{

continue

}

if( !(filefind.attrib == _A_SUBDIR) )

{

filepaths.push_back(filefind.name)

N++

}

}

_findclose(handle)

return N

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12195431.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存