#include#includefile*p;
struct record
m;//每次記錄de結構體
int main()
//輸入密碼
else
}return 0;
} void write()//寫入記錄
printf("please input according to the tips\ndate|money|way|\n");
fseek(p,-sizeof(struct record),2);
fread(&m,sizeof(struct record),1,p);
m.num++;
scanf("%s%f%s",m.j,&m.k,m.l);
m.yu_e=m.yu_e+m.k;
fseek(p,-0,2);
fwrite(&m,sizeof(struct record),1,p);
fclose(p);
}void inspect()//檢視記錄
else
}fclose(p);}}
void insert()//插入記錄
n;struct records*head,*p1,*p2,*p3,*p4;
if((p=fopen("c:\\users\\***x\\desktop\\cashbox.txt","rb"))==null)//注意這裡以「rb」形式開啟
else//將資料讀入鍊錶並進行操作
p2->next=null;
fclose(p);
if((p=fopen("c:\\users\\***x\\desktop\\cashbox.txt","wb"))==null)//這裡以wb形式開啟
else
p4=p1->next;
p1->next=p3;
p3->next=p4;
p1=head;
m=p1->o;
m.num=1;
d=0;
m.yu_e=d+m.k;
d=m.yu_e;
fwrite(&m,sizeof(struct record),1,p);
p1=p1->next;
for(i=1;i<=j;i++)//關鍵在於在讀入de時候搞定no.和餘額,考慮指標還有順序
}fclose(p);}}
void delete_()//刪除記錄
n;struct records*head,*p1,*p2,*p3,*p4;
if((p=fopen("c:\\users\\***x\\desktop\\cashbox.txt","rb"))==null)//注意這裡以「rb」形式開啟
else//將資料讀入鍊錶並進行操作
p2->next=null;
fclose(p);//鍊錶已構成
if((p=fopen("c:\\users\\***x\\desktop\\cashbox.txt","wb"))==null)//這裡以wb形式開啟
else
p3=p1;
p4=p1->next;
p3->next=p4->next;
}p1=head;
m=p1->o;
m.num=1;
d=0;
m.yu_e=d+m.k;
d=m.yu_e;
fwrite(&m,sizeof(struct record),1,p);
p1=p1->next;
for(i=1;i<=j-2;i++)//關鍵在於在讀入de時候搞定no.和餘額,考慮指標還有順序
}fclose(p);}}
}void clear()//清空記錄
fclose(p);
}
ARM嵌入式C語言設計小技巧
1 變數定義 先來看下邊的兩處變數定義 char a short b char c int d char a char c short b int d 顯然兩處定義的變數是相同的,不同之處在於定義的順序。看一下他們分別在資料區的布局 pad為無意義的填充空間 a pad b c padd a c b...
C語言 小知識
1.表示式的求值 初始值 x 1,y 1 z 1 求 x y z 答 從左到右順序依次求值,1 true 注意 因為 操作符的左運算元是true,所以沒有必要求值了.事實上c語言肯定不會繼續求值 有關規則,在按從左到右的順序對乙個邏輯表示式求值的時候,只要知道了它的實際結果,就不會對其餘部分求值.這...
c語言小知識
1 為什麼include標頭檔案後,就可以呼叫檔案中宣告的函式了?標頭檔案中一般只是函式和變數的宣告,編譯器需要知道函式傳遞的是什麼引數,否則呼叫的地方 不知道如何設定暫存器和棧等一些相關資訊。至於函式的位置,由於在其他的編譯單元中,需要鏈結 時才能找到。標頭檔案中包含了函式的宣告,其具體的函式 即...