如何指代((fp=fopen(“test.txt”,“r”))==NULL)中的“test.txt”

编程题目是输入一个要打开的文件名并找出该文件的行数。
那么在编((fp=fopen(“test.txt”,“r”))==NULL)时test.txt应该是一个我输入的文件名,也就是说程序并不先前知道这个文件名是什么,那么该用什么呢来指代这个test.txt?

char  filename[50] = {0};
scanf("%s",filename);
FILE *fp = NULL;
if((fp=fopen(filename,"r"))!=NULL)
{
  
}

两种方法:

  1. 通过控制台传参
  2. 通过scanf函数输入

用一个char数组承载文件名即可
fopen传入两个char*参数,直接写名字是输入一个字符串常量的首地址,用字符串数组可以做到动态输入文件名
或者使用argv进行传入

img