为什么创建的文本文件是空白的?

时间:2016-01-09 08:28:41

标签: c++ file-handling

我的代码是

#include <iostream.h>
#include <conio.h>
#include <fstream.h>
#include <stdio.h>

struct info
{
    char product_name[100], Seller_Name[100], DOP[30];
    int  price;
}data;

void main()
{
    ofstream fout("code.txt",ios::out);
    fout<< "ofstream fout(\"data.dat\",ios::binary|ios::out);\n";
    while(1)
    {
        cout <<  "Enter Product Name: ";
        gets(data.product_name);
        cout<<"Enter Seller Name: ";
        gets(data.Seller_Name);
        cout<<"Enter Date of Purchase: " ;
        gets(data.DOP);
        cout<<"Enter Price:" ;
        cin>>data.price;
        fout<<"strcpy(data.product_name,"<<data.product_name<<");";
        fout<<"nstrcpy(data.Seller_Name,"<<data.Seller_Name<<");";
        fout<<"nstrcpy(data.DOP,"<<data.DOP<<");";
        fout<<"nstrcpy(data.price,"<<data.price<<");";
        fout<<"fout.write((char*)&data,sizeof(info));n";
    }
}

我正在开发一个软件并正在为它制作样本数据。所以我创建了这个应用程序所以我只需复制语句而不必再次编写它。它第一次工作,但现在它没有工作。

2 个答案:

答案 0 :(得分:2)

您的缓冲区可能没有被刷新。

试试这个:

while(1){
  //...
  fout.flush();
}

答案 1 :(得分:1)

尝试关闭输出流

fout.close()

点击此处了解更多信息: http://www.cplusplus.com/doc/tutorial/files/

短:

数据被缓冲并且仅作为优化周期性地写入。 关闭文件会刷新缓冲区(写入所有内容)并释放文件以供其他进程使用。