当前位置:首页 » 编程语言 » c语言保存到文件

c语言保存到文件

发布时间: 2023-02-01 03:33:19

1. c语言屏幕输出的内容如何保存到文件中

C语言中用流替换函数freopen可以从文件中读取数据或将数据输出到文件中。
需要引用库"stdio.h",即
#include<stdio.h>
freopen的声明如下:
FILE *freopen(const char * restrict filename, const char * restrict mode, FILE * restrict stream);
形参说明:
filename:需要重定向到的文件名或文件路径。
mode:代表文件访问权限的字符串。例如,"r"表示“只读访问”、"w"表示“只写访问”、"a"表示“追加写入”。
stream:需要被重定向的文件流。
返回值:如果成功,则返回该指向该输出流的文件指针,否则返回为NULL。
用法:
将输入流从stdin替换成指定文件可以从文件中读取数据;
将输出流从stdout替换成指定文件可以将数据输出到文件中。
下面举个例子:
#include<stdio.h>
int main(){
freopen("in.txt","r",stdin); //从in.txt中读数据
freopen("out.txt","w",stdout);//向out.txt中写数据
int a,b;
while(~scanf("%d%d", &a, &b)){
printf("%d %d\n");
}
return 0;
}

2. C语言:保存文件

你参考下面的程序
#include <string>
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;

struct Info
{
string m_Name;
string m_Code;
string m_ID;
string m_Sex;
string m_Addr;
//指针域
struct Info* Next;
};

typedef struct Info Node;//为结构取个别名。
typedef Node* Link;//为结构指针取个别名。

//-----------函数声明-----------------
Link Create(Link Head);
void Release(Link Head);
Link Add(Link Head);
Link Add(Link Head,fstream& ifile);
void Display(Link Head);
void Display(Link Head,fstream& ofile);
//-----------函数实现-----------------
Link Create(Link Head)
{//建立一个带头节点的空链表。
Head=(Link)new Node;//为Head分配一个节点的内存空间。
Head->m_Name="";
Head->m_Code="";
Head->m_ID="";
Head->m_Sex="";
Head->m_Addr="";
Head->Next=NULL;
return Head;
}

void Release(Link Head)
{
Link ptr;//声明操作用的指针。
while(Head!=NULL)
{
ptr=Head;//此处加一个ptr的目的是:可以索引到先前的那一块地址,用来释放。
Head=ptr->Next;
delete ptr;//此处释放。如果不加ptr,就找不到那个地址了。
}//while.
}

Link Add(Link Head)
{
Link pNew;//声明新节点指针。
Link ptr;//声明操作用的指针。
pNew=(Link)new Node;//分配内存。
if(!pNew)
cout<<"内存分配失败,添加数据失败!"<<endl;
//数据域
string name,code,id,sex,addr;
cout<<"-------------添加数据----------"<<endl;
cout<<"输入姓名:";
cin>>name;
cout<<endl<<"输入代码:";
cin>>code;
cout<<endl<<"输入身份:";
cin>>id;
cout<<endl<<"输入性别:";
cin>>sex;
cout<<endl<<"输入地址:";
cin>>addr;

pNew->m_Name=name;
pNew->m_Code=code;
pNew->m_ID=id;
pNew->m_Sex=sex;
pNew->m_Addr=addr;
//指针域
ptr=Head->Next;//保存指针。
Head->Next=pNew;//指向新节点。
pNew->Next=ptr;//链上后面的节点。(恢复指针)
cout<<endl<<"添加数据成功。"<<endl;
return Head;
}

Link Add(Link Head,fstream& ifile)
{//从文件读取数据。待测试...
ifile.seekg(0);//定位文件指针到文件开始处。
Link pNew;//声明新节点指针。
Link ptr;//声明操作用的指针。
while(!ifile.eof())
{//读完整个文件。
pNew=(Link)new Node;//分配内存。
if(!pNew)
cout<<"内存分配失败,添加数据失败!"<<endl;
//数据域
string name,code,id,sex,addr;
//cout<<"-------------添加数据----------"<<endl;
//cout<<"输入姓名:";
ifile>>name;
//cout<<endl<<"输入代码:";
ifile>>code;
//cout<<endl<<"输入身份:";
ifile>>id;
//cout<<endl<<"输入性别:";
ifile>>sex;
//cout<<endl<<"输入地址:";
ifile>>addr;
pNew->m_Name=name;
pNew->m_Code=code;
pNew->m_ID=id;
pNew->m_Sex=sex;
pNew->m_Addr=addr;
//指针域
ptr=Head->Next;//保存指针。
Head->Next=pNew;//指向新节点。
pNew->Next=ptr;//链上后面的节点。(恢复指针)

}
cout<<endl<<"从文件读取数据成功!"<<endl;
return Head;
}

