一个接一个地打开两个文件
Opening two files one after another
尝试像这样一个接一个地打开两个文件时:
ofstream transactionFileList(file_day, std::ios_base::app);
transactionFileList << file_date << endl;
transactionFileList.close();
ofstream transactionFile(file_date);
for(int x = 0; x < _item_number_transaction.size(); x++){
transactionFile << _item_number_transaction[x] << ":" << _quantity_transaction[x] << endl;
}
transactionFile.close();
我没有收到任何错误,但只创建了transactionFileList
。
此外,当我cout
file_date
时,我得到了13-04-1995.txt
所以该变量没有问题!有什么想法吗?
变量
time_t t = time(0);
struct tm * now = localtime(&t);
char file_date[80];
char file_day[80];
strftime(file_date, 80, "%Y-%m-%d|%H:%M:%S.txt", now);
strftime(file_day, 80, "%Y-%m-%d_transactions.txt", now);
file_date
变量的文件名无效,因此transactionFile
没有打开,您可以按条件检查:
if (transactionFile) {
// do something with stream...
}
file_date
包含在某些操作系统中不能在文件名中使用的符号|
。
我还建议使用RAII习语的力量,而不是明确地调用close()
:
{
ofstream transactionFile(file_date);
if (transactionFile) {
for(int x = 0; x < _item_number_transaction.size(); x++){
transactionFile << _item_number_transaction[x] << ":" << _quantity_transaction[x] << endl;
} else {
throw std::runtime_error("File not opened.");
}
}
你构建的方式file_date
你会得到一个特殊的字符(|:
)进入其中。系统不允许创建文件可能就足够了。
例如,在窗口外壳中,我得到:
C:\test>echo foo> a:2.txtLe chemin d'accès spécifié est introuvable.
(Path not found
的法语错误消息)。
AFAIK :
用于记录 Windows 文件中的流(参考 Windows 开发人员中心) 摘录 :
流的命名约定
从 Windows shell 命令行指定时,流的全名是"文件名:流名称:流类型",如以下示例所示:"myfile.dat:stream1:$DATA"。
相关文章:
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 如何返回一个类的两个对象相加的结果
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 为什么C++在将一个对象复制到另一个对象时需要对这两个对象进行低级常量限定
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 使用一个循环与两个循环
- 创建一个棋盘格或"Interweave"两个链接列表。IE 更改两个链表的指针
- 将向量之间的数字放在另一个向量之间<vector>>如果两个数字的差值为 1
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 在Qt/C++中从一个代码构建两个略有不同的项目
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 为什么在排序链表上的这种合并实现总是将两个列表都设置为 NULL,而只有一个应该设置一个列表?
- 如果两个静态库使用相同的另一个静态库,如何避免"LNK2005 Already Defined error"?
- 给定一个大小为 N 的数组 S,检查是否可以将序列拆分为两个序列
- 将两个 cpp 文件合并为一个 cpp 文件
- 为什么将两个浮点数相加会得到一个整数C++?
- 我如何创建一个列表,然后从中创建两个列表,其中一个用于偶数,另一个用于奇数?
- 如何得到一个两个数字都相等或这个数字更大