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

我想弄清楚如何将用户输入用作C中的文件名。这是我编写的简单程序。

#include  #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; } 

它始终打印“文件无法打开”。

fgets在输入中保留换行符。

这是一个函数,你必须在fgets之后添加以解决这个问题

 void newlineRemover(char *array) { int i , lenght ; lenght = strlen(array); for(i = 0 ; i < lenght ; i++) { if(array[i] == '\n') array[i] = '\0' ; } } 

你必须添加“.txt”扩展名然后它才会起作用。
以下程序在与以下日期名称相同的目录中打开txt文件:

 #include #include 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"); }