C/C++使用VOID指標儲存結構體資料到二進位制檔案並且讀取
程式如下:
主程式:
/*************************************************************************
> File Name: change.cpp
> Author: gaopeng
> Mail:
> Created Time: Sun 29 May 2016 05:11:34 PM CST
************************************************************************/
#ifndef PAR
#define PAR
#include
#include
#include
#include
using namespace std;
typedef unsigned int UINT;
typedef struct stuna
{
char name[20];
UINT id;
UINT sorce;
char grade[20];
} S_STR;
#endif
#include"fprt.h"
#include"fred.h"
int main(int argc,char *argv[])
{
cout<<"a.out name id sorce grade *fd"<<ENDL;
S_STR s_t;
if(argc < 6)
{
cout<<"a.out name id sorce grade *fd"<<ENDL;
exit(1);
}
if(strcpy(s_t.name,argv[1]) == s_t.name)
{
cout<<"name is load OK!"<<ENDL;
}
if(sscanf(argv[2],"%d",&(s_t.id)) == 1)
{
cout<<"id is load OK!"<<ENDL;
}
if(sscanf(argv[3],"%d",&(s_t.sorce)) == 1)
{
cout<<"sorce is load OK!"<<ENDL;
}
if(strcpy(s_t.grade,argv[4]) == s_t.grade)
{
cout<<"grade is load OK!"<<ENDL;
}
f_prt(&s_t,sizeof(S_STR),argv[5]);
f_read(argv[5],sizeof(S_STR));
return 0;
}
兩個函式
#include"fprt.h" 這個函式用來寫入結構體資料到檔案
/*************************************************************************
> File Name: fprt.h
> Author: gaopeng
> Mail:
> Created Time: Sun 29 May 2016 07:16:28 PM CST
************************************************************************/
#ifndef PAR
#define PAR
#include
#include
#include
#include
using namespace std;
typedef unsigned int UINT;
typedef struct stuna
{
char name[20];
UINT id;
UINT sorce;
char grade[20];
} S_STR;
#endif
#ifndef VOID
#define VOID
typedef void* VP;
#endif
int f_prt(const S_STR* s_in,UINT sz,const char *file )
{
FILE *fd;
VP p = (void *)malloc(sz);
if(memcpy(p ,(void *)(s_in),sz) == p)
{
cout<<"copy ok!"<<ENDL;
}
if((fd = fopen(file,"w")) == NULL)
{
cout<<"open file is error"<<ENDL;
exit(10);
}
cout<<"you data will load in file "<<FILE<<ENDL;
fwrite(p,1,sz,fd);
fclose(fd);
free(p);
return 0;
}
#include"fred.h" 這個函式用來讀取
/*************************************************************************
> File Name: fprt.h
> Author: gaopeng
> Mail:
> Created Time: Sun 29 May 2016 07:16:28 PM CST
************************************************************************/
#ifndef PAR
#define PAR
#include
#include
#include
#include
using namespace std;
typedef unsigned int UINT;
typedef struct stuna
{
char name[20];
UINT id;
UINT sorce;
char grade[20];
} S_STR;
#endif
#ifndef VOID
#define VOID
typedef void* VP;
#endif
int f_read(const char *file,UINT sz )
{
FILE *fd;
VP p = (void *)malloc(sz);
if((fd = fopen(file,"r")) == NULL)
{
cout<<"read open file is error"<<ENDL;
exit(11);
}
fread(p,1,sz,fd);
S_STR *my_st = (S_STR *)p;
cout << "read data from file " << file << endl;
cout << my_st->name <<ENDL;
cout << my_st->id <<ENDL;
cout << my_st->sorce <<ENDL;
cout << my_st->grade <<ENDL;< p>
fclose(fd);
free(p);
return 0;
}
比如你想把小明的ID和分數以及評級儲存到檔案tdata中
./a.out xiaoming 100 100 good tdata
程式執行如下:
a.out name id sorce grade *fd
name is load OK!
id is load OK!
sorce is load OK!
grade is load OK!
copy ok!
you data will load in file tdata
read data from file tdata
xiaoming
100
100
good
這樣就在執行目錄下生產了tdata檔案,我們可以用cdump -Cv 檢視tdata
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2113717/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- c++ 二進位制儲存檔案C++
- C++ 讀取二進位制檔案到char*C++
- 二進位制翻轉、結構體指標結構體指標
- C/C++ 二進位制讀寫 png 檔案C++
- C++讀二進位制檔案 及 C++設定double精度C++
- VB.net(C#同理)使用 ServiceStack.Redis 二進位制儲存、讀取影像C#Redis
- 關於C/C++ void指標,使用void指標拷貝int 陣列C++指標陣列
- 讀取海量資料到檔案並拆分排序排序
- go 自定義二進位制檔案讀寫-儲存倒排索引文件 idGo索引
- 批次提取畫素差異並儲存二進位制
- c# winform下sql圖片二進位制儲存/讀取/顯示/寫入XML/讀取XML顯示C#ORMSQLXML
- Python讀寫二進位制檔案Python
- 教你如何在C++二進位制檔案中注入git資訊C++Git
- 使用C++(I386+)編譯一個純二進位制檔案 (轉)C++編譯
- C#的二進位制檔案操作C#
- 注意C++中物件指標,慎用void*C++物件指標
- C++中結構體是使用例項還是指標C++結構體指標
- C++讀取txt檔案,並將每一行的資訊存入結構體陣列中C++結構體陣列
- 獲取微信小程式二維碼並且儲存微信小程式
- office檔案格式複合文件二進位制結構解析
- 使用UltraEdit 拷貝二進位制檔案
- 二進位制檔案記憶體對映記憶體
- Python -讀取,儲存檔案Python
- C++中的檔案輸入/輸出(5):二進位制檔案的處理 (轉)C++
- od 轉儲 二進位制檔案常用命令
- php如何上傳txt檔案,並且讀取txt檔案PHP
- 二進位制檔案複製
- php寫二進位制檔案PHP
- 二進位制檔案拷貝
- C/C++讀取SEGY檔案(三)C++
- flutter-讀寫二進位制檔案到裝置Flutter
- C/C++指標總結C++指標
- 二進位制檔案視覺化(二)視覺化
- python讀取檔案——python讀取和儲存mat檔案Python
- C++(2) 從yml或者txt讀取和儲存資料C++
- c++ (2-0) 從txt讀取和儲存資料C++
- INODE結構二進位制頁分析
- Android儲存讀取txt檔案Android