リストボックスからデータを取得し、アカウント名を取得してから、SQLを使用してアカウントタイプを変更する関数を作成しようとしています。ただし、何らかの理由で、リストボックスアイテムに「fdsa \ t \tdungeonmaster」が含まれているが「asdf\t \ tuser」が含まれていない場合、このコードは正常に機能します。後のテストでは、「auser \ t\tuser」で失敗しました。メッセージボックス機能は、正しいデータが取得されていることを示します。これを引き起こしている可能性があるのは何ですか?
void ChangeAccountType(HWND hwnd, std::string NewType)
{
using namespace std;
string strQuery;
string strAccountName;
string strBuffer;
int nIndex = SendMessage(GetDlgItem(hwnd, IDC_LIST1), LB_GETCURSEL, 0, 0);
SendMessage(GetDlgItem(hwnd, IDC_LIST1), LB_GETTEXT, (WPARAM)nIndex, (LPARAM)strBuffer.c_str());
MessageBox(hwnd, strBuffer.c_str(), "", NULL);
for(int iii = 0; strBuffer[iii] != '\t'; iii++)
{
strAccountName += strBuffer[iii];
};
strQuery = "UPDATE account SET `account type` = \"" + NewType + "\" WHERE `User Name` = \"" + strAccountName + "\"";
}
そのすぐ上のメッセージボックスが完全に機能するため、エラーはforループ内のどこかで発生しているようです。何かアドバイスをいただければ幸いです。