给个例子。。现在只知道readString是逐行读取想要逐个字符读取本来想下载MSDN的可是没什么时间了望高人指点。。谢谢

解决方案 »

  1.   

    楼主,先说说你用的是哪个类的ReadString,在文件读还是在什么地方读?要一个一个字符的读当然是可以的.
      

  2.   

    读文件吗?用Read可以啊,你一次读一个不就行了。这个函数可以指定一次读取的大小的。
      

  3.   

    那read里面的参数怎么设置呢??
      

  4.   

    给个例子:
    char pbuf[100];
    UINT nBytesRead = cfile.Read( pbuf, 100 );
    这是一次读100个字符,你想一次读多少就是多少,不过,上面的100个是你希望读的个数,返回值是实际读的个数。
    我不知道你的目的是什么,但是如果从效率上看,一个字符一个字符的读,程序执行效率是很低的。
      

  5.   

    因为我要分析每一个字符嘛····然后读取之后怎么将它写呢?用write?跟READ一样的么?
      

  6.   

    一样的,具体的用法去查MSDN吧
      

  7.   

    char* pszFileName="C:\\myfile.txt";       CStdioFile myFile;       CFileException fileException;
           if(myFile.Open(pszFileName,CFile::typeText|CFile::modeCreate|CFile::modeReadWrite),&fileException)       {
           char* pszFileName="C:\\test.txt";
        
           CStdioFile test;       CFileException fileException;       if(test.Open(pszFileName,CFile::typeText|CFile::modeReadWrite),&fileException)       {
            
    test.SeekToBegin();        char pbuf[1];
            UINT nBytesRead = test.Read( pbuf, 1 );      
          
           myfile.Write(pbuf,1);      

       
    }    }
           else       {              TRACE("Can't open file %s,error=%u\n",pszFileName,fileException.m_cause);       }
    }
    帮忙帮我看下到底哪里错了。。主要是写入的哪里因为我读取的是test.txt的内容。。然后想写入myfile.txt这个文件里面可是一直报错:
    C:\Program Files\Microsoft Visual Studio\MyProjects\2342342\2342342Dlg.cpp(205) : error C2065: 'myfile' : undeclared identifier
    C:\Program Files\Microsoft Visual Studio\MyProjects\2342342\2342342Dlg.cpp(205) : error C2228: left of '.WriteString' must have class/struct/union type本人基础比较差感谢大大们帮帮忙指点指点
      

  8.   

    具体去看MSDN,看CFile文件操作,再说MSDN上也有例子的
      

  9.   

    CStdioFile myFile;
    myfile.Write(pbuf,1);
    C语言是区分大小写的,myFile和myfile是不同的。
      

  10.   

    错是没错了。。我发现读取的不是test文件的内容啊因为输出结果就是12
    跟test文件的内容没关系郁闷了。
      

  11.   

    我试了你的代码,没什么问题啊,不过,你只读了一个字符,所以也只写了一个字符,另外,你用的是char,所以,处理不了中文,只能处理英文字符。
      

  12.   

    刚我弄错了。。不好意思。我现在还有最后一个问题就是假如我读取到的字符是存在ch这个变量当中的我现在要把他写入因为是用input_file.get(ch)读取字符这样貌似就不能用write()了。感觉很简单但是就是不知道怎么写入
      

  13.   

    为什么不能啊,input_file是什么啊?
      

  14.   

    因为我要对读取的字符操作啊比如123123*12312*123123123   write()不是要跟固定长度写入的吗?因为我是用*将这些字符隔开的然后分别对123123,12312,123123123,操作这些都是不固定长度的。所以感觉就不能用write。。不知道对不对?
      

  15.   

    write写入文件时,后面的参数是你想写入的字符的个数,实际写入的个数并不一定是这个,比如你的缓冲区中数据只有5个,你写成write(buff,10);最终的结果还是只写入了5个,这个函数的返回值是实际写入的字符个数。
      

  16.   

    myFile.write(ch,10);代码是这样的。ch声明的是char类型为什报错            error C2664: 'Write' : cannot convert parameter 1 from 'char' to 'const void *'什么意思???
      

  17.   

    刚打错了。。代码如果是myFile.Write(ch,10);还是报一样的错误
      

  18.   

    第1个参数要写指针,楼主写的是字符变量,不是指针,要这样.
    char ch[100]; 这里的100可多可少.但不可以少于你读入的数量.
    myFile.Write( &ch ,10);
      

  19.   

    //msdn上面的
    CFile cfile;
    cfile.Open(_T("Write_File.dat"), CFile::modeCreate | 
       CFile::modeReadWrite);
    char pbufWrite[100];
    memset(pbufWrite, 'a', sizeof(pbufWrite));
    cfile.Write(pbufWrite, 100);         
    cfile.Flush();
    cfile.SeekToBegin();
    char pbufRead[100];
    cfile.Read(pbufRead, sizeof(pbufRead));
    ASSERT(0 == memcmp(pbufWrite, pbufRead, sizeof(pbufWrite)));
      

  20.   

    全部读到CString后操作字符串效率高点,用GetAt可以返回一个字符
    CFile file;
    file.Open("0.txt",CFile::modeRead);
    int   len=file.GetLength();
    CString strText;
    file.Read(strText,len);
    file.Close();
    char c=strText.GetAt(i);
    file.Open("1.txt",CFile::modeWrite|CFile::modeCreate);
    file.Write(strText,strText.GetLenth());
    file.Close();