问题描述
在我的数据中,我有通常的 std::strings,并且为了保留德语变音,还有一些 std::wstrings。我正在尝试将它们写入文本文件,但此行中有错误 outfile << physical_address.street << std::endl;
:
E0349: 没有运算符“
在德语中,保留变音符号很重要——写 oe 而不是 ö 看起来不专业,否则你可能会混淆一些村名。
我做了一些研究:
我发现的第一个建议是将 w 字符串转换为字符串。我可以将此变量转换为 std::string 而不出错吗?
第二个建议是使用 std::wofstream。当我的 std::ofstream
已经在访问该文件时,我该怎么办?
第三个建议是使用字符数组。然后,我将不得不编写一个函数来替换一些字母(我可以想象这样做)。
void Person::store_data_in_textfile()
{
printf("Stammpfad f\x81 \br den neuen Ordner eingeben (zum Beispiel C:/Users/aName/Desktop)\n");
printf("Der Ordnername selbst wird aus dem Vor- und Nachnamen gebildet.\n");
std::string OutputFolder;
std::cin >> OutputFolder;
OutputFolder = OutputFolder + "/" + first_name + " " + last_name;
char* writable = new char[OutputFolder.size() + 1];
std::copy(OutputFolder.begin(),OutputFolder.end(),writable);
writable[OutputFolder.size()] = '\0';
if (CreateDirectoryA(writable,NULL) == 0)
{
printf("Diesen Ordner gibt es bereits.\n");
}
else
{
std::string OutputFilePath = OutputFolder + "/" + "info.txt";
std::ofstream outfile (OutputFilePath);
outfile << "Stand dieser Datei: ";
time_t Now;
struct tm Nowlocal;
Now = time(NULL);
Nowlocal = *localtime(&Now);
std::stringstream D_U; //Datum Uhrzeit
D_U << std::setw(2) << std::setfill('0') << Nowlocal.tm_mday << "." << std::setw(2) << std::setfill('0') << Nowlocal.tm_mon + 1 << "." << Nowlocal.tm_year + 1900 << "," << std::setw(2) << std::setfill('0') << Nowlocal.tm_hour << ":" << std::setw(2) << std::setfill('0') << Nowlocal.tm_min << " Uhr";
std::string d_u = D_U.str();
outfile << d_u << std::endl;
outfile << first_name << " " << last_name << std::endl;
outfile << nickname << std::endl;
outfile << physical_address.street << std::endl;
outfile.close();
}
delete[] writable;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)