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 标准输入输出流
![技术分享](https://note.wiz.cn/api/document/files/unzip/9761b540-f977-4ded-98fd-265fe8338235/3017f237-534a-4246-94bc-a8607a484073.1278/index_files/67c9dc99-794f-4740-b611-90e80a685d98.png)
;输入输出流继承关系图
![技术分享](https://note.wiz.cn/api/document/files/unzip/9761b540-f977-4ded-98fd-265fe8338235/3017f237-534a-4246-94bc-a8607a484073.1278/index_files/f42f11e9-dd0f-4ccb-ab7a-f2d5b96a1855.png)
;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;
}
![技术分享](https://note.wiz.cn/api/document/files/unzip/9761b540-f977-4ded-98fd-265fe8338235/3017f237-534a-4246-94bc-a8607a484073.1278/index_files/f37f6d6b-a16c-44be-8d42-f141b54544c2.png)
;ofstream 写文件流(二进制)
;code
ofstream fout2("F:\\2.txt",ios::out|ios::binary);
if(!fout2.is_open()){
return 0;
}
//写入内容到文件缓冲区
fout2.write(szbuf1,sizeof(szbuf1));
//提交缓冲区内容并关闭写文件流
fout2.close();
![技术分享](https://note.wiz.cn/api/document/files/unzip/9761b540-f977-4ded-98fd-265fe8338235/3017f237-534a-4246-94bc-a8607a484073.1278/index_files/fed895a8-6685-47bc-859e-0e075186a89a.png)
;ifstream 输入文件流 file->buffer
![技术分享](https://note.wiz.cn/api/document/files/unzip/9761b540-f977-4ded-98fd-265fe8338235/3017f237-534a-4246-94bc-a8607a484073.1278/index_files/93a06998-02c4-41a1-bb5e-e3025a5794f2.png)
;串流 istringstream
把字符串当作一个文件的意思,没什么作用
以上是关于C++ ofstream向文件写数据?的主要内容,如果未能解决你的问题,请参考以下文章
C++文件读写详解(ofstream,ifstream,fstream)