我希望用户在程序中输入他们想要的文件名,然后程序打开它。我不知道为什么它不起作用,请帮忙。如果我直接在代码上定义路径,它就会起作用。
这有效。
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) 不会处理文件名路径中的空格,因此“我的文档”将不起作用。
关于无法将 char 数组(文件名)传递给 fopen(file,r),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52305307/