[code]CFile mFile;
if(mFile.Open("list.txt",CFile::modeRead)==0)
return;
CArchive ar(&mFile,CArchive::load);
ar>>strA1;
ar>>strA2;
ar>>strA3;
ar.Close();
mFile.Close();[/code]
这是我试验的代码,其中list.txt是一个汉字的区位码表,形如:
 a
1601
1602
2639
6325
7925 
 ai
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
6263
6440
7040
7208
7451
7733
7945
8616
 an
设断点跟踪,发现strA1的值是:
 a
1601
1602
2639
6325
7925 
strA2的值是:
 ai
1603
1
strA3的值是:
04
1605
1606
1607
1608
1609
1610
1611
1612
16我看得糊涂了 
1、到底ar的>>操作符是写到哪里为止结束的?好像没有什么规律的样子
2、当读入文件少于一定的字数时就会提示:试图越过其尾端对一未命名文件进行读写 连读.NET自己生成的README这么大的文件是都会出错,那到底要多大的文件才可以用ar读呢?在线等待个位高手的回答 谢谢 小弟是新手 请不要笑话

解决方案 »

  1.   

    strA1的值是:
    + strA1 {0x00377f98 "a
    1601
    1602
    2639
    6325
    7925
    "} strA2的值是:
    + strA2 {0x00378008 " ai
    1603
    "}strA3的值是:
    + strA3 {0x00378060 "1604
    1605"}list的输入有些错误 不好意思
      

  2.   

    CArchive是有一定格式的一般由他输入的才能用他输出(就是输入输出都是他--且格式一致,如果输入不是他,用他来输出就有问题)
      

  3.   

    楼上的意思是要 ar<<strsome;然后才可以
                   ar>>strA1;吗?
    那ar(mFile,CArchive::load);这一步的意义是什么呢?
      

  4.   

    yes.
    ar(mFile,CArchive::load);//1就是和文件连接,2就是说名是输入还是输出
      

  5.   

    高手能不能讲一下archive的用法呢?例如如何把ar的文件指针指向文件中特定的位置之类的 最好详细点 附上例子 分不够我加
      

  6.   

    自己顶一下 求CArchive教程~
      

  7.   

    ar>>strA1;
    会先读一到两个字节,如a前的空格即32
    所以就再读了32个字节到strA1
    建议用CStdioFile的ReadString或直接用Read()
      

  8.   

    想顺便请教各位 pMsg->wParam 的wParam对应的各项值及参数意义 谢谢
      

  9.   

    查MSDN,不同的消息不同的wParam含义
      

  10.   

    如果我想知道a到z和回车空格backspace对应的wParam值应该查什么呢?