如何从标准输入中指定文件名,然后读取同一文件?

问题描述

我正在逐字符读取文件,并将其与ascii值进行比较。目前,我正在指定要读取的文件,但是如果我希望用户为程序输入他们自己的文件怎么办? 示例下面的代码使用fopen(“ myFile.txt”,“ r”);

但是我希望用户选择自己的文件重定向到我的程序中。 例如a.out

 #include <stdio.h>
#include <stdlib.h>

int main(){

FILE *myFile = fopen("myFile.txt","r");
double count=0;
char single;

while((single = fgetc(myFile))!= EOF){

    if(single=='a'|| single == 'A'){
        A++;
        count++;
    }

}

返回0; }

解决方法

您可以使用fgets向用户读取文件名,然后尝试将其打开。

char str[MAX_LIMIT]; 
fgets(str,MAX_LIMIT,stdin);
FILE *myFile = fopen(str,"r");

请记住,您要打开的文件必须位于同一目录中,如果文件位于其他位置,则用户必须指定文件的完整路径。