遍匈 / C囂冱秘壇縮殻 / 猟周荷恬 /

C囂冱參方象翠議侘塀響亟猟周

<貧匯准 和匯准>
fgets() 嗤蕉尫來?耽肝恷謹峪嬬貫猟周嶄響函匯佩坪否?咀葎 fgets 囑欺算佩憲祥潤崩響函。泌惚錬李響函謹佩坪否?俶勣聞喘 fread 痕方?屢哘仇亟秘痕方葎 fwrite。

fread() 痕方喘栖貫峺協猟周嶄響函翠方象。侭僚翠方象?匆祥頁飛孤倖忖准議方象?辛參頁匯倖忖憲?辛參頁匯倖忖憲堪?辛參頁謹佩方象?旺短嗤焚担尫崙。fread() 議圻侏葎?
size_t fread ( void *ptr, size_t size, size_t count, FILE *fp );
fwrite() 痕方喘栖?猟周嶄亟秘翠方象?万議圻侏葎?
size_t fwrite ( void * ptr, size_t size, size_t count, FILE *fp );
斤歌方議傍苧?
  • ptr 葎坪贋曝翠議峺寞?万辛參頁方怏、延楚、潤更悶吉。fread() 嶄議 ptr 喘栖贋慧響函欺議方象?fwrite() 嶄議 ptr 喘栖贋慧勣亟秘議方象。
  • size?燕幣耽倖方象翠議忖准方。
  • count?燕幣勣響亟議方象翠議翠方。
  • fp?燕幣猟周峺寞。
  • 尖胎貧?耽肝響亟 size*count 倖忖准議方象。

size_t 頁壓 stddef.h 遊猟周嶄聞喘 typedef 協吶議方象窃侏?燕幣涙憲催屁方?匆軸掲減方?械喘栖燕幣方楚。

卦指峙?卦指撹孔響亟議翠方?匆軸 count。泌惚卦指峙弌噐 count?
  • 斤噐 fwrite() 栖傍?刃協窟伏阻亟秘危列?辛參喘 ferror() 痕方殊霞。
  • 斤噐 fread() 栖傍?辛嬬響欺阻猟周挑硫?辛嬬窟伏阻危列?辛參喘 ferror() 賜 feof() 殊霞。

‐幣箭/貫囚徒補秘匯倖方怏?繍方怏亟秘猟周壅響函竃栖。
#include<stdio.h>
#define N 5
int main(){
 //貫囚徒補秘議方象慧秘a?貫猟周響函議方象慧秘b
 int a[N], b[N];
 int i, size = sizeof(int);
 FILE *fp;
 if( (fp=fopen("D:\\demo.txt", "rb+")) == NULL ){
 printf("Cannot open file, press any key to exit!\n");
 getch();
 exit(1);
 }
 
 //貫囚徒補秘方象 旺隠贋欺方怏a
 for(i=0; i<N; i++){
 scanf("%d", &a[i]);
 }
 //繍方怏a議坪否亟秘欺猟周
 fwrite(a, size, N, fp);
 //繍猟周嶄議了崔峺寞嶷仟協了欺猟周蝕遊
 rewind(fp);
 //貫猟周響函坪否旺隠贋欺方怏b
 fread(b, size, N, fp);
 //壓徳鳥貧?塋省闓?b議坪否
 for(i=0; i<N; i++){
 printf("%d ", b[i]);
 }
 printf("\n");
 fclose(fp);
 return 0;
}
塰佩潤惚?
23 409 500 100 222?L
23 409 500 100 222

fwrite()/fread() 痕方岷俊荷恬忖准?秀咏聞喘屈序崙圭塀嬉蝕猟周。萩堋響ゞC囂冱嶄猟云猟周嚥屈序崙猟周議曝艶〃阻盾厚謹。

嬉蝕 D:\\demo.txt?窟孖猟周坪否功云涙隈堋響。宸頁咀葎厘断聞喘"rb+"圭塀嬉蝕猟周?方象參屈序崙侘塀亟秘猟周?匯違涙隈堋響。

方象亟秘頼穎朔?了崔峺寞壓猟周議挑硫?勣?響函方象?駅倬繍猟周峺寞卞強欺猟周蝕遊?宸祥頁rewind(fp);議恬喘。厚謹購噐rewind痕方議坪否萩泣似?C囂冱rewind痕方
猟周議朔弸音匯協頁 .txt?万辛參頁販吭議?低辛參徭失凋兆?箭泌 demo.ddd、demo.doc、demo.diy 吉。
‐幣箭/貫囚徒補秘曾倖僥伏方象?亟秘匯倖猟周嶄?壅響竃宸曾倖僥伏議方象?塋菖敍祖刺蓮?
#include<stdio.h>
#define N 2
struct stu{
 char name[10]; //侖兆
 int num; //僥催
 int age; //定槍
 float score; //撹示
}boya[N], boyb[N], *pa, *pb;
int main(){
 FILE *fp;
 int i;
 pa = boya;
 pb = boyb;
 if( (fp=fopen("d:\\demo.txt", "wb+")) == NULL ){
 printf("Cannot open file, press any key to exit!\n");
 getch();
 exit(1);
 }
 //貫囚徒補秘方象
 printf("Input data:\n");
 for(i=0; i<N; i++,pa++){
 scanf("%s %d %d %f",pa->name, &pa->num,&pa->age, &pa->score);
 }
 //繍方怏 boya 議方象亟秘猟周
 fwrite(boya, sizeof(struct stu), N, fp);
 //繍猟周峺寞嶷崔欺猟周蝕遊
 rewind(fp);
 //貫猟周響函方象旺隠贋欺方象 boyb
 fread(boyb, sizeof(struct stu), N, fp);
 //補竃方怏 boyb 嶄議方象
 for(i=0; i<N; i++,pb++){
 printf("%s %d %d %f\n", pb->name, pb->num, pb->age, pb->score);
 }
 fclose(fp);
 return 0;
}
塰佩潤惚?
Input data:
Tom 2 15 90.5?L
Hua 1 14 99?L
Tom 2 15 90.500000
Hua 1 14 99.000000
<貧匯准 和匯准>

AltStyle によって変換されたページ (->オリジナル) /