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

您尝试通过强制转换将指针转换为 long。但是,您需要将字符数组(数字的文本表示)转换为数值。

Ben Voigt的System::Int32::Parse(c, NumberStyles::HexNumber)作品就可以了。

基本上,这与

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

也许这个?(:

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

例子:

浮动 f = 3.3; int n = static_cast(f);

于 2012-09-05T14:25:35.970 回答