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

C++中如何通过字符串拼接记录三次输入整数的日志?

问题描述

练习:
定义一个名为numbersLog的string对象和一个整数变量enteredNr。
要求用户输入三次整数值,每次将输入值存入enteredNr(覆盖之前的值!)
同时使用字符串拼接在numbersLog中记录这三个输入的数字。
在控制台输出该日志。

用户当前完成的代码:

std::string numbersLog;
int enteredNr{};
std::cout << "Enter an integer value: " << std::endl;
std::cin >> enteredNr;
std::cout << "Enter an integer value: " << std::endl;
std::cin >> enteredNr;
std::cout << "Enter an integer value: " << std::endl;
std::cin >> enteredNr;
解决方案

要实现字符串拼接记录输入的数字,核心是把整数enteredNr转换成字符串后追加到numbersLog中,以下是两种常用实现方式:

方法1:使用std::to_string()(C++11及以上版本适用)

每次读取完输入后,用std::to_string()把整数转成字符串,直接拼接到numbersLog里,还可以添加分隔符让日志更易读:

#include <iostream>
#include <string>

int main() {
    std::string numbersLog;
    int enteredNr{};

    // 第一次输入并记录
    std::cout << "Enter an integer value: " << std::endl;
    std::cin >> enteredNr;
    numbersLog += std::to_string(enteredNr) + " ";

    // 第二次输入并记录
    std::cout << "Enter an integer value: " << std::endl;
    std::cin >> enteredNr;
    numbersLog += std::to_string(enteredNr) + " ";

    // 第三次输入并记录
    std::cout << "Enter an integer value: " << std::endl;
    std::cin >> enteredNr;
    numbersLog += std::to_string(enteredNr);

    // 输出最终日志
    std::cout << "输入数字日志:" << numbersLog << std::endl;
    return 0;
}

方法2:使用std::stringstream(灵活的格式化方式)

如果需要更复杂的字符串格式化操作,比如混合多种数据类型拼接,std::stringstream是更合适的选择:

#include <iostream>
#include <string>
#include <sstream>

int main() {
    std::string numbersLog;
    int enteredNr{};
    std::stringstream logStream;

    // 第一次输入并写入流
    std::cout << "Enter an integer value: " << std::endl;
    std::cin >> enteredNr;
    logStream << enteredNr << " ";

    // 第二次输入并写入流
    std::cout << "Enter an integer value: " << std::endl;
    std::cin >> enteredNr;
    logStream << enteredNr << " ";

    // 第三次输入并写入流
    std::cout << "Enter an integer value: " << std::endl;
    std::cin >> enteredNr;
    logStream << enteredNr;

    // 将流中的内容转换为字符串存入numbersLog
    numbersLog = logStream.str();

    // 输出最终日志
    std::cout << "输入数字日志:" << numbersLog << std::endl;
    return 0;
}

关键说明

  • std::to_string():语法简单,适合仅需转换基本数据类型的场景,直接返回对应字符串。
  • std::stringstream:支持更复杂的格式化需求,比如设置输出精度、对齐方式等,功能扩展性更强。

内容的提问来源于stack exchange,提问作者NedeiMaPpia4eMaEGnus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:41:02