修改内容-C语言修改文件中某一行

问题描述

C语言修改文件中某一行

RT,在vc2010下,做的学生管理系统。没有采用链表。
已经找到所要修改的行,并且修改成功,在内存中已经看到修改后的结果,并用fflush写回文件。
但是文件就是没有改变,上代码,求帮助,已经卡在这一天半了。

 #include"head_1.h"
void change_stu(int id,char name[20],float score)
{
    FILE *fp2;
    char str[20];
    char a[20];
    int ch2;
    int i;
    int j;
    char *path2="E:\wangdao\C\student system\Usr_infor_t.txt";
    fp2=fopen(path2,"r+");
    ch2=0;
    i=0;
    printf("输入要修改的学生n");
    fflush(stdin);
    scanf("%d",&i);
    printf("按格式输入修改的数值n");
    while (!feof(fp2))
    {

       while(fscanf(fp2,"%d",&ch2)!=EOF)
      {
          if(i==ch2)
        {
            for(j=0;j<2;j++){
                gets(str);}
            fgets(a,20,fp2);
            printf("%sn",a);
            strcpy(a,str);
            fprintf(fp2,a);
            fflush(fp2);
            printf("%sn",str);
            break;
        }else{
            fgets(str,20,fp2);
          }
       }
       break;
    }
    fclose(fp2);
    system("pause");
}

解决方案

fopen(path2,"r+");
把这里改成rw+试试。

希望能帮到你。

解决方案二:

想要修改某一行,先要把文件中的数据全部读到内存中,然后修改完指定的内容之后,再写到文件里。先一读的方式打开文件,读完了关闭,然后再以写的方式打开,写完了关闭文件,读写不能同时进行

解决方案三:

对文件的操作注意关于关闭文件的问题,读取完后关闭文件,重新打开文件进行写操作,写完记得关闭文件!

解决方案四:

fprintf后close文件

时间: 2024-10-28 14:38:10

修改内容-C语言修改文件中某一行的相关文章

利用C语言替换文件中某一行的方法_C 语言

文件中存贮的内容如下所示: 11 1122 0 1122 * * 0 0 22 222 0 222 * * 0 0 33 333 0 333 * * 0 0 通过使用下面的几个函数,fopen,fprintf,fscanf,fseek,ftell . 具体的函数函数原型如下所示: FILE*fopen(const char*filename,const char *mode); int fprintf(FILE*stream,const char *format,...) int fscanf(

asp.net 多个css文件内容自动放到一个文件中

没事做,写了一个把多个css文件合并到一个文件中的方法,因为开发时,为了方便修改和共用css,我们可能会在页面引用4.5个css文件 ,但是实际运行中,我们是手动把css放到html 中去的 ,这样运行时页面显示快点,实际上是如此,但是每次修改的工作量是很大的,本地修改之后不能原封不动地放到服务器上去,在服务器上又要手动修改页面中的css. 在asp.net mvc模式中,我们可以把css的内容放到一个部分视图中,在head标签之间包含这个视图,那样运行时css就在html中了,我下面这个方法就

c语言-C语言的文件中,数据以记录为界限,便于区分 ?

问题描述 C语言的文件中,数据以记录为界限,便于区分 ? 以下叙述中不正确的是 . A.以二进制格式输出文件,则文件内容与内存中完全一致: B.定义:int n=123:若以ASCII文件的格式存放,变量n将在磁盘上占3个字节:C.C语言中,没有输入输出语句,对文件的读/写都是用库函数来实现的:D.C语言的文件中,数据以记录为界线,便于区分. ===参考答案为D,求大侠详细解释 解决方案 数据库是以记录为界线来区分,C语言文件没有这个说法.

android-如何从服务器中读取 pdf 内容并保存在文件中?

问题描述 如何从服务器中读取 pdf 内容并保存在文件中? 我有一个服务器链接,我需要读取pdf内容.我使用的下面的代码,但是它以其它的格式给出结果. public String readPDF() throws Exception{ BufferedReader in = null; String page = """"; try { HttpClient client = new DefaultHttpClient(); HttpGet request = ne

急急急求解决-如何将textbox文本框的内容添加到XML文件中去

问题描述 如何将textbox文本框的内容添加到XML文件中去 如何将textbox文本框的内容添加到XML文件中去 解决方案 最简单的 System.IO.File.WriteAllText("c:xxx1.xml", textBox1.Text);

Go语言清除文件中空行的方法_Golang

本文实例讲述了Go语言清除文件中空行的方法.分享给大家供大家参考.具体实现方法如下: 这里使用Go语言读取源文件,去掉空行,并写到目标文件 复制代码 代码如下: /**  * Created with IntelliJ IDEA.  * User: hyper-carrot  * Date: 12-8-31  * Time: 下午4:04  * To change this template use File | Settings | File Templates.  */ package ma

Bean中的数组对象的内容如何在JSP文件中按行顺序显示?

问题描述 Bean中存在一个数组objBean[n],n的大小不确定.现在要在JSP文件中显示这个数组的内容.显示的要求:成行显示,显示完第一行后换行显示.所有显示的内容显示为链接形式.该如何实现?请大家帮忙. 解决方案 解决方案二:<jsp:useBeanid="dataList"class="......"/><c:forEachvar="element"items="${dataList}">&l

Unix sed如何向文件中增加一行

sed 是unix中最重要的编辑器之一,注意,有之一..支持多种编辑任务,本文将实现题目的功能实例 假定我们有一额文本文件,叫做empFile,包含了员工名字和员工id,如下: Hilesh, 1001 Bharti, 1002 Aparna, 1003 Harshal, 1004 Keyur, 1005 1.如何通过sed给文件添加标题行-"Employee, EmpId" $ sed  '1i Employee, EmpId'  empFile Employee, EmpId Hi

sed删除文件中的一行内容的脚本代码_linux shell

先来看下原始文件的内容: 复制代码 代码如下: root@localhost ~]# cat file.txthello worlda:b:c -h -na:b:c -h -n sed根据条件删除相关的行: 复制代码 代码如下: [root@localhost ~]# sed -i '/a:b:c -h -n/d' file.txt[root@localhost ~]# cat file.txthello world sed根据条件进行相关内容的替换: 复制代码 代码如下: [root@loca