通常当文件名是“example.txt”时,我可以使用以下代码从文件读取。如何读取具有前缀和时间戳的文件作为C++中的文件名称
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while (getline (myfile,line))
{
cout << line << '\n';
}
myfile.close();
}
else cout << "Unable to open file";
但我怎么可以使用相同的程序来读取一个文件,如果文件名是example_201703031140.txt或example_201703031142.txt。 (让我们只说这个文件是在与该前缀位置的唯一文件。换句话说,位置可以有example_201703031140.txt OR example_201703031142.txt,而不是两者)
要澄清的问题较多,如何能我写的程序可以读取动态更改文件名? 例如,想象一下,我必须写入名为example_timestamp的文件,并从单独的模块中读取该文件(该文件不能访问完整的文件名,但知道它有一个前缀“example”,后跟一个时间戳)
更新:您不知道时间戳是什么,您只知道它是时间戳。
XY选项。如果文件写入间隔足够远以至于它们不会重叠读取,则始终写入相同的名称。然后读取常用名称,并在完成时使用时间戳重命名文件。 – user4581301
否则会得到一个目录列表(os特定的代码或类似于Boost在接下来的几个月内需要的直到C++ 17下载)并且从列表中找到想要的文件。 – user4581301
另一个X-Y选项:在两个进程之间打开IPC连接(如套接字或管道),让作者告诉读者何时有文件可用以及名称是什么。 – user4581301