关于变量的C ++问题:在字符串中添加一个整数[重复]

Posted

技术标签:

【中文标题】关于变量的C ++问题:在字符串中添加一个整数[重复]【英文标题】:C++ Question about variables : add an integer inside a string [duplicate] 【发布时间】:2021-05-19 16:44:25 【问题描述】:

我有一个带有两个标签(label 和 lblclicount)和一个按钮(butprint)的窗口的代码 这是我在 youtube 上找到的一个小教程,我只是在变量周围添加了一些文本来计算用户制作的 clic 数量 . 我只想学习 C++ 我知道如何用 VisualBasic 做到这一点。 这是教程的链接:https://www.youtube.com/watch?v=Gi3VuB--vjU 并在下面我尝试解释我不太了解但它有效的东西。

void MainWindow::on_butprint_clicked()

    static int nbrclic = 0;
    QString strnbrclic, texte;
    nbrclic++;
    ui->label->setText("Hello World");
    strnbrclic.sprintf("%i", nbrclic);
    texte= "Vous avez cliqué " + strnbrclic + " fois.";
    ui->lblcliccount->setText(texte);


我在想我能做到 ui->lblclicount->setText("Vous avez cliqué " + nbrclic + " fois.");(但它不起作用。)

而不是不得不做

strnbrclic.sprintf("%i", nbrclic);
texte= "Vous avez cliqué " + strnbrclic + " fois.";

我想我理解 strnbrclic.sprintf("%i", nbrclic); 将整数 nbrclic 转换为字符串,然后将我的文本和 nbrclic 的变量值添加到新的一行

texte= "Vous avez cliqué " + strnbrclic + " fois.";

我是法国人,如果我的问题不易于理解,我很抱歉。

提前致谢

【问题讨论】:

你有什么问题? 【参考方案1】:

要将 int 转换为字符串,您只需执行 to_string(your_int_here)

或者,只需使用<iostream>to_string 是标准 <string> 库的一部分,因此要么声明您是 using namespace std,要么将其用作 std::to_string

如果您将QString 用作Qt Core 库的一部分,那么要将其转换为标准std::string 格式,您可以调用your_variable_here.toStdString(),如他们在@ 的文档中所述987654321@

【讨论】:

谢谢你的回答我要去研究命名空间;它在 C++ 中似乎很重要。【参考方案2】:

SetText() 将 string 作为参数。在您提供的示例中,它之所以有效,是因为首先有一个 sprintf 指令:

strnbrclic.sprintf("%i", nbrclic);

有效地将 nbrclic(整数值)写入字符串 strnbrclic

那么你有:

texte= "Vous avez cliqué " + strnbrclic + " fois.";

其中concatenates三个字符串(strnbrclic是一个int写入字符串),所以没有类型错误。

你试图在你的代码中做的(那个不起作用的那个)是连接两个字符串和整数值,这是不可能的。为了使您的示例正常工作,您需要将nbrclic 写入字符串。

【讨论】:

感谢您的回答。现在我明白了,在 C++ 中我只能连接相同类型的值。 非常感激的伙伴。你的代码还能用吗?

以上是关于关于变量的C ++问题:在字符串中添加一个整数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

C 语言能不能在头文件定义全局变量?

关于C语言中变量在两个.C文件中的调用问题

在 R 中添加一个包含每个 FINAL 列表(在列表列表中)名称的变量

在 C 中,我如何评估一个函数中的局部变量,在不同的函数中?

如何在 C++ 中使用输入重定向添加整数

在同一个C语言程序项目中,其它.c文件可以访问另一个.c文件中的静态变量吗?