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
相关产品推荐
相关产品推荐

