例10.1キーボードからいくつかの文字を入力し、ユーザーが「#」を入力するまで、1つずつディスクに送ります.

2224 ワード

解題の考え方:fgetc関数でキーボードから文字を1つずつ入力し、fputc関数でディスクファイルに書けばいい.
#include 
#include 
int main()
  {FILE *fp;
   char ch,filename[10];
   printf("         :");
   scanf("%s",filename);
   if((fp=fopen(filename,"w"))==NULL)       //         fp      
	  {
       printf("       
"); // , " " exit(0); // */ } ch=getchar( ); // scanf printf(" ( # ):"); ch=getchar( ); // while(ch!='#') // '#' { fputc(ch,fp); // putchar(ch); // ch=getchar(); // } fclose(fp); // putchar(10); // , ASCII 10 return 0; }

例10.2は、あるディスクファイルの情報を別のディスクファイルにコピーする.次に、上記の例で確立するfile 1を要求する.Dataファイルの内容を別のディスクファイルfile 2にコピーする.dat中です.
問題を解く構想:この問題を処理するアルゴリズムはfile 1からである.Dataファイルに文字を1つずつ読み込んでfile 2に出力.dat中です.
#include 
#include 
int main( )
  {FILE *in,*out;
   char  ch,infile[10],outfile[10];     //         ,           
   printf("         :");
   scanf("%s",infile);                  //              
   printf("         :");
   scanf("%s",outfile);                 //              
   if((in=fopen(infile,"r"))==NULL)     //         
      {printf("       
"); exit(0); } if((out=fopen(outfile,"w"))==NULL) // {printf("
"); exit(0); } while(!feof(in)) // {ch=fgetc(in); // , ch fputc(ch,out); // ch putchar(ch); // ch } putchar(10); // fclose(in); // fclose(out); // return 0; }