立即读取输入字符串和用c++中的空格分隔的整数

Read at once inputs string and integer separated by a space in c++

本文关键字:空格 分隔 整数 c++ 读取 输入 字符串      更新时间:2023-10-16

我想知道,在C++中,是否有一种方法可以同时使用两种不同类型的变量包作为输入。例如,我应该从用户那里读取一个命令(一个字符串),后跟一个索引(一个整数),它们之间用空格分隔。

std::istream>>运算符被重载用于许多不同的类型。从std::istream继承>>的任何类都可以读取>>重载的所有类型的输入。这意味着您可以将>>运算符与std::cinstd::ifstreamstd::istringstream等一起使用,以读取多种类型。

您的案例的基本语法形式为

std::string s;
int n;
std::cin >> s >> n; // or std::ifstream, etc.

当然,你应该进行错误检查,以确保你确实收到了你想要的。您可以使用!运算符来检查流是否处于良好状态。因此,在您的情况下,您可能会使用以下内容:

std::string s;
int n;
if (!std::cin) {
  // error handling here
} else {
  std::cin >> s; // get the std::string
}
if (!std::cin) {
  // error handling here
} else {
  std::cin >> n; // get the int
}