jjzjj

ofstream

全部标签

c++ - 如何轻松地将输出缩进到 ofstream?

有没有一种简单的方法可以将输出缩进到ofstream对象?我有一个空终止并包含换行符的C++字符数组。我想将其输出到流中,但每行缩进两个空格。是否有一种简单的方法可以使用流操纵器来执行此操作,例如您可以使用流的特殊指令更改整数输出的基数,还是我必须手动处理数组并在检测到的每个换行符处手动插入额外的空格?似乎string::right()操纵器已接近:http://www.cplusplus.com/reference/iostream/manipulators/right/谢谢。-威廉 最佳答案 这是使用构面的完美情况。codecv

c++ - ofstream 不刷新

我有以下代码,在Suse10.1/G++4.1.0上运行,它没有写入文件:#include#includeintmain(){std::ofstreamfile("file.out");file文件已正确创建和打开,但为空。如果我将代码更改为:#include#includeintmain(){std::ofstreamfile("file.out");file(在文本中添加一个\n),它起作用了。我也试过刷新ofstream,但没有用。有什么建议吗? 最佳答案 如果您检查您的文件执行cat,则可能是您的shell配置错误,如果没有

c++ - 从 stdio 文件构造 ofstream

是否可以从给定的stdio文件(旧式C文件句柄)创建一个ofstream对象?最好不要关闭并重新打开文件。这样做的目的是我有一个stdio文件和一个我正在使用的库接受一个流对象。 最佳答案 如果使用boost是一个选项,并且库采用std::basic_ostream(与std::ofstream相对),您可以使用FileDescriptorSink包装你的文件描述符,构建一个stream从中提取,并将其传递给您的目标库。 关于c++-从stdio文件构造ofstream,我们在Stack

c++ - 为什么我可以在临时 std::ofstream 对象上使用 `operator<<`?

根据C++标准,您不能将临时变量绑定(bind)到非常量引用。由于流输出操作符定义为templatestd::basic_ostream&operator&os,conststd::basic_string&str);我希望它不能在临时流对象上调用。然而,我尝试了以下并得到了意想不到的结果#includestd::ostream&print(std::ostream&stream){stream这在GCC主干、Clang主干和MSVC19上编译。我什至在前两个上尝试了-pedantic-errors。虽然从技术上讲这三者都错了,但我很可能误解了什么。有人可以在标准中找到关于这是否合法的

C++ ifstream,ofstream : What's the difference between raw read()/write() calls and opening file in binary mode?

这个问题涉及ifstream和ofstream在读取和写入数据到文件时的行为。通过阅读stackoverflow.com,我设法发现operator(流插入运算符)在输出之前将double等对象转换为文本表示,并调用read()和write()分别读取和写入存储在内存(二进制格式)中的原始数据。编辑:这很明显,这里没有什么意外。我还发现以二进​​制模式打开文件会阻止根据不同操作系统的要求自动转换换行符。所以我的问题是:这个自动翻译,例如;来自\n至\r\n调用函数时发生read()和write()?或者此行为仅特定于operator.(还有operator>>。)请注意,这里有一个类似

c++ - ofstream 不适用于 Windows 7 隐藏文件

我意识到ofstream在Windows7隐藏文件上不起作用。这是快速测试代码。#include#include#include#includeintmain(){{std::ifstreamfile2(_T("c:\\a.txt"));if(file2.is_open()){std::cout这是我得到的输出ifstreamopenofstreamnotopen!如果我使用FILE_ATTRIBUTE_NORMAL,ofstream将被成功打开。我没有以管理员身份运行该程序。但是,我确实使用了以下链接器选项。如果我们不以管理员身份启动应用程序,则必须为启用用户帐户控制(UAC)设置否

C++ read()-ing 从套接字到 ofstream

是否有一种C/C++方法可以使用read()从套接字读取数据并将接收缓冲区设为文件(ofstream)或类似的自扩展对象(例如vector)?编辑:当我考虑如何读取可能接收10000+字节文件内容的流套接字时,问题出现了。我只是从来不喜欢将20000或50000字节(现在足够大)作为缓冲区放在堆栈上,在我可以插入文件之前可以临时存储文件。为什么不直接将其流式传输到文件中以加注星标。就像您可以在std:string中获取char*一样,我想到了类似的东西read(intfd,outFile.front(),std::npos);//npos=INT_MAX或类似的东西。结束编辑谢谢。

c++ - 没有匹配函数调用 `std::basic_ofstream<char, std::char_traits<char>>::basic_ofstream(std::string&)'

我正在尝试编写一个程序,要求用户输入文件名,然后打开该文件。当我编译它时,出现以下错误:nomatchingfunctionforcalltostd::basic_ofstream>::basic_ofstream(std::string&)这是我的代码:usingnamespacestd;intmain(){stringasegurado;cout>asegurado;ofstreamentrada(asegurado,"");if(entrada.fail()){cout 最佳答案 std::ofstream如果您有C++11或

c++ - 为什么 ofstream 需要冲洗?

如果我运行以下代码,根本不会创建任何文件:std::ofstreamoutputFile(strOutputLocation.c_str(),std::ios::binary);outputFile.write((constchar*)lpResLock,dwSizeRes);outputFile.close();但是,如果我在关闭前添加一个flush(),它会起作用:std::ofstreamoutputFile(strOutputLocation.c_str(),std::ios::binary);outputFile.write((constchar*)lpResLock,dwS

c++ - 可以使用ofstream在打印机上打印

ofstream可以用来在打印机上写吗?例如:stringnameOfPrinter="xyz";ofstreamonPrinter(nameOfPrinter);onPrinter如果我按照上面的方法做,我会得到打印机的输出(在纸上)吗?如果不是,为什么我得不到输出?请建议使用打印机打印的方法。我的目标是Windows平台(32位) 最佳答案 如果您的打印机恰好与LPT1相关联并且打印机支持换页。#include#includeusingnamespacestd;intmain(){ofstreamprinter("LPT1");