C++ ofstream向文件写数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ ofstream向文件写数据?相关的知识,希望对你有一定的参考价值。
#include<fstream.h>//12.7 void main() char str; ofstream of("c:\\w2.txt"); if(of.fail()) cerr<<"c:\\w2.txt can not open "<<endl; of.close(); return; cout<<"Enter char finish with : CTRL+C"<<endl; str=cin.get(); while(str!=EOF) of.put(str); str=cin.get(); of.close(); //为c:\w2.txt 的数据问空??没写入数据啊?拿错了??
参考技术A 是吗?你什么编译器?
我在CFree上调试,先加上#include <iostream>,然后把main函数改成返回int的。测试通过,文件有数据。
你试试看把c:\\w2.txt改成d:\\w2.txt 参考技术B 当然不行,你知道吗?Ctrl+C将使整个程序都失败,退出到操作系统!本回答被提问者采纳
c++文件
;IO流 输入输出流
ofstream 写文件流(out) buffer->file
ifstream 读文件流(in) file->buffer
fstream 读写文件流(即能读又能写肯定多继承上面的两个类嘛)
ostream 标准输出流
istream 标准输入流
iostream 标准输入输出流
;输入输出流继承关系图
;ofstream 写文件流(文本)
;code
#include <fstream>
using namespace std;
#include <stdio.h>
int main()
{
//输出文件流默认文本
char szbuf1[]="hello";
char szbuf2[]="world";
ofstream fout("F:\\1.txt");
/*
if(!fout.is_open())
return 0;
逻辑取反 如果函数返回结果不为真就并不会真正改变返回结果的值 return 0
算数取反~ 把数据按位取反得到结果
*/
if(!fout.is_open())
return 0;
//从buf到fout输出流 endl提交缓冲区到文件
fout<<szbuf1<<endl;
fout<<szbuf2<<endl;
//fout.flush()手动提交缓冲区内容到文件
//关闭前提交缓冲区内容到文件
fout.close();
return 0;
}
;ofstream 写文件流(二进制)
;code
ofstream fout2("F:\\2.txt",ios::out|ios::binary);
if(!fout2.is_open()){
return 0;
}
//写入内容到文件缓冲区
fout2.write(szbuf1,sizeof(szbuf1));
//提交缓冲区内容并关闭写文件流
fout2.close();
;ifstream 输入文件流 file->buffer
;串流 istringstream
把字符串当作一个文件的意思,没什么作用
以上是关于C++ ofstream向文件写数据?的主要内容,如果未能解决你的问题,请参考以下文章
C++文件读写详解(ofstream,ifstream,fstream)