【问题标题】:C++ Question about variables : add an integer inside a string [duplicate]关于变量的C ++问题:在字符串中添加一个整数[重复]
【发布时间】: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.";

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

提前致谢

【问题讨论】:

  • 你有什么问题?

标签: c++ variables


【解决方案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++ 中我只能连接相同类型的值。
  • 非常感激的伙伴。你的代码还能用吗?
猜你喜欢
  • 1970-01-01
  • 2021-03-29
  • 1970-01-01
  • 2018-06-15
  • 2020-11-21
  • 2011-09-03
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
相关资源
最近更新 更多