如题,先谢谢大家了呀

解决方案 »

  1.   

    如果文件是Unicode编码,可以一次读两字节。
      

  2.   

    比如我要读txt文本文件要如何读呢?
      

  3.   

    fgets() 
      从流中读一行或指定个字符,原型是char *fgets(char *s, int n, FILE *stream); 从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。 
    //C++ get() put()用读写顺序文件的方法复制文件
    #include<iostream.h>
    #include<fstream.h>
    void main()
    {
    char str[100];
    int i=0;
    ifstream e;
    e.open("ok.txt",ios::in); while(e)
    {
    e.get(str[i]);
    i++;
    } str[i]='\0';
    e.close();
    cout<<str<<endl; //------------- ofstream v;
    v.open("ok2.txt",ios::out);
    for(i=0;str[i]!='\0';i++)
    v.put(str[i]);
    v.close();
    }
      

  4.   

    可以用fgetc, fgetwc,具体见MSDN。Read a character from a stream. 从流中读取一个字符ANSI下用fgetc,UNICODE下用fgetwc。int fgetc( 
       FILE* stream 
    );wint_t fgetwc( 
       FILE* stream 
    );
      

  5.   

    一个一个字符读,可以
    FILE file;
    file=fopen(*,"r");
    while(!feof(file))
      fgetc(file);
      

  6.   

    txt文件也有多种编码方式,你用的是哪种?如果是自己决定编码,可以用Unicode,每次读两字节就可以了(用fgetwc也可以)。如果用ANSI编码,就需要先读1字节,如果大于0x80,再读一字节,两个合起来是一个字符。
      

  7.   

    我再重新说一下我的问题,可能开始没有说太清我的最终目的,我是想将文本文件读到EditBox编辑框中,这个我也实现了。
    但是主要问题是我想当编辑框满后,对其进行必要处理然后再将编辑框清空接着读取未读完的文件
      

  8.   

    那让文件指针file先不要close等完全读完了再close不就可以了吗
      

  9.   

    如何在读的过程中判断EditBox是否满了,也就是是否触发了EN_MAXTEXT事件,不能通过EditBox的最大字符数来判断因为字体不同所容纳的字符也不同。该如何办呢????
      

  10.   

    当宽度超过时触发了EN_MAXTEXT事件应该没什么问题吧,呵呵。一定要通过字符数控制吗?
      

  11.   

    我就是想通过触发EN_MAXTEXT事件来判断是否EditBox已满,但是在读文件的过程中好像不能触发EN_MAXTEXT事件,如何在读文件的过程中判断EditBox已满,然后将文件剩余的部分接着读入清空后的编辑框
      

  12.   

    EN_MAXTEXT是一个通告消息,当EditBox满了时会通告父窗口,此时在父窗口中响应这个消息,处理清空文本框的操作。建议以多线程的方式来处理这个问题,界面线程负责响应消息,工作线程读取数据文件。当然要注意两个线程之间的同步,当响应消息时,应将读取数据的线程挂起。
      

  13.   


    CEdit *pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);

    while (!isFull)
    {
    pEdit->SendMessage(WM_CHAR,(WPARAM)'s',0);
    }void CTestDlg::OnMaxtextEdit1() 
    {
    isFull=true;
    MessageBox("满了");
    }
    方法简陋,坐等高手
      

  14.   

    先读到一个buffer里,然后处理。