3

次のコードを使用して に変換Const char *してUnsigned long intいますが、出力は常に0です。私はどこで間違っていますか?私にお知らせください。

これが私のコードです:

#include <iostream>
#include <vector>
#include <stdlib.h>

using namespace std;

int main() 
{
    vector<string> tok;
    tok.push_back("2");
    const char *n = tok[0].c_str();
    unsigned long int nc;
    char *pEnd;
    nc=strtoul(n,&pEnd,1);
    //cout<<n<<endl;
    cout<<nc<<endl; // it must output 2 !?
    return 0;
}
4

3 に答える 3

4

base-10 を使用:

nc=strtoul(n,&pEnd,10);

または塩基の自動検出を許可します。

nc=strtoul(n,&pEnd,0);

の 3 番目の引数strtoulは、使用する基数であり、基数 1 として指定しました。

于 2013-10-09T12:32:30.560 に答える