请教各位大神Linux c++,我想遍历读取当前目录下所有的.txt文件,这个该怎么实现?

请教各位大神Linux c++,我想遍历读取当前目录下所有的.txt文件,这个该怎么实现?

3个回答

使用目录迭代器DirIterator,在迭代器用文件过滤器filter查找

首先遍历文件目录下所有文件,筛选出所有为txt的文件,然后依次读取。

readdir(3)函数返回的结构体struct dirent中的d_name[256]
可以获取文件夹下文件的名字

然后直接用open打开文件读取就行了

与文件流输入输出有关

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python读取当前目录下的所有的excel文件
1,使用dos中的dir命令搜索 查看dir用法 dir /? 搜索.xlsx文件,选项/b是除去多余的信息,/s递归搜索,包含当前目录的子目录。 dir *.xlsx /b /s 结果输出到文件,供其他程序调用 dir *.xlsx /b /s >filelist.txt 2, 用python自己的函数os.walk() 列出当前文件夹及其子文件夹中的所有文件 在...
请教大神 这个事务该怎么实现
我现在的代码如下:rn[code=csharp]rn public static int ExecuteAsTransaction(string CommandText, List ParamsList)rn rn //...省略部分代码 已经获取连接Sconnrn SqlCommand cmd = new SqlCommand();rn cmd.Connection = Sconn;rn SqlTransaction transaction = Sconn.BeginTransaction(); //开始事务 cmd.Transaction = transaction;rn bool flag = false;rn tryrn rn foreach (Parameter[] Params in ParamsList)rn rn AddParameter(ref cmd, Params); //增加参数rn cmd.CommandText = CommandText;rn cmd.ExecuteNonQuery();rn rn transaction.Commit();rn flag = true;rn rn catch (Exception ex1)rn rn transaction.Rollback();rn flag = false;rn throw new Exception(ex1.Message);rn rn finallyrn rn // rn rn return (flag ? 0 : -2);rn rn[/code]rnrn其中增加参数的函数如下:rn[code=csharp]rnprivate static void AddParameter(ref SqlCommand Cmd, params Parameter[] Params)rn rn //如果SqlCommand对象和参数列表不为空,则进行添加参数操作rn if ((Params != null) && (Cmd != null))rn rn for (int i = 0; i < Params.Length; i++)rn rn if (Params[i] != null) //判断参数是否为空rn rn SqlParameter parameter = new SqlParameter();rn parameter.ParameterName = Params[i].Name.StartsWith("@") ? Params[i].Name : ("@" + Params[i].Name); //哪果参数没有以"@"开头,则手动添加上"@"符号rn parameter.SqlDbType = DbType2SqlDbType(Params[i].Type); //设置参数类型rn if (Params[i].Size > 0)rn rn parameter.Size = Params[i].Size; //设置参数大小rn rn parameter.Direction = Params[i].Direction; //设置参数方向rn //如果参数方向为"输入" 或者 "输入输出"并且参数不为空,则为参数的 Value属性赋值rn if (((Params[i].Direction == ParameterDirection.InputOutput) || (Params[i].Direction == ParameterDirection.Input)) && (Params[i].Value != null))rn rn parameter.Value = Params[i].Value;rn rn Cmd.Parameters.Add(parameter); //将参数添加到SqlCommand命令中rn rn rn rn [/code]rn这是我网上下载的代码 然后改的 我想实现一次插入多条记录,这个该怎么修改,求大神指点,感激不尽...
如何遍历读取某个目录下所有的TXT文件,求助
需要将一个目录下所有的TXT文本全部读取,有什么比较好的方法呢,求助
编译当前目录下所有的C文件
src = ${wildcard *.c}   #获取当前文件夹里所有的.c文件 objs = ${patsubst %.c,%,$(src)}  #用伪目标,实现 all:$(objs) %:%.c    $(CC) $(CFLAGS) -o $@ $^ clean:    $(RM) $(objs) .*.sw?
我想屏蔽所有的键盘,该怎样实现那?
如果用钩子的话,恐怕还要另外调用DLL,所以我想直接使用函数或者其它的方法,屏蔽所有的按键。rn该如何实现那,谢谢了。
解压当前目录下所有的 tar.gz
在tar.gz文件所在的目录下建立run.sh 内容为: for wav in ./*.tar.gz; do echo &amp;quot;Extracting wav from $wav&amp;quot; tar -zxf $wav &amp;amp;amp;&amp;amp;amp; rm $wav done 添加执行权限 chmod +x run.sh 执行 sh run.sh...
两个简单的makefile的实现,编译当前目录下所有的.c文件
在网上找到的一个非常好的makefile文件,可以编译本文件夹下的所有.c文件,之需要定义输出文件名,不需要指定main文件的文件名,非常的好,非常的方便,注释也很详细,收藏并分享给需要的人。 ##################################################################### ## file : test makefile f
遍历所有的session
为了防止发生同一时间重复登陆的现象.我想在每次用户登陆时,遍历所有的session.通过与每个session的值做比较,得出是否重复.请问怎样遍历所有的session?(请注意我的意思不是遍历session所有的值,而是遍历所有的session)rn我也想过在数据库里用一个字段标识,但发生异常退出时,数据库就不能及时更新了.rn请指教啊,我想了几天啦还有什么更好的方法啊?
各位这个读取 TXT文件的但是读取
[code=C/C++]// SearchEx.h: interface for the CSearchEx class.rn//rn//////////////////////////////////////////////////////////////////////rnrn#if !defined(AFX_SEARCHEX_H__80A47D32_9930_40AF_AE10_6F07B7E2EADB__INCLUDED_)rn#define AFX_SEARCHEX_H__80A47D32_9930_40AF_AE10_6F07B7E2EADB__INCLUDED_rn#include rn#include rn#include "FormViewEx.h"rnusing namespace std;rnrn#if _MSC_VER > 1000rn#pragma oncern#endif // _MSC_VER > 1000rnrnrnrn#pragma warning(disable:4786)rnrntypedef struct _WORDARRAYrnrn string m_tTime;rn string m_tint;rn string m_tWord;rnWORDARRAY,*PWORDARRAY;rnrntypedef multimap WORDMap;rntypedef pair Word_Pair;rntypedef multimap::iterator GWrdIter;rntypedef vector::iterator GVLT;rnenumrnrn m_enumBeg = 0,rn m_enumCur,rn m_enumEndrn;rnclass CSearchEx rnrnpublic:rn BOOL TimeStrToLong(string &szstring,long &nValue,int nIndex=0);rn static DWORD WINAPI ThreadProc(LPVOID lpParameter );rn BOOL OpenFileWriteLine(char *szChar,CString szFilePath="",int szFileFlag=m_enumEnd);rn void OpenReadFile(int szSize=100);rn ifstream m_ifstream;rn fstream m_fstream;rn WORDMap m_wordMap;rn BOOL m_IsLoop;rn CFormViewEx *m_FrmViewEx;rn CWnd *m_pwnd;rn vector m_Interval;rn CSearchEx();rn virtual ~CSearchEx();rn;rnrn#endif // !defined(AFX_SEARCHEX_H__80A47D32_9930_40AF_AE10_6F07B7E2EADB__INCLUDED_)[/code]rnrn[code=C/C++]// SearchEx.cpp: implementation of the CSearchEx class.rn//rn//////////////////////////////////////////////////////////////////////rnrn#include "stdafx.h"rn#include "client.h"rn#include "SearchEx.h"rnrnrn//////////////////////////////////////////////////////////////////////rn// Construction/Destructionrn//////////////////////////////////////////////////////////////////////rnrnCSearchEx::CSearchEx()rnrnrnm_IsLoop=TRUE;rnrnrnCSearchEx::~CSearchEx()rnrn m_IsLoop=FALSE;rnm_ifstream.close();rnm_fstream.close();rnrnrnrnrnrnvoid CSearchEx::OpenReadFile(int szSize)rnrn CFileDialog m_tDlg(TRUE,"*.txt","*.txt");rn m_tDlg.DoModal();rn CString m_tPath;rn m_tPath=m_tDlg.GetPathName();rn m_ifstream.open(m_tPath.LockBuffer());rn string m_tNull;rn int m_tLastTime=0;rn long m_tInterval=0;rn long m_tLoop=0;rn long m_tNo=0;rn if(m_ifstream)rn rn while (!m_ifstream.eof())rn rn PWORDARRAY m_tpWord=new WORDARRAY;rn getline(m_ifstream,m_tpWord->m_tint);rn rn getline(m_ifstream,m_tpWord->m_tTime);rn if (m_tpWord->m_tTime[2]==':'&&m_tpWord->m_tTime[5]==':'&&m_tpWord->m_tTime.size()==29)rn rn rn if (TimeStrToLong(m_tpWord->m_tTime,m_tLoop,0))rn rn if (m_tInterval!=0||m_tInterval==-1) //考虑第一个 if m_tInterval=-1 m_tLoop=10rn rn if (m_tInterval==-1)++m_tInterval;rn long m_tsleep=m_tLoop-m_tInterval;rn m_Interval.push_back(m_tsleep); rn m_tInterval=m_tLoop;rn rn elseif (m_tLoop==0)m_tInterval=-1;elsem_tInterval=m_tLoop;rn rn rn m_tLoop=0;rn getline(m_ifstream,m_tpWord->m_tWord);rn rn getline(m_ifstream,m_tNull);rn m_wordMap.insert(make_pair(m_tNo++,m_tpWord));rn rn rn m_tPath.UnlockBuffer();rnrn CreateThread(NULL,NULL,ThreadProc,this,NULL,NULL);rnrnDWORD CSearchEx::ThreadProc(LPVOID lpParameter)rnrn CSearchEx *m_tpSearch=(CSearchEx *)lpParameter;rn GVLT m_tVlt;rn GWrdIter m_tWrd;rn m_tVlt=m_tpSearch->m_Interval.begin();rn m_tWrd=m_tpSearch->m_wordMap.begin();rn for (;m_tVlt!=m_tpSearch->m_Interval.end()rn &&m_tWrd!=m_tpSearch->m_wordMap.end()rn &&m_tpSearch->m_IsLoop;rn m_tVlt++,rn m_tWrd++)rn rn PWORDARRAY m_tWORD=(PWORDARRAY)m_tWrd->second;rn m_tpSearch->m_FrmViewEx->SetWord(CString(m_tWORD->m_tWord.c_str()));rn m_tpSearch->m_FrmViewEx->m_wnd.PostMessage(WM_PAINT);rn long m_tSleep=(long)*m_tVlt;rn if (m_tSleep>0)rn rn Sleep(m_tSleep);rn rn rn rn return TRUE;rnrnrn//00:00:16,360 --> 00:00:17,710rnBOOL CSearchEx::TimeStrToLong(string &szstring,long &nValue,int nIndex)rnrn if (szstring[nIndex+2]==':'&&szstring[nIndex+5]==':'&&(nIndex>=0))rn rn nValue=(szstring[nIndex]-0x30)*10*60*60 // 十位的小时rn +(szstring[nIndex+1]-0x30)*60*60 // 个位的小时rn +(szstring[nIndex+3]-0x30)*10*60 //十位的分钟rn +(szstring[nIndex+4]-0x30)*60 //个位的分钟rn +(szstring[nIndex+6]-0x30)*10 //十位的秒rn +(szstring[nIndex+7]-0x30); //个位的秒rn return TRUE;rn rn rnreturn FALSE;rn[/code]rnrnTXT格式是这样的 我一行行读取rnrn[code=C/C++]rn1rn00:00:00,650 --> 00:00:07,260rnrnrn2rn00:00:07,260 --> 00:00:14,090rnrnrn3rn00:00:14,091 --> 00:00:14,690rn恶棍 拿出你的武器来抵挡我吧rnrn4rn00:00:16,220 --> 00:00:16,160rn你让人流泪的时代已经结束了rnrn5rn00:00:17,360 --> 00:00:17,710rn老爸 我把洋葱搞定了rnrn6rn00:00:18,760 --> 00:00:19,500rn我来搞定白菜rnrn7rn00:00:20,280 --> 00:00:21,830rn萝卜归我弄[/code]rnrn 我还要读取 6和7的时间间隔 每行的时间间隔 比如6 00:00:18 7 00:00:20 计算出时间间隔 但是rnrn好象 multimap把数据存储了 但是 但是遍历不出来rnrnrnThreadProc(LPVOID lpParameter)rn 这个函数里的rnrn m_tVlt=m_tpSearch->m_Interval.begin();rn m_tWrd=m_tpSearch->m_wordMap.begin();rnrnfor循环根本进不去 我怀疑会不会是 vector不允许存储 long的临时变量rn 这里 无法获取 rn
遍历所有的PCIE
在DOS的BC31环境下,首先开启DOS的保护模式,然后读取以0xF8000000为PCIE基址的所有PCIE,列出它们的vendorID,DeviceID,Speed,Width,Type。
如何遍历一个文件的里面的所有的文件的,我想拿到所有的文件的名字
如何遍历一个文件的里面的所有的文件的,我想拿到所有的文件的名字
怎么遍历一个目录下所有的文件?
多谢!
怎么遍历TXMLDocument所有的节点!
怎么遍历TXMLDocument所有的节点! ??
我希望遍历所有的客户ID,然后遍历到每一个ID,再通过这个ID遍历所有的客户名
我本来是想通过游标1 遍历所有的客户ID,然后在游标中取出的每一个ID,我再通过这个ID遍历另外一张表中所有的客户名,本来我是想通过在游标中嵌套一个游标的,但是游标中却无法嵌套游标(问过好多人了),所以我想问一下大家我该用什么方法实现这个过程呢?
【实现】批处理当前目录下的所有txt文件
目的: 最近跑实验生成了很多txt的文件,要提取txt文件中的指定内容,然后就写了个算法定向读取txt中的信息并想把这些信息存储在csv文件中,一个目录下几十个txt,如果这样写 @echo off txtToCsv.exe 1.txt result.csv txtToCsv.exe 2.txt result.csv ...//这样写是不是有点low... txtToCsv.exe 1000....
java实现遍历磁盘所有的文件
java对某一个磁盘进行递归遍历 import java.io.File; import java.util.ArrayList; import java.util.List; /** * 单线程方式遍历所有文件 * @author Administrator * */ public class Test { private void li...
读取网页所有的
读取网页所有的
遍历指定文件夹内所有的TXT文件(包括子文件夹)
会用批处理搞,VB.NET要用哪个函数rnrnrn
我想实现这个功能该怎么做?
在空页面上加个 button1的button空间rnrn后台代码:rn[code=C#]rn protected void Button1_Click(object sender, EventArgs e)rn rn int i = 1;rn Button1.Text = i.ToString();rn i = i + 1;rn rn[/code]rnrn这个代码显然无法实现每点一下button,其TEXT值都+1;rnrn我本来想用static做的,但是据说 Asp.net中所有的用户将使用同一个static变量rn后来用viewstate也不能实现这个功能。rnsession感觉要占用不少资源。。rn那么到底该怎么做?rnrn
各位大哥请教该如何显示表里所有的内容
BOOL Sever(char * LpText,struct User *login,char *p)rnrn SQLINTEGER PassLength; rn SQLHANDLE hStmt; rn SQLRETURN RC; rn char * Temp;rn char Attribute[50];rn char *SQLStatement="select Name from Menu where CMenuID=?";rnrn LpText+=6;rn Temp=LpText;rn while(*Temp)rn rn if(*Temp=='#')rn *Temp='\0';rn Temp++;rn rn strcpy(login->Subject,LpText);rn LpText+=(strlen(LpText)+1);rn strcpy(login->Name,LpText);rn LpText+=(strlen(LpText)+1);rn strcpy(login->PassWord,LpText);rn rnrn RC=SQLAllocHandle(SQL_HANDLE_STMT, hConn, &hStmt);rn if (RC==SQL_SUCCESS || RC==SQL_SUCCESS_WITH_INFO)rn rn SQLBindParameter(hStmt,1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,50,0,login->Subject,strlen(login->Subject),NULL);rnrn SQLPrepare(hStmt,SQLStatement,strlen(SQLStatement));rn RC=SQLExecute(hStmt);rn rn if (RC==SQL_SUCCESS || RC==SQL_SUCCESS_WITH_INFO)rn rn SQLBindCol(hStmt,1,SQL_C_CHAR,Attribute,strlen(Attribute),&PassLength);rn if(SQLFetch(hStmt)==SQL_NO_DATA)rn rn fprintf(stderr, "没有数据.\n");rn SQLFreeHandle(SQL_HANDLE_STMT, hStmt);rn return 0;rn rn fprintf(stderr, "有数据\n");rn当杳询到有多条记录的时候该怎么读出来呢????????rn当杳询到有多条记录的时候该怎么读出来呢????????rn请各位强人指教~谢谢rnrn SQLFreeHandle(SQL_HANDLE_STMT, hStmt);rn strcpy(p,Attribute);rn return 1;rn rn elsern rn SQLFreeHandle(SQL_HANDLE_STMT, hStmt);rn fprintf(stderr,"\nSQL语句执行失败\n");rn return 0;rn rn rn elsern rn fprintf(stderr,"\n语句句柄获取失败\n");rn return 0;rn rn
请教各位:这个网络该怎么规划?
请教各位:这个网络该怎么规划?rn 朋友开了家公司,叫偶帮忙帮他规划他们公司的办公网络。大概有12台工作站。一个服务器。他们是贸易公司,一些业务上的数据要备份的。所以也打算加上磁带机。备份下他们的业务数据。偶对网络没有太多的认识,现在有以下的疑问。希望能得到大家的帮助。rn1>12台工作站,选用多大的带宽好?rn2》用什么类型的防火墙好?rn3》如果规划一个邮件系统的话(可发到外部的),要不要购买一个域名?
请教各位大佬这个该怎么写
[img=https://img-bbs.csdn.net/upload/201805/19/1526717694_8250.png][/img]rn用C或C++该怎么写
请教各位,这个触发器该怎么写?
创建一个名为UpdStartDt 的触发器,它将保证向Customer表中添加记录或修改start_dt的值时,rn所输入的start_dt必须是在 Cruise_book表中对应cruise_cd存在的start_dt。
解压当前目录下所有的tar.gz文件
解压当前目录下所有的tar.gz文件    ls *.tar.gz | xargs -n1 tar xzvf
获取当前目录下所有的文件和目录!
信息包含:rn文件名;rn扩展名;rn文件长度;rn最后修改时间;rn如何实现??
Shell脚本:判断当前目录下所有的文件类型
问题描述: 如果是目录显示目录名,如果是文件查看文件内容,如果不是,显示提示信息 shell脚本如下: 执行方式及结果:
如何遍历所有的CHECKBOX?
想遍历页面上所有的CHECKBOX,是这样写的:rnforeach (Control ctrl in this.Control)rnrn if(ctrl is System.Web.UI.HtmlControls.HtmlInputCheckBox) rn ..rnrnrn但是发现好像不管用,到底该如何做呢?
Linux系统下删除当前目录下所有的link文件
  问题的背景: 写自动化测试用例,客户端与存储提供的iSCSI卷建立连接,之后又logout,虽然client端dm设备已经不在了,但是 /dev/mapper/目录下还有可能残存失效的link文件,需要清理这些失效的link文件 解决方法: 1. 也就是一条命令,重点是命令中参数的详解 先查看失效的链接: for f in $(find $1 -type l); do [ ! -...
二叉树的所有的遍历算法
声明 这些代码都不是直接搬过去马上能用的代码,只是学习思路,代码风格的。只给出了函数主体,并不是一个完整的c/c++文件。 递归前序遍历void preOrder(Tree T) { if(T){ visit(T); preOrder(T->lchild); preOrder(T->rchild); } }递归中序
遍历页面所有的label
页面有无数个label.位于不同的空间之类.rn现需要一函数.rn遍历所有的label.rn并赋值为空.rn怎么写?rn在线等.rn2005.rnc#.
foreach遍历所有的textbox
foreach (Control con in this.Page.Controls)rn rn if (con is TextBox)rn rn TextBox tb = new TextBox();rn tb.Text = "asdfasdfas";rn rn rn我要遍历页面中所有的textboxrn为什么我这里到if就进不去啊?
MFC遍历所有的文档
遍历所有的文档void CTestDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 CString myDataPath,pathStr,datafile; GetDlgItemText(IDC_EDIT1,pathStr); myDataPath=pathStr+"\\*.*"; CFileFind
jquery遍历所有的radio
&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&amp;gt; &amp;lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&amp;gt; &amp;lt;head&amp;gt; &amp;lt;met
大神 这个怎么实现?
[img=https://img-bbs.csdn.net/upload/201408/22/1408697995_844073.png][/img]rn一个用户关系的控件 鼠标未在其上悬停时没有右边的向下箭头 悬停在其上 小箭头出现 点击小箭头 出现下拉菜单
删除当前目录下所有的.o 文件。
<br />del /s *.o<br /> <br />del /?  显示del帮助。
我想创建个TXT文件,我想改写这个TXT文件,我想保存为其他后缀的文件
如题,先创建一个TXT文件。rn再用代码,给这个文件输入内容rn。最后保存为别的后缀名?rn这该怎么写?用什么控件?rn希望详细点,本人某种意义上C#文件方面的小白
初学C 请教各位大神!
[img=https://img-bbs.csdn.net/upload/201803/19/1521472118_733654.jpg][/img][img=https://img-bbs.csdn.net/upload/201803/19/1521472133_292288.png][/img]rn不知道错误在哪里
请教各位大神,想学点嵌入式开发,该如何入门和精通?
说明一下:rn本人专业是计算机,偏软件。无论是数据库还是网络,都比较精通。rn现在各种原因想学一下嵌入式的开发。rn不过印象中似乎要精通硬件。rnrn所以想请教一下,我如果要学嵌入式开发,我怎么入手?rn需要什么开发环境?如何开发?rn或者推荐几本入门的书籍?rnrnrn非常感激。
各位大侠,我想用asp.net读取客户端的信息,或者读取客户端c:\下的txt文件,这个怎么实现呀,谢谢
我用这个实现的只能是客户端所在公网的HttpContext.Current.Request.ServerVariables("REMOTE_ADDR").ToString IP,不能取得具体那台计算机内网的ip地址呀,那位大侠有好的办法没有呀,或者通过读客户端c:\的一个txt文件也可以呀,谢谢rn
Linux C打印所有的环境变量
1、在终端显示环境变量执行env命令nii@mmch:~/code$ env LC_PAPER=zh_CN.UTF-8 LC_ADDRESS=zh_CN.UTF-8 XDG_SESSION_ID=4 LC_MONETARY=zh_CN.UTF-8 TERM=xterm SHELL=/bin/bash SSH_CLIENT=192.168.217.1 34476 22 LC_NUMERIC=zh_CN
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表