我尝试使用以下代码将字符串传递给字符串并打开.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");**
// file = fopen("%s",输入)< - 不起作用
// file = fopen("%s",input,rt)< - 错误
if (file){
while((a=fgetc(file))!=EOF){
printf("%c",a);
}
fclose(file);
}
}
答案 0 :(得分:0)
如果要将".txt"
添加到用户输入的内容中,请打开:
gets (input);
strcat (input, ".txt");
file = fopen (input, "r");
不是我主张使用gets
或者在没有先检查大小的情况下盲目附加到缓冲区,但这基本你需要做什么。
其他问题:
fgetc()
的返回值是,a
的类型应为int
。
gets()
功能本质上是不安全的。使用fgets()
或找到safe user input function。
不要盲目追加缓冲。与使用gets()
和某些scanf()
格式字符串一样,它将允许代码中的缓冲区溢出。