文件應用程序
1.將鍵盤輸入的字符流復制到指定的文件。
【參考解】程序?qū)崿F(xiàn)逐行復制從鍵盤輸入字符到指定文件,直至輸入空行結(jié)束。程序如下:
# include
FILE *fp;
void main()
{ int ch;
char fname[40];
printf("輸入文件名! \n");
scanf("%s% *c",fname);
fp=fopen(fname,"w"); /* 以寫方式打開正文文件 */
while((ch=getchar()) !='\n') { /* 逐行處理,至空行結(jié)束 */
do fputc(ch,fp); /* 行內(nèi)字符逐一復制 */
while((ch=getchar())!='\n'); /* 處理當前行 */
fputc(ch,fp); /* 輸出換行符 */
}
fclose(fp);
printf("程序復制鍵盤輸入字符結(jié)束.\n");
}
2.編制從鍵盤輸入整數(shù)序列,并接輸入順序輸出到指定的文件中的程序。
【參考解】程序循環(huán)地逐個從鍵盤輸入整數(shù),將整數(shù)輸出到指定的文件中。當程序發(fā)現(xiàn)不能從鍵盤輸入整數(shù)時結(jié)束循環(huán)。程序如下:
# include
FILE *fp;
int main()
{ int x, k;
char fname[40];
printf("輸入文件名! \n"); scanf("%s%*c", fname);
if((fp = fopen(fname,"w"))==NULL) { /* 以輸出方式打開正文文件 */
printf("不能打開文件%s. \n", fname);
return 0:
k = 1;
while(scanf("%d",&x) != l) { /* 能正確輸入一個整數(shù)循環(huán) */
fprintf(fp, "%d \t",x);
if(k++ %5== 0) fprintf(fp,"\n" );
fclose(fp);
printf("\n向文件%s輸出了%d個整數(shù).\n",fname,k-1);
return 1;
1.將鍵盤輸入的字符流復制到指定的文件。
【參考解】程序?qū)崿F(xiàn)逐行復制從鍵盤輸入字符到指定文件,直至輸入空行結(jié)束。程序如下:
# include
FILE *fp;
void main()
{ int ch;
char fname[40];
printf("輸入文件名! \n");
scanf("%s% *c",fname);
fp=fopen(fname,"w"); /* 以寫方式打開正文文件 */
while((ch=getchar()) !='\n') { /* 逐行處理,至空行結(jié)束 */
do fputc(ch,fp); /* 行內(nèi)字符逐一復制 */
while((ch=getchar())!='\n'); /* 處理當前行 */
fputc(ch,fp); /* 輸出換行符 */
}
fclose(fp);
printf("程序復制鍵盤輸入字符結(jié)束.\n");
}
2.編制從鍵盤輸入整數(shù)序列,并接輸入順序輸出到指定的文件中的程序。
【參考解】程序循環(huán)地逐個從鍵盤輸入整數(shù),將整數(shù)輸出到指定的文件中。當程序發(fā)現(xiàn)不能從鍵盤輸入整數(shù)時結(jié)束循環(huán)。程序如下:
# include
FILE *fp;
int main()
{ int x, k;
char fname[40];
printf("輸入文件名! \n"); scanf("%s%*c", fname);
if((fp = fopen(fname,"w"))==NULL) { /* 以輸出方式打開正文文件 */
printf("不能打開文件%s. \n", fname);
return 0:
k = 1;
while(scanf("%d",&x) != l) { /* 能正確輸入一個整數(shù)循環(huán) */
fprintf(fp, "%d \t",x);
if(k++ %5== 0) fprintf(fp,"\n" );
fclose(fp);
printf("\n向文件%s輸出了%d個整數(shù).\n",fname,k-1);
return 1;