文件操作
1.創(chuàng)建文件: FILE fp=fopen("C:\Users\1\Desktop\test.txt","a+");
"r+"讀寫文件(打開一個(gè)文件)
"w+"讀寫文件(新建一個(gè)文件)
"a+"讀寫文件(打開一個(gè)文件)在文本末尾追寫
fputc('字符',文件指針)放入一個(gè)字符
fgetc(文件指針)讀取一個(gè)字符
fputs("字符串",文件指針)放入串字符
fgets(字符數(shù)組,n,文件指針)從文件讀取n-1個(gè)字符并存到字符數(shù)組中,因?yàn)樽址麛?shù)組以'\0'結(jié)尾,所以只讀n-1個(gè),一行一行的讀取
fseek(文件指針,位移量,起始點(diǎn))
位移量:以起始點(diǎn)為標(biāo)準(zhǔn)
起始點(diǎn):SEEK_SET表示文件開始位置,
SEEK_CUR表示當(dāng)前位置,
SEEK_END表示文件末尾
fwrite(數(shù)組名,寫入數(shù)據(jù)長(zhǎng)度,寫入次數(shù),文件指針),該函數(shù)是將數(shù)組中的元素以二進(jìn)制的方式*寫入文本
fread(數(shù)組名,存入數(shù)據(jù)長(zhǎng)度,存入次數(shù),文件指針),該函數(shù)是將文件中的二進(jìn)制轉(zhuǎn)換后存入數(shù)組中
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
FILE *p=fopen("C:\\Users\\1\\Desktop\\test2.txt","a+");
int num1[]={1,2,3,4,5};
fwrite(num1,sizeof(num1),1,p);
return 0;
}
結(jié)構(gòu)體
struct 類名{數(shù)據(jù)類型};
一個(gè)結(jié)構(gòu)體所占據(jù)的字節(jié)空間不是簡(jiǎn)單的將內(nèi)部所有數(shù)據(jù)類型的字節(jié)空間相加,而是先對(duì)齊后,再相加
對(duì)齊規(guī)則:
1.占據(jù)內(nèi)存小的向大的對(duì)齊,比如char->int,int->p,對(duì)齊之后char占4個(gè)字節(jié),int占8個(gè)字節(jié),然后將對(duì)齊后的所有字節(jié)數(shù)相加,最終的結(jié)果才是這個(gè)類所占用的字節(jié)數(shù)
2.多個(gè)小的數(shù)據(jù)類型空間可以合成變成一個(gè)大的類型空間,比如i個(gè)char(1<=i<=4)一起對(duì)齊為一個(gè)int(4個(gè)字節(jié))型空間,同理i個(gè)char和一個(gè)int可以轉(zhuǎn)換為p(8個(gè)字節(jié))的空間,兩個(gè)int轉(zhuǎn)換為一個(gè)p
3.結(jié)構(gòu)體的總字節(jié)數(shù)等于內(nèi)部最大的數(shù)據(jù)類型所占字節(jié)的整數(shù)倍*
定義對(duì)象:類名?對(duì)象名;
?????類名?對(duì)象名指針;
非結(jié)構(gòu)體指針變量使用.來訪問成員變量
結(jié)構(gòu)體指針變量使用->來訪問成員變量
#include<stdio.h>
struct person{
int age;
};
int main(){
person xiaowang;
person *xiaoming=&xiaowang;
xiaowang.age=10;
printf("%d",xiaoming->age);
return 0;
}
結(jié)構(gòu)體內(nèi)聲明變量時(shí)不能被賦值,只能通過對(duì)象的調(diào)用來賦值