C++ 在c+中从一行输入读取多个命令+;

C++ 在c+中从一行输入读取多个命令+;,c++,C++,假设输入可以是“x”、“y”和“z”,并且对于每个commandX(),可以分别执行commandY()和commandZ()。不必每次键入然后按enter键(即:x(enter)commandX()执行,然后y(enter)commandY()执行…),我如何让用户只在一行(即:x y z(enter))中输入命令,然后按输入顺序连续执行命令?(即:在x,y,z中,执行顺序为commandX(),然后commandY(),然后commandZ())使用。从输入流中提取一整行,然后处理其中的每个

假设输入可以是“x”、“y”和“z”,并且对于每个commandX(),可以分别执行commandY()和commandZ()。不必每次键入然后按enter键(即:x(enter)commandX()执行,然后y(enter)commandY()执行…),我如何让用户只在一行(即:x y z(enter))中输入命令,然后按输入顺序连续执行命令?(即:在x,y,z中,执行顺序为commandX(),然后commandY(),然后commandZ())

使用。从输入流中提取一整行,然后处理其中的每个命令。您可能需要将输出行包装成一个新的格式来完成此操作。

您可能正在寻找

然而,通过while循环,您可以实现相同的结果——对某些功能感到害羞:

unsigned int i(1);
bool run_x(false), run_y(false), run_z(false);

while (i < argc and argv[i] == '-') {

    switch (argv[i + 1]) {

        case 'x':
            run_x = true;
            i += 2;
            break;

        case 'y':
            run_y = true;
            y_value = argv[i + 1];
            i += 3;
            break;

        case 'z':
            run_z = true;
            i += 2;
            break;

     }

}

使用布尔值和其他变量来控制哪些是可选的/哪些不是可选的。

@kayte没有
/program
,你是什么意思?您想如何运行应用程序?我的意思是如何在程序中而不是在命令提示符下运行应用程序。@kayte嗯,这取决于您的输入内容。您必须定义要作为参数传递给程序的内容,以便可以在程序中执行任何操作。如果这些
x
y
z
来自输入文件,则只需用从文件读取的字符数组替换数组
argv
./program -x -y 10 -z
./program -x -z
./program -z
./program -y 10 -z
...