Qt 에서 QString 대상 이 toStdString().data()를 사용 하면 오류 가 발생 합 니 다.
1178 단어 Qt
#include
#include
#include
int main(int argc, char *argv[])
{
QString m("china");
QString n("great");
const char *mstr = m.toStdString().data();
printf("mstr = %s
", mstr);
const char *nstr = n.toStdString().data();
printf("nstr = %s
", nstr);
return 0;
}
출력 결과 뻔:mstr=china nstr=great
하지만 내 가 이렇게 쓰 면:
#include
#include
#include
int main(int argc, char *argv[])
{
QString m("china");
QString n("great");
const char *mstr = m.toStdString().data();
const char *nstr = n.toStdString().data();
printf("mstr = %s
", mstr);
printf("nstr = %s
", nstr);
return 0;
}
답 은 변 하지 않 을 것 이다.그러나 하필 그렇지 않다.답 은 mstr=great nstr=great 이다.
내 가 설 치 를 마 쳤 을 때 문자열 출력 이 어 지 러 운 문 제 를 만 났 는데 바로 여기 서 한 짓 이 었 다.처음에 믿 지 않 았 는데 나중에 이런 작은 프로그램 을 써 서 해 보 았 는데 정말 문제 가 있 었 다.Qt 에서 이 tostdString().data()가 어떻게 실현 되 었 는 지 모 르 겠 습 니 다.앞으로 주의해 야 합 니 다.앞 에 있 는 방식 대로 써 야 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Qt로 문자와 이미지의 혼합 텍스트 그리기텍스트를 그리려면 QPainter::drawText 함수를 사용하지만 텍스트와 동시에 이미지 (아이콘 등)를 함께 그리기를 원합니다. QLabel와 QPushButton는 이미지와 텍스트를 표시하는 기능을 가지고 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.