我试过使用下面的代码将一个char传递给一个字符串,然后打开一个.txt文件,这样我就可以读取它的内容。我不知道为什么以及如何使用这个fopen来实际读取test.txt
int main(){
char input[60];
char a;
FILE *file;
printf("Hello!\n");
enter code here
printf("Pelase input a file name in .txt format: \n");
gets(input);
printf("%s",input);
printf("\n");
**file = fopen("%c,input","rt");**
//文件= fopen(“%s”,输入)〈--不起作用
//文件= fopen(“%s”,输入,rt)〈--错误
if (file){
while((a=fgetc(file))!=EOF){
printf("%c",a);
}
fclose(file);
}
}
1条答案
按热度按时间2g32fytz1#
如果您想将
".txt"
添加到用户输入的任何内容中,然后打开该文件,您可以用途:注意,我并不提倡使用
gets
,也不提倡在不检查缓冲区大小的情况下盲目地追加缓冲区,但这是实现您所需的最小必要更改,请参阅下面的内容了解为什么这两件事是一个坏主意。fgetc()
的返回值为,因此a
的类型应为int
。gets()
函数本质上是不安全的,已经从标准中删除。使用fgets()
或找到一个安全的用户输入函数。gets()
和某些scanf()
字符串一样,它将允许代码中的缓冲区溢出。