无法将 char 数组(文件名)传递给 fopen(file,r)
Can't pass a char array (file name) to fopen(file,r)
我想让用户在程序中输入他们想要的文件名,然后程序打开它。我不知道为什么它不起作用,请帮忙。如果我直接在代码上定义路径,它就可以工作。
有效。
FILE *file;
file = fopen("C:\Users\Test\text.txt", "r");
if (file) {
index = 0;
while ((c = getc(file)) != EOF) {
printf("ok");
}
fclose(file);
} else {
printf("Can't open file");
}
这不行。
char inputFile[100];
printf("Enter file name: ");
scanf("%s", inputFile);
FILE *file;
file = fopen(inputFile, "r");
if (file) {
index = 0;
while ((c = getc(file)) != EOF) {
printf("ok");
}
fclose(file);
} else {
printf("Can't open file");
}
从代码读入时,您需要转义“\”,但 scanf 不那么聪明。您只需按原样输入文本!
C:\Users\Test\text.txt
此外,请注意 scanf ("%s", inputFile) 不会处理文件名路径中的空格,因此 "My Documents" 将不起作用。
我想让用户在程序中输入他们想要的文件名,然后程序打开它。我不知道为什么它不起作用,请帮忙。如果我直接在代码上定义路径,它就可以工作。
有效。
FILE *file;
file = fopen("C:\Users\Test\text.txt", "r");
if (file) {
index = 0;
while ((c = getc(file)) != EOF) {
printf("ok");
}
fclose(file);
} else {
printf("Can't open file");
}
这不行。
char inputFile[100];
printf("Enter file name: ");
scanf("%s", inputFile);
FILE *file;
file = fopen(inputFile, "r");
if (file) {
index = 0;
while ((c = getc(file)) != EOF) {
printf("ok");
}
fclose(file);
} else {
printf("Can't open file");
}
从代码读入时,您需要转义“\”,但 scanf 不那么聪明。您只需按原样输入文本!
C:\Users\Test\text.txt
此外,请注意 scanf ("%s", inputFile) 不会处理文件名路径中的空格,因此 "My Documents" 将不起作用。