[英]Opening a file in C using fopen
我正在尝试使用fopen在C中打开文件,但是我遇到了一个很奇怪的问题。 如果我这样做,则效果很好:
ptr_file = fopen("file.txt", "r");
但是,如果我尝试这样做是行不通的
char file_name[20];
printf("Enter file name");
scanf("%s",file_name);
ptr_file = fopen(file_name, "r");
file_name本身的值存储在一个简单的字符数组中,如果您输入相同的文件名,那么我在第一个和第二个实现之间确实看不到任何区别。 我觉得这里缺少明显的东西。
不管是否有尾随\\n
,都将其跳过为空白。 这是一个简单的示例:
#include <stdio.h>
int main() {
char file_name[20];
printf ("\nEnter a filename: ");
scanf("%[^\n]%*c", file_name);
FILE *ptr_file = fopen(file_name, "r");
if (!ptr_file)
fprintf (stderr, "\nError: failed to open '%s'\n\n", file_name);
else
printf ("\n Successfully opened file: '%s'\n\n", file_name);
/* do stuff with file */
if (ptr_file) fclose (ptr_file);
return 0;
}
输出:
$ ./bin/fileopen
Enter a filename: tolowercnvsn.c
Successfully opened file: 'tolowercnvsn.c'
它在以下方面同样有效:
scanf("%s", file_name);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.