社区
C++ 语言
帖子详情
ofstream输出文件的格式问题?(C++)
ofqian
2003-10-29 09:56:40
ifstream读进一个文件,
(例如文件格式是这样:
今天
是
个
好天气
)
如何保证该文件内容,输出到另一个文件中后,文件内容的格式不变?
...全文
514
9
打赏
收藏
ofstream输出文件的格式问题?(C++)
ifstream读进一个文件, (例如文件格式是这样: 今天 是 个 好天气 ) 如何保证该文件内容,输出到另一个文件中后,文件内容的格式不变?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
victorforever
2003-10-30
打赏
举报
回复
用infstream 读进文件,
然后用getline依次取出
即可.
ifstream infile("inflie");
ofstream outfile("outfile");
vector<string> text;
char p[100];
while(infile.getline(p,100)){
text.push_back(p);
}
vector<string>::iterator iter;
iter = text.begin();
for(iter;iter!=text.end();++iter){
outfile <<*iter << endl;
}
ofqian
2003-10-30
打赏
举报
回复
up
ofqian
2003-10-29
打赏
举报
回复
关键是如何保持空格仍然保持不变.
在中间还要把输入的文件流赋给一个vector去遍历.
换言之就是,怎样读进来,就怎样写出去?
谢谢上面兄弟的回答,
哪位兄弟,写过类似的东东,贴代码让俺学习一下.
ofqian
2003-10-29
打赏
举报
回复
关键是如何保持空格仍然保持不变.
换言之就是,怎样读进来,就怎样写出去?
neptunez
2003-10-29
打赏
举报
回复
good
langzi8818
2003-10-29
打赏
举报
回复
#include < fstream >
std::ifstream input("in",ios::binary);
std::ofstream output("out",ios::binary);
char ch;
while (input.get(ch)) output << ch;
方法二:逐行复制
#include < fstream >
#include < string >
std::ifstream input("in",ios::binary);
std::ofstream output("out",ios::binary);
std::string line;
while (getline(input,line)) output << line << "\n";
方法三:迭代器复制
#include < fstream >
#include < iterator >
#include < algorithm >
std::ifstream input("in",ios::binary);
std::ofstream output("out",ios::binary);
input.unsetf(ios::skipws);
copy(istream_iterator(input),istream_iterator(),ostream_iterator(output,""));
方法四:缓冲区复制
#include < fstream >
std::ifstream input("in",ios::binary);
std::ofstream output("out",ios::binary);
output << input.rdbuf();
这里直接使用了输入流的缓冲区,因此没有引入额外的临时对象。
很显然,上述四种方法中,最后一种方法最简洁,由于直接操作输入流的缓冲区,从运行效率上来说,也比其他方法有着略微的优势(当然,由于操作系统可能提供了额外的基于设备的文件缓冲机制,也许你无法证实这一点)。因此,除非要对输入内容进行处理,直接复制文件推荐最后一种方法,既不容易出错,又能获得良好的性能。
daizh
2003-10-29
打赏
举报
回复
这个问题不是回答过了吗?怎么又提出来问啦。
方法一:逐个字符复制
#include < fstream >
std::ifstream input("in",ios::binary);
std::ofstream output("out",ios::binary);
char ch;
while (input.get(ch)) output << ch;
方法二:逐行复制
#include < fstream >
#include < string >
std::ifstream input("in",ios::binary);
std::ofstream output("out",ios::binary);
std::string line;
while (getline(input,line)) output << line << "\n";
方法三:迭代器复制
#include < fstream >
#include < iterator >
#include < algorithm >
std::ifstream input("in",ios::binary);
std::ofstream output("out",ios::binary);
input.unsetf(ios::skipws);
copy(istream_iterator(input),istream_iterator(),ostream_iterator(output,""));
方法四:缓冲区复制
#include < fstream >
std::ifstream input("in",ios::binary);
std::ofstream output("out",ios::binary);
output << input.rdbuf();
这里直接使用了输入流的缓冲区,因此没有引入额外的临时对象。
很显然,上述四种方法中,最后一种方法最简洁,由于直接操作输入流的缓冲区,从运行效率上来说,也比其他方法有着略微的优势(当然,由于操作系统可能提供了额外的基于设备的文件缓冲机制,也许你无法证实这一点)。因此,除非要对输入内容进行处理,直接复制文件推荐最后一种方法,既不容易出错,又能获得良好的性能。
ch_etang
2003-10-29
打赏
举报
回复
#include <fstream>
std::ifstream input("in",ios::binary);
std::ofstream output("out",ios::binary);
output << input.rdbuf();
收工,得分。
fwinfwin
2003-10-29
打赏
举报
回复
原样输出吧,读什么就输出什么,不要用readline读就可以了
如果用readline读的就要加一个endl在输出每行的尾部就可以了
outfile
C++
写入
文件
在
C++
中将数据
输出
到
文件
需要用到
文件
流,将数据
输出
到
文件
(即下图中的写
文件
)时会用到
ofstream
类.下面就具体介绍如何将一段字符或数据
输出
到
文件
中并保存
流式IO(一)使用
ofstream
向一个文本
文件
中
输出
各种类型的数据,并打开
文件
观察结果
1、 流式IO(一) 编写
C++
程序完成以下功能: (1) 使用
ofstream
向一个文本
文件
中
输出
各种类型的数据,并打开
文件
观察结果: 整数、无符号整型、长整型、浮点型、字符串、…… (2) 用十进制、八进制、十六进制方式向文本
文件
中
输出
整数; (3) 使用控制符和成员函数来控制
输出
的
格式
: set() precision() ...
C++
输入
输出
流详解
ofstream
类支持磁盘
文件
输出
如果在构造函数中指定一个
文件
名,当构造这个
文件
时该
文件
是自动打开的
ofstream
myFile("filename",iosmode); iosmode 可以在调用默认构造函数之后使用 open 成员函数打开
文件
ofstream
myFile; // 声明一个静态
输出
文件
流对象 myFile.open("filename",iosmode); // 打开
文件
,使流对象与
文件
建立联系
ofstream
* pmyFile = new
ofstream
; // 建立一个动态的
输出
文件
流对象 pmyFile->open("filename",iosmode); // 打开
文件
,使流对象与
文件
建立联系
关于
C++
的
ofstream
输出
产生乱码的
问题
今天再做
C++
的时候发现存储
文件
的时候产生了乱码。我的代码如下。
ofstream
saveFile("output.txt"); for (int i = 0; i < 255; i++) { saveFile << i << ": " << data[i] << endl; } 我去寻找
问题
发现是编码的
问题
,但是我发现了一个更有效的解决
C++
:
ofstream
文件
流操作(precison和ios_base)
比如std::ios_base::in将输入流设置为只读,std::ios_base::out设置为只写模式, std::ios_base::out设置为二进制I/O模式。这段代码使用
C++
文件
流对象
ofstream
创建新
文件
,命名为 “adasd.txt”,通过 precision() 和 setf() 函数设置
输出
精度和
输出
格式
,最后调用了 close() 函数关闭
文件
。ios_base提供了一些共性操作和基础成员变量,用于支持流的输入
输出
操作,并可以完成流的基本工作。
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章