Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从命令行正确接收数据时遇到的问题_C++_Loops_Command Line - Fatal编程技术网

C++ 从命令行正确接收数据时遇到的问题

C++ 从命令行正确接收数据时遇到的问题,c++,loops,command-line,C++,Loops,Command Line,我正在尝试在终端中制作自己版本的wc(字数统计)。 用户需要能够声明他们是否想要知道文件中的行数、字符数或单词数。它将按如下方式输入: mywc-l-w-c mywc-l-c(也可以) mywc(必须计算全部) 然而,我怎样才能做一个循环(或者我需要做的任何事情),只在必要时进行计算 我唯一能想到的办法就是循环**argv,看看我能不能找到-l-w或a-c,然后再做if语句 #include <iostream> #include <fstream> using name

我正在尝试在终端中制作自己版本的wc(字数统计)。
用户需要能够声明他们是否想要知道文件中的行数、字符数或单词数。它将按如下方式输入:

mywc-l-w-c

mywc-l-c(也可以)

mywc(必须计算全部)

然而,我怎样才能做一个循环(或者我需要做的任何事情),只在必要时进行计算

我唯一能想到的办法就是循环**argv,看看我能不能找到-l-w或a-c,然后再做if语句

#include <iostream>
#include <fstream>
using namespace std;

int main(int argc, char **argv)
{   
    for(int i = 1; i < argc; i++)
    {
        string l = "-l";
        string w = "-w";
        string c = "-c";

        if(argv[i] == l)cout <<"detected -l" << endl;
        else if(argv[i] == w)cout <<"detected -w" << endl;
        else if(argv[i] == c)cout <<"detected -c" << endl;
        else  
            cout <<"Must calculate all" << endl;
            break;
    }
    return(0);
#包括
#包括
使用名称空间std;
int main(int argc,字符**argv)
{   
对于(int i=1;i如果(argv[i]==l)cout我猜您也是在用python编写代码(要么就是这样,要么就是忘记了括号),那么您已经写了:

else
  cout <<"Must calculate all" << endl;
  break;
else

cout我猜您也是在用python编写代码(要么就是这样,要么就是忘记了括号),您已经写了:

else
  cout <<"Must calculate all" << endl;
  break;
else

cout我猜您也是在用python编写代码(要么就是这样,要么就是忘记了括号),您已经写了:

else
  cout <<"Must calculate all" << endl;
  break;
else

cout我猜您也是在用python编写代码(要么就是这样,要么就是忘记了括号),您已经写了:

else
  cout <<"Must calculate all" << endl;
  break;
else
cout这是因为“break”没有包含在“else”语句中

这就是为什么对任何if/else/while构造使用括号总是一个好主意;很容易在视觉上忽略这样一个bug

编辑:即使使用括号修复,代码也不会像您描述的那样运行。 使用括号修复,您的代码会将任何意外参数解释为“必须计算全部”。如果您希望“无参数”表示“必须计算全部”,则应添加一条If语句,以检查for循环外部的argc==1。

这是因为“break”未包含在“else”语句中

这就是为什么对任何if/else/while构造使用括号总是一个好主意;很容易在视觉上忽略这样一个bug

编辑:即使使用括号修复,代码也不会像您描述的那样运行。 使用括号修复,您的代码会将任何意外参数解释为“必须计算全部”。如果您希望“无参数”表示“必须计算全部”,则应添加一条If语句,以检查for循环外部的argc==1。

这是因为“break”未包含在“else”语句中

这就是为什么对任何if/else/while构造使用括号总是一个好主意;很容易在视觉上忽略这样一个bug

编辑:即使使用括号修复,代码也不会像您描述的那样运行。 使用括号修复,您的代码会将任何意外参数解释为“必须计算全部”。如果您希望“无参数”表示“必须计算全部”,则应添加一条If语句,以检查for循环外部的argc==1。

这是因为“break”未包含在“else”语句中

这就是为什么对任何if/else/while构造使用括号总是一个好主意;很容易在视觉上忽略这样一个bug

编辑:即使使用括号修复,代码也不会像您描述的那样运行。
使用括号修复,您的代码会将任何意外参数解释为“必须全部计算”。如果希望“无参数”表示“必须全部计算”,您应该添加一个if语句来检查for循环外部是否
argc==1

Cool,除了我刚键入“mywc”时,所有选项都在工作。当我只键入“mywc”时,没有错误,它只会关闭程序。当然,如果您不提供任何参数,您现在可以从I=1迭代到I=0(I<1,因为argc=1)因此,它不会在allCool执行循环,除了我只键入“mywc”时,所有选项现在都在工作。当我只键入“mywc”时,没有错误,它只会关闭程序。当然,如果不提供任何参数,您现在将从I=1迭代到I=0(I<1,因为argc=1)因此,它不会在allCool执行循环,除了我只键入“mywc”时,所有选项现在都在工作。当我只键入“mywc”时,没有错误,它只会关闭程序。当然,如果不提供任何参数,您现在将从I=1迭代到I=0(I<1,因为argc=1)所以它不会在allCool执行循环,除了我只键入“mywc”时,所有选项现在都在工作。当我只键入“mywc”时,没有错误,它只是关闭程序。当然:如果你不提供任何参数,你现在会从I=1迭代到I=0(I<1,因为argc=1),所以它根本不会执行循环