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())使用。从输入流中提取一整行,然后处理其中的每个命令。您可能需要将输出行包装成一个新的格式来完成此操作。您可能正在寻找 然而,通过while循环,您可以实现相同的结果——对某些功能感到害羞: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())使用。从输入流中提取一整行,然后处理其中的每个
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
...