gpt4 book ai didi

c++ - 如何使用不同的输入文件多次运行 C++ 程序?

转载 作者:行者123 更新时间:2023-11-30 03:23:56 24 4
gpt4 key购买 nike

我是 C++ 的新手,正在撰写我的硕士论文,非常感谢能得到的任何帮助!

我有一个程序可以读取一个 txt 文件,然后进行一系列计算,然后返回一个新的 txt 文件。问题是我想为 100 多个不同的输入文件运行这个程序。现在我必须在代码中更改输入文件的名称,但我想让它自己运行我文件夹中的所有输入文件。

我正在使用 Visual Studio,但几乎没有 C++ 经验。

谢谢 :)

最佳答案

请参阅此代码段。由于您使用的是 MSCV,因此需要在配置中为此控制台应用程序启用 MFC。还要在定义了 CFileFind#include "stdafx.h" 中添加 #include "afx.h"PopulateFromFolder() 应该自动将文件加载到 vector files 中。

#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <vector>

using namespace std;

void PopulateFromFolder(string path, vector<string>& files)
{
CFileFind finder;
CString fileName;
fileName.Format(L"%s*.*", CString(path.c_str()));
BOOL bOk = finder.FindFile(fileName);
while (bOk)
{
bOk = finder.FindNextFile();

if (finder.IsDots())
{
continue;
}
if (!finder.IsDirectory())
{
CString strFileName = finder.GetFileName();
files.push_back(CStringA(strFileName).GetString());
}
}
finder.Close();
}

int main()
{
vector<string> files;
string path = "D:\\MyFolder\\";
PopulateFromFolder(path, files);

auto a = path + files[0];
int i = 0;
while (i< files.size()-1)
{
cout << "processing " << files[i + 1] << endl;
ifstream fs(path+files[i++]);
if (fs.is_open())
{
//do something
}
fs.close();
}
return 0;
}

输出:

enter image description here

关于c++ - 如何使用不同的输入文件多次运行 C++ 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50139639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com