我有这个:
std::ofstream * file = new std::ofstream();
if (seperator == 1) file->open("C:/Users/Max/Desktop/Sparade filer/" + name + ".txt");
else
{
std::string stamp = (std::string)__DATE__ + " : " + (std::string)__TIME__;
file->open("C:/Users/*directory*/" + name + " - " + stamp + ".txt");
}
*file << data;
delete file;
*目录*当然是别的东西
但由于某种原因,只有if-block中的内容有效。文件名不存在,因此完全基于变量创建新文件(在这种情况下name
等于“我的保存”)。因此,如果我将我的分隔符设置为1
,我会在我的目录中获得一个名为“my file.txt”的新文件,这意味着它可以正常运行。但是,只要我将其设置为其他内容,我就什么都得不到。我已多次检查,并输入了else块,ofstream::open()
的第一个参数是一个有效的字符串。
非常感谢帮助!
答案 0 :(得分:3)
不允许文件名包含字符“:”。
答案 1 :(得分:1)
DATE 和 TIME 会返回编译程序的时间和日期。这与系统的日期和时间不同。现在,如果那是你想要的那么好!!
但如果您希望程序在每次运行时使用更新的系统日期和时间标记文件夹,那么我建议您查看此thread。 TrungTN的答案就是摆在我面前的作品。
我希望有所帮助!