ファイルの読み込みと書き込み機能

参考このブログでは、単純な仕上げのためのファイルの読み取りと書き込みの機能の2組。
1.fscanf()、fprintfの()フォーマットするための読み取りと書き込みのファイルへの
関数プロトタイプを

int fscanf ( FILE *fp, char * format, ... );
int fprintf ( FILE *fp, char * format, ... );

基づいて、オリジナルのscanfに()とのprintf()関数の複数のパラメータであるFILE *fp(ファイルハンドル)。
最初のパラメータは、関数fscanf()およびscanf()アクションと、標準入力に一致する場合。
データは、型パラメータ一貫した出力を入力することが注目される書式制御文字列!

int main()
{
   FILE * fp;
   char c[]="Hello world!";
   char buffer[20];

   fp = fopen ("file.txt", "w+");
   fprintf(fp,"%s",c);
  
   rewind(fp);	//定位到文件的开头。
   while(!feof(fp))
   {
   fscanf(fp, "%s", buffer); 
   printf("%s ", buffer);
   } 
   printf("%s\n", buffer);
   fclose(fp);
   
   return(0);
}

2.データ・ブロック・リード及びライト・ファイル機能:のfread()関数fwrite()関数の
関数プロトタイプ

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream)

即ちnmemb個のデータストリームのストリームにアレイの所与のサイズからのサイズの要素を読み取るPTRによって指さ。

int main()
{
   FILE *fp;
   char c[] = "hello world!";
   char buffer[20];
 
   /* 打开文件用于读写 */
   fp = fopen("file.txt", "w+");
 
   /* 写入数据到文件 */
   fwrite(c, strlen(c) + 1, 1, fp);
 
   /* 查找文件的开头 */
   fseek(fp, 0, SEEK_SET);
 
   /* 读取并显示数据 */
   fread(buffer, strlen(c)+1, 1, fp);
   printf("%s\n", buffer);
   fclose(fp); 
   return(0);
}

関数fscanfとfprintfの、関数freadやfwriteのデータのブロックを読んで比較すると、より速く読みください。しかし、彼らは多くの場合、サイクル回それを見つけ、しばらく(!FEOF(FP))が不正確で読んだとき、あること、欠陥があります。ファイルの終わりが残りの文字に応じて、ファイル識別子の端部が「/ 0」2バイトであるかどうかを決定することである()FEOFので、FEOF()は偽であるか、またはだけ読み出し終了場合「/」を読ん'/ 0' のときはfeof()== trueを返します。余分なサイクルを生成することになります。正確な規定を与えたデータのフォーマットのためしかし、この問題はで関数fscanfとfprintfのでは発生しません!

リリース元の2件の記事 ウォンの賞賛0 ビュー48

おすすめ

転載: blog.csdn.net/weixin_44091012/article/details/104612506