文字列を 16 進数に変換する C++ プログラムを実行しています。それはコンパイルされますが、実行時に次のようにエラーが発生します。
デバッグ アサーションに失敗しました! (大野!)
Visual Studio2010\include\xstring
1440号線
式: 文字列の添字が範囲外です
そして、中止するしかありません...エラーのポイントまでは変換しているように見えるので、何が起こっているのかわかりません。私のコードは簡単です:
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
int main()
{
string hello = "Hello World";
int i = 0;
while(hello.length())
{
cout << setfill('0') << setw(2) << hex << (unsigned int)hello[i];
i++;
}
return 0;
}
このプログラムがすべきことは、各文字を 16 進数 (文字ごと) に変換することです。