程序要求是打开hosts文件,找到某一个行数据进行修改.
比如hosts文件里面有一行是"192.168.0.1         testserver"
现在要修改这一行为:"192.168.0.2         testserver"
出差在外,现在手边也没有书,还请大家帮忙,谢谢.下面代码是我添加一行新数据的代码.请帮忙看看如何修改?         const char *os = getenv("OS");
const char *windir = getenv("windir");
char nt[] = "Windows_NT";
char host[256];
if(strcmp(os, nt) == 0)
{
sprintf(host, "%s\\system32\\drivers\\etc\\hosts", windir);
}
else
{
sprintf(host, "%s\\hosts", windir);
}
FILE *pfile = fopen(host, "at");
if(pfile != NULL)
{
fputs("192.168.0.1         testserver\n", pfile);
fclose(pfile);
}

解决方案 »

  1.   

    使用fgets来读取一行,然后得到一个字符串,看该字符穿是否包含你想要的信息,如果包含的修改之
    建议你建立一个bak文件,在读的过程中,直接写bak,最后再将这个bak作为正式文件
      

  2.   

    用StdioFile读取一行,找到关键行,然后修改之。。
      

  3.   

    fscanf("%s %s",s1,s2);
    if(!strcmp("192.168.0.1",s1))
    {
    //这里最好要fseek一下
    fprintf("%s %s","192.168.0.2",s2);
    }
      

  4.   

    用StdioFile读取一行,判断是否你要的,然后修改之。。