用户输入打开文件(字符串) - C.

时间:2013-06-03 11:13:00

标签: c file

我试图弄清楚如何将用户输入用作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;
}

它始终打印&#34;文件无法打开&#34;。

3 个答案:

答案 0 :(得分:8)

fgets会在输入中保留换行符。

答案 1 :(得分: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' ;
     }
}

答案 2 :(得分:0)

你必须添加&#34; .txt&#34;扩展然后它会工作。
以下程序在与以下日期名称相同的目录中打开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");
}