将文本从一个文件复制到另一个c++流时出错
Error copying text from one file to another c++ fstream
这是我的代码
#include <iostream>
#include <fstream>
#include <string>
int main()
{
std::fstream file;
file.open("text.txt", std::fstream::in | std::fstream::out |
std::fstream::app);
if(!file.is_open())
{
std::cout << "Could not open file(test.txt)" << std::endl;
} else {
file << "These are words nThese words are meant to show up in the new file n" <<
"This is a new Line nWhen the new fstream is created, all of these lines should be read and it should all copy over";
std::string text;
file >> text;
std::cout << text << std::endl;
file.close();
std::fstream newFile;
newFile.open("text2.txt", std::fstream::in | std::fstream::out |
std::fstream::app);
if(newFile.is_open())
{
newFile << text;
}
}
}
我试图将text.txt
的内容复制到text2.txt
,但由于某种原因,文本字符串总是以空结尾。我已经检查了文件并填充了文本,但text2
为空。这里出了什么问题?
将字符串附加到fstream
时,输入/输出位置设置为文件的末尾。这意味着,当您下次读取该文件时,您将看到的只是一个空字符串。
您可以使用检查当前输入位置
file.tellg()
并使用将输入/输出位置设置为起始位置
file.seekg(0)
std::fstream
的完整参考资料如下。
您正在尝试从文件的末尾读取。位置设置为您写入文件的最后一个内容的末尾,因此,如果您想读取您写入的内容,则必须重置它:
file.seekg(0);
这将把输入的位置设置回文件的开头。但是,请注意,以现在的方式读取文件只需获得1个单词(最多为第一个空格(。如果您想读取所有内容,也许您应该查看以下内容:将整个ASCII文件读取到C++std::string中。
相关文章:
- 矢量如何将数据复制到另一个矢量?
- 为什么C++在将一个对象复制到另一个对象时需要对这两个对象进行低级常量限定
- 链表,将列表复制到另一个列表
- 将指向给定子类的指针从一个向量复制到另一个向量
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 将父类的子类的数据复制到具有相同父类的另一个类
- 使用动态分配将 char* 复制到另一个字符**
- 如何在不复制的情况下将一个向量移动到另一个向量中
- 将字符向量复制到另一个向量
- 如何将一个结构的字符数组复制到结构的另一个字符数组中?
- 如何使用函数将一个对象的输入复制到另一个对象中
- 为什么我可以使用 memcpy 将一个对象变量复制到另一个对象变量
- 复制矩阵的一部分并粘贴到另一个矩阵C++上
- std::transform 将一个结构数组复制到另一个结构数组
- 如何避免将向量的完整值复制到另一个容器
- 如何将列表从一个类复制到另一个类
- C++将结构复制到另一个程序的资源
- 复制赋值函数如何访问另一个对象的私有成员(Stroustroup 原则和实践书)?
- 如何使用C ++将SQLite数据库中的所有表从一个数据库复制到另一个数据库
- 另一个复制算法