cpp使用fstream编程多文件输入

时间:2016-07-27 13:35:01

标签: c++ arrays file edit filestream

我想询问输入多个文件或关于如何将文件名放入某个队列的最简单方法。
这个文件是关于编辑的。

我有,让我说,100个txt文件,每个我想打开它,找到一些并保存它。

我有每个操作的函数/方法。

但是我遇到了将文件加载到程序中的问题。我为五个或更少的文件制作了它。

过程是。程序询问我程序根目录中的文件名或文件的完整路径 例如C / myfile.txt

按Enter后执行。

不幸的是发生了不好的事情,我每天要做100个文件。所以我知道在C#中可以打开文件对话框 - 多个文件加载......

在这个程序中,我正在考虑对字符串进行静态数组,并为每个字符串创建一个for循环。

但我不知道如何将此字符串(文件名)加载到此数组中的更简单方法。

我在msdn上看了一些东西,但对我来说这看起来很复杂。

有人可以帮忙吗?程序只适合我,我不想设置太多东西。有可能的? 什么是我必须使用的代码中较少或简约的部分 - 添加到我的程序中?

我想要的结果示例 array [0] = C / text。文本 array [1] = C / texta。文本 ... array [50] = C / textdhsjfk。 TXT

也许这不像我想的那么容易,也许是的。

但我对这个专业没有任何支持......所以我只是试图在互联网上找到一些东西,我不确定我找到的结果。

感谢您的时间并愿意提供帮助。

1 个答案:

答案 0 :(得分:0)

循环和容器看起来很好用:

static const char filenames[] =
{
  "C:\\Fred\\file1.txt", "c:\\Fred\\file2.txt", "c:\\Barney\\file1.txt",
};
static const unsigned int quantity_of_files =
    sizeof(filenames) / sizeof(filenames[0]);

//...
for (unsigned int i = 0u; i < quantity_of_files; ++i)
{
  std::ifstream input_stream(filenames[i]);
  Process_Input_Stream(input_stream);
  input_stream.close();
}

任务是让代码正常运行并且健壮,然后担心性能。

注意:程序已设置为可以将文件名添加到数组中,而无需更改或重新测试代码。