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