c++ - 如何在 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;
也不确定这是否正确。
这里有任何指导吗?
解决方案
许多不同的方法来处理这个:
#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;
推荐阅读
- php - Facebook 营销 - 故事图片
- node.js - API从网关传递后超时,因此无法在客户端获得结果
- postgresql - PostgreSQL - 更改列时无法将 varchar 转换为枚举类型
- c - C程序在fork后挂起
- javascript - Typescript - React 中的多类型情况如何
- oracle - 使用 Oracle APEX 进行流程跟踪
- java - 使用 Criteria Builder 过滤联接表
- java - 如何在 Android 中绘制带有渐变的弧线?
- ruby - 使用 RHEL7 通用基础镜像创建自定义 Ruby Docker 镜像
- python - Windows Communication Foundation 上的 Python 客户端