-1

.txt ファイルを読みたいです。正しいパスを指定しても、次のエラーが発生します。

Error1: File is undeclared first time use in function 

Error2: file is undeclated first time use in function

\Uエスケープシーケンスとして取っています。私を案内してください。

#include <stdio.h>
#include <stdlib.h>   
int main(int argc, char *argv[])
{
   File *file = fopen("C:\Users\Admin\Desktop\files.txt", "r");
   char c;
   do 
   {
      c = fgetc(file);
      printf("%c",c);
   }
   while (c != EOF)    
   fclose(file);
   system("PAUSE"); 
   return 0;
}
4

4 に答える 4

4

File *fileする必要がありますFILE *file

fopen("C:\Users\Admin\Desktop\files.txt", "r");する必要がありますfopen("C:\\Users\\Admin\\Desktop\\files.txt", "r");

于 2013-07-04T10:39:27.687 に答える
4

これ:

File *file = fopen("C:\Users\Admin\Desktop\files.txt", "r");

2 つのエラーがあります。

  1. FILEタイプは、すべて大文字でそのように綴られます。C では大文字と小文字が区別されることに注意してください。
  2. 文字列内のバックスラッシュは、制御文字をエスケープするために使用されます。リテラルのバックスラッシュが必要な場合は、二重にする必要があります。

したがって、次のようになります。

FILE *file = fopen("C:\\Users\\Admin\\Desktop\\files.txt", "r");
于 2013-07-04T10:40:38.333 に答える
3
  • に変更FileFILEます。
  • while (c != EOF);に変更while(!feof(file));
  • ;の後にセミコロンを追加しwhileます。
  • 単一のバックスラッシュ\を二重のバックスラッシュに変更\\

コードは次のようになります。

FILE *file = fopen("C:\\Users\\Admin\\Desktop\\files.txt", "r");
 char c;
 do 
 {
      c = fgetc(file);
      printf("%c",c);
 }
while(!feof(file));  
fclose(file);

system("PAUSE");  
return 0;

このコードをテストしたところ、完全に機能しました:)

于 2013-07-04T10:47:48.450 に答える
1

すべてのバックスラッシュの書き込みをエスケープする必要があります"C:\\Users\\Admin\\Desktop\\files.txt"

于 2013-07-04T10:38:31.403 に答える