无法将两个命令行参数作为文件名传递给函数

时间:2014-12-18 07:23:44

标签: c function command arguments line

项目大约400行,这就是我把它放在pastebin

上的原因

只有3个功能需要两个文件才能工作

以下是他们的名字

  graph_dim(&argv[1]); //GLOBAL PARAMETER NBR_OF_BINS GETS UPDATED IN THIS FUNCTION!!!

  FILE_graph_reading(&argv[1]); //PRINTS GRAPH ON SCREEN TOO!!!! 

  FILE_reading_global_params(&argv[2]);

那是130-133。

这就是我得到的:

Usage: Complete_Test6 graph_filename parameters_filename

当我将if(argc!= 2)更改为if(argc!= 3)时,它没有显示该消息但程序仍然无效。但它应该自动。

消息是:

Matrix is unequal. Exiting...

那就是441号线。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

实际需要传递每个命令行参数的地址..?只需你可以传递每一个论点..

更改这些

graph_dim(&argv[1]); //GLOBAL PARAMETER NBR_OF_BINS GETS UPDATED IN THIS FUNCTION!!!

FILE_graph_reading(&argv[1]); //PRINTS GRAPH ON SCREEN TOO!!!! 

FILE_reading_global_params(&argv[2]);

   graph_dim(argv[1]); //GLOBAL PARAMETER NBR_OF_BINS GETS UPDATED IN THIS FUNCTION!!!

   FILE_graph_reading(argv[1]); //PRINTS GRAPH ON SCREEN TOO!!!! 

  FILE_reading_global_params(argv[2]);

以下程序作为参考,希望这对您有所帮助。

#include<stdio.h>
void grap(char * v);

int main( int c, char ** v)
{
if(c!=2)
return;
grap(v[1]);
}

void grap(char* v)
{
printf("%s\n",v);
}