我正在尝试打印出一个字符串列表:
std::list<String> const &prms = (*iter)->getParams();
std::list<String>::const_iterator i;
for(i = prms.begin(); i != prms.end(); ++i){
log.debug(" Param: %s",*i);
}
但是我的程序崩溃并提示 Illegal Instruction
。我做错了什么?
最佳答案
*i
是一个 String
,而不是一个 char *
。如果 log.debug()
是 printf
系列的函数,您需要一个以零结尾的字符串。根据您的 String
类的实现方式,您可能有一个返回 const char *
的函数。
例如 std::string
函数是 c_str
:
for(std::list<std::string>::const_iterator i = my_list.begin(); i != my_list.end(); ++i)
{
printf("%s\n", i->c_str());
}
关于c++ - 遍历 C++ 中的字符串列表,出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7634093/