void Display(Link Head)
{//在标准显示器上输出。
Link ptr;
ptr=Head->Next;
while(ptr!=NULL)
{
cout<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_Code
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Sex
<<left<<ptr->m_Addr<<endl;
ptr=ptr->Next;
}
}

void Display(Link Head,fstream& ofile)
{//重载Display(),在文件中保存。
Link ptr;
ptr=Head->Next;
ofile.clear();
while(ptr!=NULL)
{
ofile<<setw(15)<<left<<ptr->m_Name
<<setw(15)<<left<<ptr->m_Code
<<setw(15)<<left<<ptr->m_ID
<<setw(15)<<left<<ptr->m_Sex
<<left<<ptr->m_Addr<<" ";//只加一个空格。特别提醒:此处的换行符要去掉,否则会多读一行空格。
ptr=ptr->Next;
}

cout<<endl<<"保存数据到文件成功!"<<endl;
}

int main()
{
fstream iofile;
iofile.open("e:\\iofile.txt",ios_base::in|ios_base::out|ios_base::app);
iofile.seekg(0);
if(!iofile)
{
cout<<"iofile open failed."<<endl;
exit(-1);
}
Link list=0;
list=Create(list);//创建一个带头节点的空链表。

//---------菜单选项----------------

int loop=1;
while(loop)
{
cout<<"**************************************"<<endl;
cout<<"*--------------菜单选项--------------*"<<endl;
cout<<"*------------------------------------*"<<endl;
cout<<"* 1.输入数据 2.保存数据 3.读取数据 *"<<endl;
cout<<"* 4.显示数据 0.退出系统 *"<<endl;
cout<<"**************************************"<<endl;
int menu;
cin>>menu;
if(menu>4||menu<0)
{
cout<<"请按菜单对应的数字选择合适的操作,谢谢合作!"<<endl;
break;
}
switch(menu)
{
case 0:
cout<<"已退出系统!"<<endl;
loop=0;
break;
case 1:
list=Add(list);
break;
case 2:
Display(list,iofile);
break;
case 3:
list=Add(list,iofile);
break;
case 4:
Display(list);
break;
}//switch(menu)
}//while(loop)

Release(list);//释放链表。
iofile.close();
return 0;
}

3. c语言如何用文件存储数据

1、新建一个文件夹,并在文件夹中建立一个文档。

4. C语言文件读写结构体里面的数据怎样存到磁盘文件上

1、首先打开VC++6.0。

5. c语言编程中怎么用文件存储数据具体一点,谢谢

主要用C语言的库函数,有open write read 或者是fopen fwrite fread这几个函数,迅速就是先open 然后write,具体函数的用法可自行网络,如果你是问存储数据的格式的话,自己定义结构体存储的方式是最方便直接的

6. 用C语言怎么保存文件

部分代码:
...
while(head
!=
NULL)
{
fwrite(&head->math,
1,
sizeof(int),
fp);
依次保存其他字段,next字段不用保存。
你下次读出来的时候在重新组建链表既可.
head
=
head->next;
}
...

7. 手机如何将C语言编译的文件放到文件夹

手机将C语言编译的文件放到文件夹方法:
用F10点File,弹出下列框点save出现保存路径,把noname改为你自己想要的名字(可以是字母,数字)点Enter键就可以了。或着用F2也是保存。

8. C语言结构体如何存入文件

最好用2进制方法打开文件,用fwrite 写文件。读时也用用2进制方法打开文件,用fread读.x0dx0a这样,写的时候按整个结构写,读也按整个结构读,字符串有空白也没关系。x0dx0aFILE *fp;x0dx0a x0dx0afp=fopen("my.dat","wb");x0dx0afwrite(&stu,sizeof(stu),1,fp); // 写1个结构x0dx0afor (i=0;i<10;i++) fwrite(&student[i],sizeof(student),1,fp); // 写10个结构x0dx0afclose(fp);x0dx0a x0dx0afp=fopen("my.dat","rb");x0dx0afread(&stu,sizeof(stu),1,fp); // 读1个结构x0dx0afor (i=0;i<10;i++) fread(&student[i],sizeof(student),1,fp); // 读 10个结构x0dx0afclose(fp);

热点内容
sql语句logon 发布:2024-05-09 05:04:28 浏览:556
阿里云服务器异地登录 发布:2024-05-09 05:04:27 浏览:933
信息发布源码 发布:2024-05-09 05:00:11 浏览:694
安卓手机aac是什么 发布:2024-05-09 04:56:21 浏览:394
数据库的中文乱码 发布:2024-05-09 04:41:00 浏览:751
永劫无间服务器为什么那么烂 发布:2024-05-09 04:34:38 浏览:811
用哪个软件配置华为企业路由器 发布:2024-05-09 04:23:58 浏览:521
简易脚本 发布:2024-05-09 04:17:30 浏览:802
返校vlog脚本 发布:2024-05-09 04:15:53 浏览:619
vps云服务器免费租用 发布:2024-05-09 04:10:42 浏览:209