#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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)