C++ 怎样把运行得到的数据写入文件 如何保存
7个回答
展开全部
首先你要创建一个文本文件,然后用函数打开,写入就行了
下面是我回答别人问题的一个代码,有写入文件的操作,希望对你有用。
include <iostream.h>
#include <fstream.h>
class dog
{
public:
int weight;
int age;
dog()
{
}
dog(int weight1,int age1)
{
weight=weight1;
age=age1;
}
~dog()
{
}
};
int main()
{
dog dog1(5,10);
dog dog2;
ofstream fout; //写入文件流
ifstream fint; //从文件读取
fout.open("out.txt"); //打开文件,如果没有,就创建,默认保存在你软件安装目录下。
fout<<dog1.weight<<"\n"<<dog1.age<<endl; //数据写入。如果你有很多数据的话,可以编写个循环。
fint.open("out.txt"); //打开文件
fint>>dog2.weight>>dog2.age; //从文件中读取数据
cout<<dog2.weight<<dog2.age<<endl; //保存到变量中。
fout.close(); //关闭文件。
//二进制
ofstream fdata("file.dat",ios::binary);
fdata.write((char*)(&dog1),sizeof(dog1));
ifstream fint1("file.dat",ios::binary);
fint1.read((char*)(&dog2),sizeof(dog2));
cout<<dog2.age<<dog2.weight<<endl;
return 0;
}
下面是我回答别人问题的一个代码,有写入文件的操作,希望对你有用。
include <iostream.h>
#include <fstream.h>
class dog
{
public:
int weight;
int age;
dog()
{
}
dog(int weight1,int age1)
{
weight=weight1;
age=age1;
}
~dog()
{
}
};
int main()
{
dog dog1(5,10);
dog dog2;
ofstream fout; //写入文件流
ifstream fint; //从文件读取
fout.open("out.txt"); //打开文件,如果没有,就创建,默认保存在你软件安装目录下。
fout<<dog1.weight<<"\n"<<dog1.age<<endl; //数据写入。如果你有很多数据的话,可以编写个循环。
fint.open("out.txt"); //打开文件
fint>>dog2.weight>>dog2.age; //从文件中读取数据
cout<<dog2.weight<<dog2.age<<endl; //保存到变量中。
fout.close(); //关闭文件。
//二进制
ofstream fdata("file.dat",ios::binary);
fdata.write((char*)(&dog1),sizeof(dog1));
ifstream fint1("file.dat",ios::binary);
fint1.read((char*)(&dog2),sizeof(dog2));
cout<<dog2.age<<dog2.weight<<endl;
return 0;
}
展开全部
/*
下面这个简单的例子是文件输入输出流的。
当然你可以只用输入流,也可以只用输出流。
*/
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
// 文件输入流,假设 data.txt 已经存在
ifstream fin( "data.txt" );
// 文件输出流
ofstream fout( "results.txt", ios::app );
int temp;
// 这个例子的功能是:将 data.txt 中的每个整数加 2 后存入 result.txt 中
while( fin >> temp )
{
fout << temp + 2 << endl;
}
//关闭输入输出流
fin.close();
fout.close();
return 0;
}
下面这个简单的例子是文件输入输出流的。
当然你可以只用输入流,也可以只用输出流。
*/
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
// 文件输入流,假设 data.txt 已经存在
ifstream fin( "data.txt" );
// 文件输出流
ofstream fout( "results.txt", ios::app );
int temp;
// 这个例子的功能是:将 data.txt 中的每个整数加 2 后存入 result.txt 中
while( fin >> temp )
{
fout << temp + 2 << endl;
}
//关闭输入输出流
fin.close();
fout.close();
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给一个fgetc/fputc的例子,把fputc与fgetc语句后面的注释同时打开,同时注释掉fputc/fgetc语句,可以作为fread/fwrite的例子.
C/C++
#include<stdio.h>
#include<stdlib.h>
typedef struct node {
unsigned char elem;
struct node *next;
} Node, *List;
int main()
{
char file_name[255] = "d:\\梁静茹-今天情人节.mp3"; //d盘符下要有这个文件.
List head = (List)malloc(sizeof(Node));
List p, q;
int c;
FILE *fp;
if(head == NULL) {
fprintf(stderr, "malloc error!\n");
exit(1);
}
head->next = NULL;
q = head;
if((fp=fopen(file_name, "rb")) == NULL) {
fprintf(stderr, "打开文件失败!\n");
exit(1);
}
while((c=fgetc(fp)) != EOF) {
//while(fread(&c,sizeof(unsigned char), 1, fp)) {
p = (List)malloc(sizeof(Node));
if(p == NULL) {
fprintf(stderr, "malloc error!\n");
p = head;
while(p != NULL) {
q = p->next;
free(p);
p = q;
}
exit(1);
}
p->elem = c;
p->next = NULL;
q->next = p;
q = p;
}
fclose(fp);
if((fp=fopen("d:\\今天情人节副本.mp3", "wb")) == NULL) {
fprintf(stderr, "打开文件失败!\n");
exit(1);
}
p = head->next;
while(p != NULL) {
q = p->next;
fputc(p->elem, fp);
//fwrite(&p->elem, sizeof(unsigned char), 1, fp);
free(p);
p = q;
}
printf("复制完成..\n");
fclose(fp);
return 0;
}
C/C++
#include<stdio.h>
#include<stdlib.h>
typedef struct node {
unsigned char elem;
struct node *next;
} Node, *List;
int main()
{
char file_name[255] = "d:\\梁静茹-今天情人节.mp3"; //d盘符下要有这个文件.
List head = (List)malloc(sizeof(Node));
List p, q;
int c;
FILE *fp;
if(head == NULL) {
fprintf(stderr, "malloc error!\n");
exit(1);
}
head->next = NULL;
q = head;
if((fp=fopen(file_name, "rb")) == NULL) {
fprintf(stderr, "打开文件失败!\n");
exit(1);
}
while((c=fgetc(fp)) != EOF) {
//while(fread(&c,sizeof(unsigned char), 1, fp)) {
p = (List)malloc(sizeof(Node));
if(p == NULL) {
fprintf(stderr, "malloc error!\n");
p = head;
while(p != NULL) {
q = p->next;
free(p);
p = q;
}
exit(1);
}
p->elem = c;
p->next = NULL;
q->next = p;
q = p;
}
fclose(fp);
if((fp=fopen("d:\\今天情人节副本.mp3", "wb")) == NULL) {
fprintf(stderr, "打开文件失败!\n");
exit(1);
}
p = head->next;
while(p != NULL) {
q = p->next;
fputc(p->elem, fp);
//fwrite(&p->elem, sizeof(unsigned char), 1, fp);
free(p);
p = q;
}
printf("复制完成..\n");
fclose(fp);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
FILE *fp=open(filename,mode);mode可以选择新建,打开文件。filename可以指定文件路径。
fwrite(fp,butter,length);就可以啦。
fwrite函数的参数记不清了,看MSDN吧。
fwrite(fp,butter,length);就可以啦。
fwrite函数的参数记不清了,看MSDN吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CString log;
log.Format("%s,%d", __FUNCTION__, __LINE__);
m_MyFileLog.Write(log);
return false;
log.Format("%s,%d", __FUNCTION__, __LINE__);
m_MyFileLog.Write(log);
return false;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询