0

別のディレクトリにあるファイルを開こうとしていますが、常にエラー メッセージが表示されます。私のコードは次のようになります。

#include <stdio.h>   
#include <stdlib.h>

int main()
  {
  FILE *file;
  char file_name[25];

  printf("What file do you want? ");
  scanf("%s", file_name);
  file = fopen("Dir1/Dir2/file_name","r"); 

  if( file == NULL ) 
  {
    printf("There is no file by that name\n");
    exit;
 }

問題は「fopen」部分にあると思われます。ファイル名 (例: file =fopen ("Dir1/Dir2/list.txt", "r")) を入力すると機能します。ただし、ユーザーにファイル名を入力してもらいたいと考えています。 。 ありがとう!

4

1 に答える 1

1

あなたのコードは、「file_name」という名前のファイルを開こうとします。私はあなたがこれを意味すると思います:

#include <stdio.h>   
#include <stdlib.h>

int main()
{
  FILE *file;
  char file_name[25];
  char path[80];

  printf("What file do you want? ");
  scanf("%s", file_name);
  snprintf(path, sizeof(path), "Dir1/Dir2/%s", file_name);
  // printf("Opening file %s\n", path);
  file = fopen(path,"r"); 

  if( file == NULL ) 
  {
    printf("There is no file by that name\n");
    exit;
  }
于 2013-10-27T09:09:30.230 に答える