C++ 相同的代码和不同的结果

C++ 相同的代码和不同的结果,c++,qt,C++,Qt,我想问你为什么这两个代码彼此不相等 如果没有GUI,则工作正常: string str; cin >> str; for(int n=0;n<=str.length();n++){ string total; total=conversion(str[n]); } string-str;cin>>str; 对于(int n=0;nlineEdit->text().toStdString(); 对于(尺寸n=0;n 如果您的程序有未定义的行为,它们会做一些奇怪

我想问你为什么这两个代码彼此不相等

如果没有GUI,则工作正常:

string str; cin >> str;

for(int n=0;n<=str.length();n++){
    string total;
    total=conversion(str[n]);
}
string-str;cin>>str;
对于(int n=0;nlineEdit->text().toStdString();
对于(尺寸n=0;n
如果您的程序有未定义的行为,它们会做一些奇怪的事情,比如在一种情况下工作,但在另一种情况下不工作


如果你的程序有未定义的行为,它们会做一些奇怪的事情,比如在一种情况下工作,但在另一种情况下不工作。

你能显示你得到的任何输出(以及打印输出的确切位置)吗?你是否验证了
ui->lineEdit->text().toStdString()
实际上返回了一些有意义的内容?您是否可以显示您得到的任何输出(以及打印此输出的确切位置)?您是否验证了
ui->lineEdit->text().toStdString()
实际上返回了一些有意义的内容?John您的想法并没有改变任何东西,我已经使用该方法打印了输出:QString qstr=QString::fromStdString(总计);QMessageBox msgBox;msgBox.setText(qstr);msgBox.exec();输出结果:ÿÜÿYÿHGüÿÿÿHGÿÿÿÿHGÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ255John你的想法没有改变任何东西,我已经用这个方法打印了输出:QString qstr=QString::fromStdString(total);QMessageBox msgBox;msgBox.setText(qstr);msgBox.exec();输出结果:ÿÜÿYÿHGüÿÿÿHGÿÿÿÿHGÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ255
string str = ui->lineEdit->text().toStdString();

for( size_t n = 0; n <= str.length(); n++ ) {
string total;
total= conversion(str[n]);
}
for(int n=0;n<=str.length();n++){
    string total;
    total=conversion(str[n]);
}
for(int n=0;n<str.length();n++){
    string total;
    total=conversion(str[n]);
}