當前位置:首頁 » 編程語言 » 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);

熱點內容
androidactivity生命 發布:2024-04-27 07:33:48 瀏覽:84
win2008伺服器搭建網站 發布:2024-04-27 07:26:51 瀏覽:640
java的vector 發布:2024-04-27 07:05:00 瀏覽:204
舊電腦共享伺服器 發布:2024-04-27 06:32:21 瀏覽:339
java程序練習 發布:2024-04-27 06:24:00 瀏覽:438
sql30 發布:2024-04-27 06:22:10 瀏覽:55
怎樣防止sql注入 發布:2024-04-27 06:11:25 瀏覽:236
安卓為什麼不能登蘋果系統的游戲 發布:2024-04-27 06:11:23 瀏覽:601
編程日課 發布:2024-04-27 05:56:54 瀏覽:620
漏洞上傳工具 發布:2024-04-27 05:50:58 瀏覽:717