首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个面试的有关问题

2012-03-01 
一个面试的问题有一文件其内容为:fied1 1fied2 1fied3 3.....要求把fied2 1 修改为 fied2 2怎么

一个面试的问题
有一文件其内容为:
fied1 = 1
fied2 = 1
fied3 = 3
.....

要求把fied2 = 1 修改为 fied2 = 2
怎么修改哦,使用语言为C

[解决办法]
先读到内存中,修改文件指针,把所需要修改的内容替换成你需要的.

修改文件指针有点复杂,也可以避开修改文件指针,下面是我以前写的部分代码,
和你需要的不太一样,希望对你有所帮助!

CString ReadWriteData::GetData(int line)//获得第 line 行文本数据行数
{
CString csline,csall;
int n=1;
CStdioFile file; 
int line1 = GetLine();
file.Open("ReadWrite.txt",CFile::modeRead,NULL);
while(n<=line)
{
if((file.ReadString(csline)!=NULL))
{
if(line1==0)
{
csall=csline;
}
else
{
csall = csline + "\r\n";
}
n++;
}
else
{
csall="";
break;
}

}
file.Close();
return csall;
}

int ReadWriteData::GetLine()// 获得文本文件中共有数据行数
{
CString csline;
int n=1;
CStdioFile file; 
file.Open("ReadWrite.txt",CFile::modeRead,NULL);
while(file.ReadString(csline)!=NULL)
{
n++;
}
file.Close();
return n;
}

void ReadWriteData::AddDataLastLine(CString str)//在文本文件的末尾行加上一行字符串 str 数据
{
CStdioFile file;
CFileException fileExecp;
str=str+"\r\n";
file.Open("ReadWrite.txt",CFile::modeCreate|CFile::modeNoTruncate|
CFile::modeWrite, &fileExecp);
file.SeekToEnd( );
file.WriteString(str);
file.Close();
}

void ReadWriteData::DeleteData(int line)//删除文本文件的第 line 行数据 
{
CString str="";
int MaxLine = GetLine(); 
if(line<=0 || line>MaxLine)
return;
int i;
for(i=1;i<=MaxLine;i++)
{
if(i != line)
{
str=str+GetData(i);
}
}
Write(str);

}

void ReadWriteData::Write(CString str)
{
CFile ffile("ReadWrite.txt",CFile::modeCreate| CFile::modeWrite);
ffile.Write(str,strlen(str));
ffile.Close();
}

热点排行
Bad Request.