C++ 从命令行正确接收数据时遇到的问题
我正在尝试在终端中制作自己版本的wc(字数统计)。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
用户需要能够声明他们是否想要知道文件中的行数、字符数或单词数。它将按如下方式输入: 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),所以它根本不会执行循环