【问题标题】:Taking only one command line argument in putty using c使用 c 在 putty 中仅采用一个命令行参数
【发布时间】:2021-12-22 01:54:02
【问题描述】:

您好,我想编写只接受一个 c 输入文件的代码。 例如,我想要输入文件的名称是 shortinput.txt ! 所以我将在 putty 上使用一个命令行参数,并且我还想让代码只得到一个参数。如果命令行参数的数量不是 1(零或大于 1),那么应该 在显示屏上打印使用字符串并退出程序。使用字符串如下所示: 用法:./hw2 input_filename

问题就在这里。在下面的代码中,我想打印错误不仅参数为空,而且不止一个!

int main(int argc, char* argv[]){
 if(argv[1]==NULL||argv[2]||argv[3])//where i want to fix  
 {
     printf("usage: ./hw2 input_filename"); 
 }  
 FILE *fp =fopen(argv[1],"r"); 
 if(fp==NULL){
     printf("The input file does not exist.\n"); 
    } 
 }

【问题讨论】:

  • 这就是argc 的用途。它告诉你有多少个参数(包括可执行文件名)。
  • 如果有 3 个参数,那么 argv[3] 不会为空。那么,有什么问题呢?
  • 您正在尝试访问argv[1]argv[2]argv[3],如果参数较少,这可能会导致您出现分段错误。先检查argc的值,然后才访问。

标签: c arguments


【解决方案1】:

您想检查传递了多少参数。你有 argc 参数。

if(argc != 2)
{
    printf("usage: ./hw2 input_filename");
    /* do more (exit etc) */
}

【讨论】:

  • @Lundin 可能...但他也可以要求用户输入一个
  • 非常感谢您的评论! :)
猜你喜欢
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
  • 1970-01-01
相关资源
最近更新 更多