fopen、fwrite、fread 函式——讀寫結構體型別資料詳解
問題引入
幾個概念需要了解
- 檔案讀寫過程:開啟、讀、寫、關閉
- 結構體型別,也是一種型別,用簡單資料型別的思維去考慮複雜型別
fopen()函式
函式原型:
FILE *fopen(const char *path, const char *mode)
使用注意:需要判斷產生的檔案指標是不是空指標
fwrite()函式
函式原型:
size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream);
函式說明:fwrite()用來將資料寫入檔案流中. 引數stream 為已開啟的檔案指標, 引數ptr 指向欲寫入的資料地址, 總共寫入的字元數以引數size*nmemb 來決定. Fwrite()會返回實際寫入的nmemb 數目.
使用注意:prt指標當前指向的位置
fread()函式
函式原型:
size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream);
例項解析
//寫入兩個學生資料到結構體stua
//存入到結構體stub並讀出
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 5
#define SIZE (sizeof(struct stu))
#define PATH "demo.txt"
typedef struct stu{
char name[N];
int age;
}STU;
int main (void) {
STU stua[2], stub[2],*pa=stua, *pb=stub;
printf("Write File:\n");
for (int i=0; i<2; i++, pa++) {
scanf("\t%s%d", pa->name, &pa->age);
}
FILE *fp;
if ( (fp=fopen(PATH, "wb+")) == NULL ) {
printf ("Cannot open file\n");
getch();
exit(1);
}
pa = stua;
fwrite(pa, SIZE, 2, fp);
rewind(fp);
fread(pb, SIZE, 2, fp);
printf("\nRead File:\n");
for (int j=0; j<2; j++, pb++) {
printf("\t%5s %2d\n", pb->name, pb->age);
}
fclose(fp);
return 0;
}
相關推薦
fopen、fwrite、fread 函式——讀寫結構體型別資料詳解
問題引入 幾個概念需要了解 檔案讀寫過程:開啟、讀、寫、關閉 結構體型別,也是一種型別,用簡單資料型別的思維去考慮複雜型別 fopen()函式 函式原型: FILE *fopen(const char *path, const char *mode
記憶體分割槽、字串逆置函式讀寫發生訪問衝入的原因
題目:將一個字串逆置輸出 我下寫的程式碼如下: void reserve_string(char *string) { char tmp;//變數tmp用來做交換 char *first_str = string;//字串的首指標
C++通過jsoncpp類庫讀寫JSON檔案-json用法詳解
介紹: JSON 是常用的資料的一種格式,各個語言或多或少都會用的JSON格式。 JSON是一個輕量級的資料定義格式,比起XML易學易用,而擴充套件功能不比XML差多少,用之進行資料交換是一個很好的選擇。JSON的全稱為:JavaScript Object Notation ,顧名思義,JSON是用於標記
MySQL讀寫分離和多例項詳解
mysql讀寫分離的優缺點 資料庫讀寫分離的好處: – 減輕單臺伺服器的壓力,增加併發量,提高了硬體利用率 資料庫讀寫分離的缺點: – 單點故障 – 當訪問量大時,排程器的效能會成為瓶錦 讀寫分離環境: 51為主 52為從 57為排程器 1 部署Mysql主從同步結構,一主一從
STM32利用SPI讀寫SD卡的程式詳解
SD卡的讀寫驅動程式是運用FATFS的基礎,學了FATFS就可以在SD卡上建立資料夾及檔案了。我們先從main檔案瞭解一下程式的執行流程int main(void) { u16 i; USART1_Config(); for(i=0;i<1536;i++) send_data[
讀寫(read&write)視訊(video) 詳解 及 程式碼
讀取(read&write)視訊(video) 詳解 及 程式碼本文地址: http://blog.csdn.net/caroline_wendy/article/details/1708439
解析用PHP讀寫音訊檔案資訊的詳解(支援WMA和MP3)
<?php // AudioExif.class.php // 用PHP進行音訊檔案頭部資訊的讀取與寫入 // 目前只支援 WMA 和 MP3 兩種格式, 只支援常用的幾個頭部資訊 // // 寫入資訊支援: Title(名稱), Artist(藝術家), Copyright(版權), Descri
結構體型別資料作為函式引數(三種方法
(1)用結構體變數名作為引數。 複製程式碼程式碼如下: #include<iostream> #include<string> using namespace std; struct Student{ string name; int score; }; int mai
fopen , fread fwrite 函式讀寫二進位制檔案 問題總結
最近在解析 png 資料檔案, 發現一個檔案操作中容易忽略的問題,問題描述如下: 在使用 fread 讀二進位制檔案(png 圖片)的時候, 發現讀取到記憶體中的資料和 二進位制檔案中的資料不一致, 同樣, 在 使用 fwrite 寫二進位制檔案(png 圖片)的時候,
fopen、fclose、feof、fputc、fgetc、fread、fwrite、ftell、fseek、fscanf函式的用法
轉自:http://zhidao.baidu.com/question/212943472.html clearerr(清除檔案流的錯誤旗標) 相關函式 feof表頭檔案 #include<stdio.h>定義函式 void clearerr(FILE *
fopen()、fwrite()、fread()函數使用說明與示例
copyto turn 轉換 buffer data sig save 個數 讀數 fopen()函數: 1.作用: 在C語言中fopen()函數用於打開指定路徑的文件,獲取指向該文件的指針。 2.函數原型: [cpp] view plain copy F
Linux C---檔案操作(fopen、fwrite、fread等)的許可權問題
C語言中對檔案進行操作必須開啟檔案,開啟檔案主要涉及到fopen函式。 fopen函式的原型為: FILE* fopen(const char *path,const char *mode) 其中path為檔案路徑,mode為開啟方式1)對於檔案路徑,只需注意若未明確給出絕對路徑,則
Linux標準IO庫(fopen、fread、fwrite、fprintf、fscanf等)
Linux標準IO庫介面定義在stdio.h標頭檔案中,它的使用與底層檔案描述符類似,需要先開啟一個檔案來建立一個訪問路徑,此操作的返回值將作為其他IO庫函式的引數。 在標準IO庫中,與底層檔案描述符對應的是流(stream),它被實現為指向結構FILE的指標。 常用的標準I/O庫函
open()、fwrite()、fread()函數使用說明與示例
二進制文件 如果 否則 include size_t byte fwrite 註意 錯誤 fopen()函數: 1.作用: 在C語言中fopen()函數用於打開指定路徑的文件,獲取指向該文件的指針。 2.函數原型: FILE * fopen(const char * pat
50、mysql基於mysql-proxy讀寫分離實戰
一、主從配置 192.168.130.61 master 192.168.130.62 slave 192.168.130.63 proxy master配置 [mysqld] socket=/tmp/mysql.sock basedir=/usr/local/mysql datadi
三十一、索引的弊端之讀寫分離的引入
索引的弊端之讀寫分離的引入 索引=列值+rowid 索引
安裝Centos7 、 Mysql8 叢集,實現讀寫分離 高可用(三)-- 主從設定
零、寫在前面 為了嘗試新技術和業務需要,因此打算搞一套這樣的環境玩兒一下 作業系統及資料庫的安裝請見前兩篇一、理論依據 不再贅述我的硬體規劃等細節 這次僅用到兩臺虛擬機器,一主一
安裝Centos7 、 Mysql8 叢集,實現讀寫分離 高可用(四)-- MyCat讀寫分離
零、說在前面 先吐個槽,這點東西折騰了我四五天,最後還是一條告警拯救了我,下面進入正文 看了幾個MySQL的讀寫分離的中介軟體,貌似這個是比較流行的一個,雖然我不是BAT的粉絲,但是有好用的
windows 下 MySQL讀寫分離、主從複製、通過amoeba代理實現讀寫分離 配置全過程
配置環境: 1.mysql5.6 2.windowsXP 主從複製配置 主伺服器配置 配置my.ini檔案 查詢my.ini地址 my.ini檔案在MySQL Server 5.6目錄下 我的my.ini路徑: C:\Documents and Settings\All
MySQL/InnoDB中的鎖、悲觀鎖、共享鎖、排它鎖、行鎖、表鎖、死鎖與MySQL讀寫分離
MySQL/InnoDB的加鎖,一直是一個面試中常問的話題。例如,資料庫如果有高併發請求,如何保證資料完整性?產生死鎖問題如何排查並解決?我在工作過程中,也會經常用到,樂觀鎖,排它鎖,等。於是今天就對這幾個概念進行學習,屢屢思路,記錄一下。 注:MySQL是一個支援