什么是/nqt,以及如何在不更改代码中的文件的情况下更改文件

  • 本文关键字:文件 情况下 代码 nqt c
  • 更新时间 :
  • 英文 :


所以我试图在指定的程序中输入多个文件。我的输入文件代码如下:

int read_File(int *hp, int *d, int *s, char t[])
{
FILE *infile;
infile = fopen("input1.txt", "r");
if (!infile)
{
return 0;
}
else 
{
fscanf(infile, "%d", hp);
fscanf(infile, "%d", d);
fscanf(infile, "%d", s);
fscanf(infile, "%s", t);
fclose(infile);
return 1;   
}

我做了

$>gcc指定的程序.c-o nqt

$>nqt输入1.xt

但如果我想读取input2.txt,我必须在代码中从input1.txt更改为input2.txt。有没有绕过它并读取input2.txt,而不在代码中从input1.txt更改为input2.txt

就像我尝试的时候/nqt input1.text=>这很正常但是/nqt input2.txt它的分段错误:11

我尝试过:改变";input1.txt";在代码"to"中;nqt";但这是个愚蠢的想法

BTW:什么是/nqt

请帮帮我!

您必须将main()写为下面的等效形式之一

int main(int argc, char **argv) { /*...*/ }
int main(int argc, char *argv[]) { /*...*/ }

以便CCD_ 2和CCD_
例如

$ ./nqt input.txt
^^^^^ ^^^^^^^^^ --> 1
\\-------------> 0

在您的程序中转换为

argc == 2
argv[0] ==> pointer to "./nqt"
argv[1] ==> pointer to "input.txt"
argv[2] ==> NULL

当涉及到nqt时,它是您在编译时使用-o标志指定的程序的名称:gcc assignedProgram.c -o nqt。为了运行程序,您需要使用./前缀,因此./nqt的意思是";运行名为"nqt"的程序;。

如果您想将文件名作为参数传递,您应该告诉main函数接受命令行参数:int argcchar* argv[](您可以在此处阅读(。然后,您将通过运行./nqt <filename>传递的文件的名称将存储在argv[1]中,您应该将其作为参数传递给read_File函数。

最新更新