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)

c++文件

C++ 文件操作

C++写文件再次运行程序后,之前保存的文件的数据就没有了,如何让数永久保存?

std::ofstream,写入前检查文件是不是存在

std::ofstream,写入前检查文件是不是存在