首页 > 解决方案 > 如何在 C++ 中创建一个指向整数和逗号串联的 char 指针?

问题描述

抱歉,如果条款不正确,请从此处开始使用 C++... 我有以下变量,其值可以是 1 或 0,具体取决于另一个脚本结果:

int number1, number2;

我需要将变量格式化为以新行结尾的“X,Y”,所以我做了:

char c_number1 = '0' + number1; //going from int to char
char c_number2 = '0' + number2;
char comma = ',';
char new_line = '\n';
char concat_result[100] = {c_number1 + comma + c_number2 + new_line};

在这里,我没有得到预期的结果“X,Y”,而是一个字母。

之后,我需要一个指向该 char 变量的指针,所以我写道:

const char *pointer_result = concat_result;

也不确定这是否正确。

这里有任何指导吗?

标签: c++

解决方案


许多不同的方法来处理这个:

#include <string>

std::stream result = std::to_string(number1) + "," + std::to_string(number2) + "\n";
const char *pointer_result = result.c_str();
#include <sstream>
#include <string>

std::ostringstream oss;
oss << number1 << ',' << number2 << '\n';
std::string result = oss.str();
const char *pointer_result = result.c_str();
#include <cstdio>

char result[5];
std::sprintf(result, "%d,%d\n", number1, number2);
const char *pointer_result = result;

推荐阅读