C++ 错误:无法转换‘;标准::基本字符串<;char>’;至‘;int’;委派

C++ 错误:无法转换‘;标准::基本字符串<;char>’;至‘;int’;委派,c++,C++,我得到以下代码的上述错误。请帮我解决我做错的事。此代码具有嵌套结构。目前,它根据用户提供的输入为生成结构生成名称 #include <iostream> #include <algorithm> #include <string> #include <iomanip> #include <limits> #include <stdio.h> #include <sstream> using namespace

我得到以下代码的上述错误。请帮我解决我做错的事。此代码具有嵌套结构。目前,它根据用户提供的输入为生成结构生成名称

#include <iostream>
#include <algorithm>
#include <string>
#include <iomanip>
#include <limits>
#include <stdio.h>
#include <sstream>


using namespace std;
using std::stringstream;
struct rootset {
  double totSize;
  const char *rStrtPtr;
  const char *rEndPtr;

  struct generations {
    double totSize;
    const char *genStrtPtr;
    const char *genEndPtr; 
    int numOfGen;
    int genName;

    struct object {
      double objSize;
      const char *objStrtPtr;
      const char *objEndPtr;
      string id;
      char markBit;
      char objPtr;


      struct freeList {
    double freeSpace;
    int flNumb; 
      };
    };
  } generation;
};

int main()
{

  int gen =0;
  cin >> gen;

  rootset* pRootSet = (rootset*)malloc(1200);

  for( i=0; i<gen; i++) {
    stringstream out;
    out << i;
   string s = out.str();
   string foo = "generation";

   pRootSet->generation.genName = foo.append(s);  /*Error is here*/
   cout<<"foo: "<<foo<<endl;
  }
}

generation.genName是INT类型,而您希望在不进行任何转换的情况下传递字符串值,这就是它给出错误的原因。解决方案:在之前进行转换

4
foo: generation0
foo: generation1
foo: generation2
foo: generation3