我写了一个,希望能帮到你。
#include <afx.h>
#include <afxwin.h>
#include <iostream>
using std::cout;
using std::endl;
CWinApp theApp;
int main(int argc, char *argv[])
{
if (!AfxWinInit(GetModuleHandle(NULL), NULL, GetCommandLine(), 0))
{
cout << "panic: MFC couldn't initialize!" << endl;
return 1;
}
CFile sourceFile;
CFileException ex;
/*
打开文件。你可以用
if (!sourceFile.Open(argv[1],
CFile::modeRead | CFile::shareDenyWrite, &ex))
我这里就直接read.dat,方便。
*/
if (!sourceFile.Open("read.dat",
CFile::modeRead | CFile::shareDenyWrite, &ex))
{
TCHAR szError[1024];
ex.GetErrorMessage(szError, 1024);
cout << "Couldn't open source file: ";
cout << szError;
return 1;
}
else
{
int line=0;
//行数
int nposition=0;
//位置
char pbuf[1];
//读取字符存放
while(line!=3){
//从头查找下一个字符
sourceFile.Seek(nposition,CFile::begin);
//提取字符
UINT nBytesRead = sourceFile.Read( pbuf, 1);
//如果换行'\n',则行数加一
if(pbuf[0]=='\n')
line++;
nposition++;
}
sourceFile.Seek(nposition,CFile::begin);
UINT nBytesRead = sourceFile.Read( pbuf, 1);
//第四行字符的提取
while(pbuf[0]!='\n'){
sourceFile.Seek(nposition,CFile::begin);
UINT nBytesRead = sourceFile.Read( pbuf, 1);
cout<<pbuf[0];
nposition++;
}
sourceFile.Close();
}
return 0;
}