如何读取文本中的十六进制字符串

knowxy 2010-04-14 03:01:20
我有一个 test.txt 文本
—————————test.txt-------------
00A4 A1E8 ¤ 00A7 A1EC § 00A8 A1A7 ¨ 00B0 A1E3 ° 00B1 A1C0 ±
00B7 A1A4 · 00D7 A1C1 × 00E0 A8A4 à 00E1 A8A2 á 00E8 A8A8 è
00E9 A8A6 é 00EA A8BA ê 00EC A8AC ì 00ED A8AA í 00F2 A8B0 ò
00F3 A8AE ó 00F7 A1C2 ÷ 00F9 A8B4 ù 00FA A8B2 ú 00FC A8B9 ü
0101 A8A1 ā 0113 A8A5 ē 011B A8A7 ě 012B A8A9 ī 014D A8AD ō
016B A8B1 ū 01CE A8A3 ǎ 01D0 A8AB ǐ 01D2 A8AF ǒ 01D4 A8B3 ǔ
01D6 A8B5 ǖ 01D8 A8B6 ǘ 01DA A8B7 ǚ 01DC A8B8 ǜ 02C7 A1A6 ˇ
02C9 A1A5 ˉ 0391 A6A1 Α 0392 A6A2 Β 0393 A6A3 Γ 0394 A6A4 Δ
................

,我想把它读入到下面结构中
struct 结构
{
十六进制数;
十六进制数;
字符;
}
这样写有问题
while(fscanf(stream,"%X %X %s ",psCT[i].uni,psCT[i].gb,psCT[i].cha)!=EOF)
{
i++;
}
请高手指教!
...全文
195 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2010-04-14
  • 打赏
  • 举报
回复
好像应该是
while(fscanf(stream,"%X %X %C ",&psCT[i].uni,&psCT[i].gb,&psCT[i].cha)!=EOF)
赵4老师 2010-04-14
  • 打赏
  • 举报
回复
struct s//结构
{
unsigned short uni;//十六进制数;
unsigned short gb;//十六进制数;
wchar cha;//宽字符;
} psCT[100];
这样写有问题
while(fscanf(stream,"%X %X %C ",psCT[i].uni,psCT[i].gb,psCT[i].cha)!=EOF)
{
i++;
if (i>=100) break;
}
huanmie_09 2010-04-14
  • 打赏
  • 举报
回复
fscanf函数对变量取地址.
金刚葫芦娃 2010-04-14
  • 打赏
  • 举报
回复



fread();
柯本 2010-04-14
  • 打赏
  • 举报
回复
看错了,最后一个是个串,这样可以了
while(fscanf(stream,"%X %X %s ",&psCT[i].uni,&psCT[i].gb,psCT[i].cha)!=EOF)
柯本 2010-04-14
  • 打赏
  • 举报
回复
试试:
while(fscanf(stream,"%X %X %c ",&psCT[i].uni,&psCT[i].gb,&psCT[i].cha)!=EOF)
knowxy 2010-04-14
  • 打赏
  • 举报
回复
deng啊!

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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