c++中的char型在c#中如何读取啊?

bolv6666 2007-11-02 12:31:53
如题,C++中某结构体中数据如下:
char cCountry[30]; //国家名
char cProvince[20]; //省名
char cStation[40]; //站名

c++中的char应该相当于c#中的sbyte吧,但是Filestream只能读取byte型的啊,请问各位有什么好方法啊?
...全文
383 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
soaringbird 2007-11-05
  • 打赏
  • 举报
回复
你就那样用就行了
bolv6666 2007-11-04
  • 打赏
  • 举报
回复
请各位帮帮忙啊
LLVVVVLL 2007-11-03
  • 打赏
  • 举报
回复
多谢soaringbird提供思路,但是你写的buffer只能是byte型数组,而题目中所说是sbyte型的,如果强制转换就会出错
soaringbird 2007-11-03
  • 打赏
  • 举报
回复
private string ReadAuthor(Stream binary_file) {
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
// Read string from binary file with UTF8 encoding
byte[] buffer = new byte[30];
binary_file.Read(buffer, 0, 30);
return encoding.GetString(buffer);
}
soaringbird 2007-11-02
  • 打赏
  • 举报
回复
fixed byte cCountry[30]; //国家名
symbol441 2007-11-02
  • 打赏
  • 举报
回复
关于在C#中调用C++ DLL 时的参数传递



如果DLL接口的输出参数为char**,也就是字符数组的数组(即字符串数组),此时在C#声明中应该使用byte[]来做参数。然后通过Encoding类对这个byte[]进行解码,得到字符串.
bolv6666 2007-11-02
  • 打赏
  • 举报
回复
请明示,连续的两个sbyte型构成了一个汉字字符,在C++里可以看到。但是如何如何在C#里将这连续的两个sbyte转成字符啊?成功便散分答谢
bolv6666 2007-11-02
  • 打赏
  • 举报
回复
但是C#中的char型是2个字节的0~65536,c++中的char是-128~127,这个问题怎么解决啊
ljypetrel 2007-11-02
  • 打赏
  • 举报
回复
BinaryReader br = new BinaryReader(new FileStream("e:\\tx.txt"));
cCountry=br.ReadChars(30);

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