首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用%s的C++嵌套循环

使用%s的C++嵌套循环
EN

Stack Overflow用户
提问于 2019-12-17 16:46:57
回答 3查看 139关注 0票数 1

(对C++完全陌生。(来自python)

名称向量:namelist,统计向量:statlist。每个名称都是一个mysql表,每个stat是该表中的一个列。

代码语言:javascript
复制
for (unsigned int i = 0; i < namelist.size(); i++)
{
    for (unsigned int j = 30; j < statlist.size(); j++)
    {
        string selectcolumn = "SELECT %s FROM %s.%s", statlist, statlist, namelist;
        const char* c = selectcolumn.c_str();
        qstate = mysql_query(conn, c);
    }
}

(我不希望人们为我做这件事,我只是需要一些指导/建议。任何帮助都是非常感谢的!)

每一列行将按百分位数排列,然后按10分成组,然后放到另一个表中。

  1. 如何正确地将变量关联到这里的循环中的%s字符串?
  2. 是否需要在选择时为每一列动态生成向量?
  3. 一旦我选择了一个表列,我需要使用一个while循环吗?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-12-17 16:58:05

如果我们看不出statlistnamelist是什么类型,我们只能假设它们是std::vector的。我真的不知道这是否是您想要的“逻辑”,但是您可以这样连接字符串:

代码语言:javascript
复制
for (unsigned int i = 0; i < namelist.size(); i++)
{
    for (unsigned int j = 30; j < statlist.size(); j++)
    {
        std::string selectcolumn = "SELECT " + statlist[j] +"FROM " + statlist[j] + "." + namelist[i];
        const char* c = selectcolumn.c_str();
        qstate = mysql_query(conn, c);
    }
}
票数 1
EN

Stack Overflow用户

发布于 2019-12-17 17:22:11

  1. 如何正确地将变量关联到这里的循环中的%s字符串?

如果您正在寻找与您在Python中所做的工作直接等价的内容,那么您可能正在寻找printf()

但是,我可能会按照其他人的建议,将字符串直接连接起来:

代码语言:javascript
复制
string selectcolumn = "SELECT " + statlist " FROM " + statlist "." + namelist;

尽管如此,如果我不警告您有关SQL注入的话,我会对您造成不利影响,您只需将这些数据插入查询中即可。有有很多方法来防止这种情况,但我不确定这如何应用于C++,因为您似乎在使用某个第三方SQL库。不过,我认为原则是一样的。

2.我是否需要在选择时为每一列动态生成一个向量?3.一旦我选择了一个表列,我需要使用while循环吗?

这实际上取决于您使用什么来与SQL服务器进行接口,以及数据是如何返回给您的。这方面的细节尚不清楚,这部分不可能得到恰当的回答。

票数 2
EN

Stack Overflow用户

发布于 2019-12-17 16:51:40

考虑到statlistnamelist也是字符串,您可以使用连接运算符(C++中的“+”)。

例如,在本例中,您可以这样做:

代码语言:javascript
复制
"SELECT " + statlist + " FROM " + namelist + "." + statlist
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59378665

复制
相关文章

相似问题

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