添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
ofstream奇怪问题解决方法
最近使用ofstream写数据到文件中出现了一些奇怪的问题,发现有时候写入的数据和原始数据不一致,经过观察发现,有些地方多了0D这个东西,查字符 表得知是回车符。因此得知可能是自动插入了回车换行。而且每个0D都在0A前面,这样更加表明ofstream确实会自动在0A前加入0D以表示win下 的回车换行。
解决方法就是使用二进制方式写入,默认是字节流得方式。如下:
std::ofstream out(filename,std::ios::binary);
这样再使用
out.write((const char*)pdata,databytes);
写入数据就没有问题了。

转载于:https://www.cnblogs.com/absolute8511/archive/2009/06/10/1649571.html

ofstream奇怪问题解决方法最近使用ofstream写数据到文件中出现了一些奇怪的问题,发现有时候写入的数据和原始数据不一致,经过观察发现,有些地方多了0D这个东西,查字符表得知是回车符。因此得知可能是自动插入了回车换行。而且每个0D都在0A前面,这样更加表明ofstream确实会自动在0A前加入0D以表示win下的回车换行。解决方法就是使用二进制方式写入,默认是字节流...
ofstream 的使用 方法 ofstream 是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; ofstream 该数据类型表示输出文件流,用于创建文件并向文件写入信息 ifstream 该数据类型表示输入文件流,用于从文件读取信息。 fstream 该数据类型通常表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写...
如果报错信息为:istream不是std的成员,那么有两种可能 1.没有包含iostream库文件 2.#ifndef 和#endif使用错误,致使包含的iostream的头文件没有被主函数包含
1. 使用ifstream读文件时被截断 ifstream file; 使用文本方式读时,即file.open(filePath, ifstream::in),如果碰到字符0x1A(SUB 换置)时就停止读,后面的内容就被截断了。 使用二进制读可以 解决 问题 ,即 file.open(strFilePath.c_str(), ifstream::in | std::ios::binary);
### 回答1: ofstream outfile是C++中用于创建和写入文件的输出流对象。它可以将数据写入文件,并且可以在写入时选择不同的文件打开模式,如覆盖原有文件或追加到文件末尾。使用 ofstream outfile需要包含头文件<fstream>,并且可以通过构造函数指定文件名和打开模式。例如: ofstream outfile("example.txt", ios::out | ios::app); 这将创建一个名为example.txt的文件,并将其打开以进行写入。打开模式ios::out | ios::app表示将文件追加到文件末尾。然后,可以使用outfile对象的<<运算符将数据写入文件中,例如: outfile << "Hello, world!" << endl; 这将在文件中写入字符串"Hello, world!",并在其后添加一个换行符。最后,需要使用outfile.close() 方法 关闭文件并释放资源。 ### 回答2: ofstream 是C++标准库中用于向文件写入数据的类。它的定义在<fstream>头文件中。 ofstream 类对象可以打开文件、从文件写入数据、关闭文件等。 使用 ofstream 的基本流程如下: 1. 创建一个 ofstream 对象,即打开一个输出文件流。 ofstream 的构造函数需要传入要写入的文件名和文件打开方式(如写入文件的方式)。 2. 使用“流输出操作符<<”向文件写入数据。 3. 关闭流和文件,使用 ofstream 的成员函数close()关闭文件。 下面是一个例子: #include <iostream> #include <fstream> using namespace std; int main() { // 创建 ofstream 对象,打开文件"helloworld.txt",并添加内容 ofstream outfile("helloworld.txt", ios::app); if (outfile.is_open()) { // 判断文件是否打开成功 outfile << "Hello World! " << endl; outfile.close(); // 关闭文件 } else { cout << "Unable to open file." << endl; return 0; 在上面的例子中,我们打开了一个文件"helloworld.txt"并向其中写入了一行字符串"Hello World! "。其中ios::app表示以添加内容的方式打开文件。 ofstream 也提供了其它的成员函数,如good()可以检查文件是否正常打开,tellp()可以返回当前写入位置等。 需要注意的是,如果没有成功打开文件,流输出操作符<<不会向文件写入任何数据,因此在向输出文件流写入数据前应该确保文件成功打开。 ### 回答3: ofstream 是C++标准库中为了以输出方式打开文件而定义的一个类。该类提供了一些方便的 方法 来写入数据到文件中,并且容易使用。 在使用 ofstream 之前,必须先包含#include<fstream>头文件。要打开一个输出文件,可以使用下面的语句: ofstream outfile; outfile.open("file.txt"); 这里的"file.txt"是文件名,如果文件不存在则会自动创建一个新文件。然后就可以使用输出运算符<<来写入数据到文件中,例如: outfile << "Hello world!" << endl; outfile << "This is a test file." << endl; 在写完数据后,需要关闭文件,以使在文件中写入的数据保存。可以使用以下命令: outfile.close(); 另外,可以使用一个在构造函数中给定文件名的方便构造函数来创建并打开一个输出文件,例如: ofstream outfile("file.txt"); 除了使用输出运算符来写入数据,还可以使用put() 方法 来写入一个字符,例如: outfile.put('H'); outfile.put('e'); outfile.put('l'); outfile.put('l'); outfile.put('o'); outfile.put('\n'); 当然,使用输出运算符会更简单和方便。 总之, ofstream 是C++标准库中方便的输出流类,使用它可以轻松地将数据写入文件中。注意要在使用完毕后关闭文件,以保证写入的数据可以被保存。