首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在QString中将sprintf转换为QtCreator

如何在QString中将sprintf转换为QtCreator
EN

Stack Overflow用户
提问于 2022-06-07 06:00:10
回答 2查看 136关注 0票数 -2

这条线我需要隐蔽到QString

代码语言:javascript
运行
复制
sprintf (comando, "/bin/ps -fu %s", getenv ("USER"));

我是这样的,但它不能给我看结果

代码语言:javascript
运行
复制
QString procesos= QString("procesos %1 %2 %3").arg(comando).arg("/bin/ps -fu %s").arg(getenv ("USER"));

我像这样在Qt上打印

代码语言:javascript
运行
复制
ui->label_11->setText(procesos);
EN

回答 2

Stack Overflow用户

发布于 2022-06-07 06:21:31

这些操作是不同的,sprintf不执行您在下面的代码片段中显示的操作。

.arg不能有格式说明符。也许你想

代码语言:javascript
运行
复制
QString procesos = QString("procesos %1").arg(
    QString("/bin/ps -fu %1").arg(getenv("USER")));

代码语言:javascript
运行
复制
QString procesos = QString("procesos %1").arg(
    QString().asprintf("/bin/ps -fu %s", getenv("USER")));

代码语言:javascript
运行
复制
QString procesos = QString("procesos /bin/ps -fu %1").arg(getenv("USER"));
票数 1
EN

Stack Overflow用户

发布于 2022-06-07 13:54:49

我认为你最初的尝试几乎是正确的。唯一的问题是尝试在第二个参数中插入一个%s,这在QString中是不被识别的,而且它甚至没有必要。您已经有了%3,它接受了第三个参数。

我自己还没有试过,但我认为简单地删除%s应该有效:

代码语言:javascript
运行
复制
QString procesos= QString("procesos %1 %2 %3").arg(comando).arg("/bin/ps -fu ").arg(getenv ("USER"));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72526524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档