我的代码是
#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";
}
}
我正在开发一个软件并正在为它制作样本数据。所以我创建了这个应用程序所以我只需复制语句而不必再次编写它。它第一次工作,但现在它没有工作。
答案 0 :(得分:2)
您的缓冲区可能没有被刷新。
试试这个:
while(1){
//...
fout.flush();
}
答案 1 :(得分:1)
尝试关闭输出流
fout.close()
点击此处了解更多信息: http://www.cplusplus.com/doc/tutorial/files/
短:
数据被缓冲并且仅作为优化周期性地写入。 关闭文件会刷新缓冲区(写入所有内容)并释放文件以供其他进程使用。