You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:45:03