3

我正在编写一个程序,它从用户那里读取一个字符串并使用它来处理一个请求。发出提示后,我可以期待以下三种可能的响应之一:

  1. 字符串字符串
  2. 字符串整数
  3. 细绳

根据用户给出的命令类型,程序将执行不同的任务。我在尝试处理用户输入时遇到了困难。为了清楚起见,用户将键入命令作为单个字符串,因此用户执行选项 2 的示例可能会在提示后输入“age 8”。在此示例中,我希望程序将“年龄”存储为字符串,将“8”存储为整数。什么是解决这个问题的好方法?

根据我在这里收集的信息,使用 strtok() 或 boost 可能是一种解决方案。但是,我都尝试过,但都没有成功,如果有人可以帮助使事情变得更清楚,那将非常有帮助。提前致谢

4

1 回答 1

6

使用获取一行输入后std::getline,您可以使用 astd::istringstream回收文本以进行进一步处理。

// get exactly one line of input
std::string input_line;
getline( std::cin, input_line );

// go back and see what input was
std::istringstream parse_input( input_line );

std::string op_token;
parse_input >> op_token;

if ( op_token == "age" ) {
    // conditionally extract and handle the individual pieces
    int age;
    parse_input >> age;
}
于 2012-04-17T15:26:13.510 回答