0

ファイルから8バイトを読みたい。

StreamReader^ sr = gcnew StreamReader( "ReadMe.txt" );
long convert = 0;
array<Char>^c = nullptr;

while ( sr->Peek() >= 0 )
{    
   c = gcnew array<Char>(8);

   sr->Read( c, 0, c->Length );

   convert = (long) c; //<- the problem

   Console::WriteLine( c );
   Console::WriteLine( convert ); 
}

しかし、私はこの出力を取得します:

EA00A10C<-ファイルと同じ

37745844 <-間違っています(decをhexに変換しても)

注:atoiは型配列を取りません、私はarray.ToInt関数を見つけられませんでした..。

4

3 に答える 3

2

あなたはおそらく探しています

System::Int32::Parse(c, NumberStyles::HexNumber)
于 2012-09-05T14:18:45.860 に答える
0

多分これ?(:

http://msdn.microsoft.com/en-us/library/c36yw7x9(v=vs.80).aspx

例:

float f = 3.3; int n = static_cast(f);

于 2012-09-05T14:25:35.970 に答える
0

キャストするだけで、ポインタをlongに変換しようとします。ただし、文字配列(数値のテキスト表現)を数値に変換する必要があります。

System::Int32::Parse(c, NumberStyles::HexNumber)ベンVoigtから。

基本的に、これはと同じです

convert = strtol(&c[0], &c[7], 16);
于 2012-09-05T14:31:53.337 に答える