怎么读取以下文件的第一行第二行,并替换了它。
(1)(2)行替换掉,但以后的不动。(1)Microsoft Visual Studio Solution File, Format Version 10.00
(2)# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ABC", "ABC\ABC.vcproj", "{67B7E78B-BA9C-4F63-8E8C-FA886A55DA26}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{67B7E78B-BA9C-4F63-8E8C-FA886A55DA26}.Debug|Win32.ActiveCfg = Debug|Win32
{67B7E78B-BA9C-4F63-8E8C-FA886A55DA26}.Debug|Win32.Build.0 = Debug|Win32
{67B7E78B-BA9C-4F63-8E8C-FA886A55DA26}.Release|Win32.ActiveCfg = Release|Win32
{67B7E78B-BA9C-4F63-8E8C-FA886A55DA26}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

解决方案 »

  1.   

    把每行读取到的文本保存成字符串数组,然后利用数组写入字符串到原文件:
    FILE* pfile;
    char line[1024]={0};
    char lines[100][1024]={0};
    int i=0;
    pfile=fopen("C:\\abc.txt","rt");
        while(!feof(pfile))
    {

    fgets(line,1024,pfile);
    strcpy(lines[i],line);
    i++; }

    fclose(pfile);
    strcpy(lines[0],"Micrsoft Internet Explorer");
    strcpy(lines[1],"Visual Studio 2008");
    pfile=fopen("C:\\abc.txt","wt");
    for (int i=0;i<100;++i)
    {
    if(lines[i][0]!='\0')
    {
    fputs(lines[i],pfile);
    fputc('\n',pfile);
    }
    }
    fclose(pfile);
      

  2.   

    大哥们,请问用MFC类怎么操作,上边的是C语言的。
      

  3.   

    2楼的如果写回去的字符长度比以前的小的话会有问题的,不能完全覆盖。这是写文件的一个弊端来的。很多人都是重新写一个文件来处理这个问题讨论一下写回去的长度小的时候怎样处理多余的字符问题。
    回楼上:MFC中是CFile
      

  4.   


    1.先把文件所有内容读出来,然后关闭文件句柄
    2.设置文件长度为0,就会清除之前的内容,代码如下:
     CFile file; CFileException fileExp;
    if(file.Open(_T("C:\\abc.txt"),CFile::modeWrite,&fileExp))
    {
    file.SetLength(0);
    file.Close();
    }
    3.将字符串数组修改之后,重新写入文件
      

  5.   

    CStdioFile
    ReadString读取一行
    WriteString写入一行
      

  6.   

    怕了你,自己一点都想不出思路吗,其实很简单的:
    1.读取文件内容:
    CString strLine[100];
    CStdioFile file;
    CFileException excep;
    CFileStatus status;
    CString name=_T("C:\\abc.txt");

    if(CFile::GetStatus(name,status))
    {
    int i=0;
    file.Open(name,CFile::modeRead);
    while(file.ReadString(strLine[i++]));

    file.Close();

    }
    strLine[0]=_T("Microsoft Visual Studio");
    strLine[1]=_T("Windows XP");
    2.清除原文件内容

    if(file.Open(name,CFile::modeRead,&excep))
    {
    file.WriteString(_T(""));
    file.Close();
    }
    3.将字符串数组写入到空文件if(file.Open(name,CFile::modeWrite,&excep))
    {
    for (int i=0;i<100;++i)
    {
    if(strLine[i]!=_T(""))
    {
                           //写入每行内容
           file.WriteString(strLine[i].GetBuffer(strLine[i].GetLength()));
           strLine[i].ReleaseBuffer();
                           //写入换行符
           file.WriteString(_T("\r\n"));
    }
    }
    file.Close();

    }
      

  7.   

    写错了,第二步改成:
    if(file.Open(name,CFile::modeWrite,&excep))
    {
    file.SetLength(0);
    file.Close();
    }