[英]Writing file doesn't work properly
我正在尝试将我的一些输入保存到文件中,但似乎不起作用。 我不知道它的文件扩展名是什么,但是我已经尝试修改了一个小时,但是它没有在我的文件夹中弹出某些文件。
这就是我的代码的工作方式(不发布所有内容,太长了)
这是我的功能:
void mobiltelefon::savePhoneOnFile() const
{
ofstream out;
out.open("C:\\temp\\phones.txt", ios::in);
out << this->numberofphones << endl;
for (int i = 0; i < this->numberofphones; i++) {
out << this->phones[i]->getPhonename() << endl;
out << this->phones[i]->getPrice() << endl;
}
out.close();
}
这就是我在main
称呼它的方式:
case 7:
cout << "Save the phones on file" << endl;
fb.savePhoneOnFile();
break;
我看不到我的错误。 尝试保存文件时,为什么文件没有显示在我的文件夹中?
如果要打开文件进行写入,则应使用ios::out
作为第二个参数
ofstream out("C:\\temp\\phones.txt", ios::out);
各种打开模式是
app
在每次写入之前尝试流的结尾
binary
以二进制模式打开
in
开放阅读
out
对写开放
trunc
在打开时丢弃流的内容
ate
马上寻求流结束后开放
这里:
ofstream out;
out.open("C:\\temp\\phones.txt", ios::in);
您不想有std::ios::in
标志。 你怎么会 您正在写入文件,而不是从文件读取。
解释: std::ofstream
对标志参数与其构造函数中的 std::ios_base::out
进行“或”运算,并将其传递给std::basic_filebuf::open
。 查找out | in
out | in
该链接中,您便找到了答案。 该文件将需要存在才能正确打开。 它不会被创建。
只需完全省略该参数,它将默认为std::ios_base::out
(这是您应该拥有的):
out.open("C:\\temp\\phones.txt");
您最好在构造时立即执行:
std::ofstream out("C:\\temp\\phones.txt");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.