2

ユーザー入力を C でファイル名として使用する方法を理解しようとしています。これが私が書いた簡単なプログラムです。

#include <stdio.h>
#define MAX 100

int main()
{
    FILE *fp;
    char name[MAX];


    printf("Enter filename: ");
    fgets(name, MAX, stdin);

    if((fp = fopen(name, "w")) == 0)
        printf("File cannot be opened!");

    return 0;
}

常に「ファイルを開けません」と表示されます。

4

3 に答える 3

8

fgets入力の改行を保持します。

于 2013-06-03T11:14:36.707 に答える
1

これは、この問題を解決するために fgets の後に追加する必要がある関数です

void newlineRemover(char *array)
{
    int i , lenght ;
    lenght = strlen(array);
    for(i = 0 ; i < lenght ; i++)
     {
        if(array[i] == '\n')
            array[i] = '\0' ;
     }
}
于 2013-06-03T11:20:38.167 に答える
0

「.txt」拡張子を追加する必要があります。そうすれば機能します。
次のプログラムは、次の日付の名前と同じディレクトリにある txt ファイルを開きます。

#include<stdio.h>
#include<string.h>
int main()
{
    char a[1000000],s[20];
    strcpy(s,__DATE__);
    int i,j,k,l;
    strcat(s,".txt");
    printf("%s",s);
    FILE *f,*ff;
    f=fopen(s,"w");
}
于 2015-12-02T11:00:04.157 に答える