#include <iostream>
#include <stdio.h>
using namespace std;
//这个例子是正常的代码,运行不会出现乱码的
int main( int argc, char *argv[] )
{
char roifilename[256];
string filename = "love";
int nameIdx = 1;
snprintf(roifilename, sizeof(roifilename), "/home/sdu/%s_%d.jpg", filename.c_str(), nameIdx);
cout << roifilename <<endl;
}
出现乱码问题主要是类型不匹配,
snprintf / printf 中的参数需要是char *的类型,如果你传入的是string类型的就会出现乱码问题,
解决方法:用c_str() 进行转化