经常用到Qt的QString, C++的string, C语言的char *, 在这里记录它们之间所有的相互转换方法
QString
转string
QString str("I am string.");
cout << str.toStdString() << endl;
QString
转char *
Qstring
转char *
要注意一个缓冲区刷新的问题, printf("%s\n", res_str);
这样操作并不会刷新缓冲区, 中断无输出。
因为C++的缓冲区和C语言的缓冲区不是同一个。
使用 cout << endl;
才可以刷新刷新缓冲区
QString str("I am string.");
QByteArray bit_arr = str.toLatin1();
char *res_str = bit_arr.data();
printf("%s", res_str);
cout << endl;
string
转QString
string str = "I am string.";
qDebug() << QString::fromStdString(str);
string
转char *
string str = "I am string.";
const char *char_str = str.c_str();
printf("%s", char_str);
cout << endl;
char *
转QString
const char *str = "I am string.";
qDebug() << QString(str);
char *
转string
const char *str = "I am string.";
cout << string(str) << endl;