C++如何读取单行混合类型输入并拆分操作符与整数值
实现方案
C++ 的cin输入流默认会自动跳过空格、换行、制表符等空白字符,所以不需要手动做字符串拆分,有两种常用实现方式:
方案1:直接连续读取(最简单,适合绝大多数场景)
直接按顺序读取操作符和数值即可,cin会自动跳过两者之间的空白:
#include <iostream> int main() { std::cout << "Enter decision: "; char operation; int value; // 连续读取,自动跳过中间空格 std::cin >> operation >> value; // 可选:添加输入合法性校验 if (std::cin.fail() || (operation != 'i' && operation != 'r')) { std::cout << "输入格式错误,正确格式示例:i 3" << std::endl; return 1; } // 后续业务逻辑 return 0; }
方案2:先读取整行再拆分(适合需要留存原始输入的场景)
如果你需要先把整行输入存到字符串变量里再处理,可以用std::istringstream做拆分:
#include <iostream> #include <string> #include <sstream> int main() { std::cout << "Enter decision: "; std::string decision; // 读取整行输入 std::getline(std::cin, decision); char operation; int value; std::istringstream iss(decision); iss >> operation >> value; // 同样可以添加合法性校验逻辑 return 0; }
内容的提问来源于stack exchange,提问作者FayZ
相关产品推荐
相关产品推荐

