C语言文件读取写入的问题

我用以下代码进行读写操作一次以后,文件照常写入,可是第二次读取后就有一部分莫名消失
求大神指点

typedef struct Shu{//存储站名序号// 
    char name[10];
    int x;
    struct Shu *next;
}*S,s;
void BC2(S *head){//保存所有站点编号// 
    FILE *f;
    S p=*head;
    f=fopen("Shu.txt","w+");
    while(p!=NULL){
        fwrite(p,sizeof(s),1,f);
        p=p->next;
    }
    fclose(f);
}
struct Shu *Read2(){//读取所有站点编号// 
    FILE *f;
    S head,p;
    head=(S)malloc(sizeof(s));
    head->next=NULL;
    f=fopen("Shu.txt","r+");
    p=head;
    while(1){
        Shu* q;
        q=(S)malloc(sizeof(s));
        fread(q,sizeof(s),1,f);
        if(feof(f)){
            p->next=NULL;
            free(q);
            break;
        }
        q->next=NULL;
        p->next=q;
        p=q;
    }
    fclose(f);
    return head;
}
0
扫码支付0.1元 ×
其他相关推荐
C语言的文件读取与写入操作
学了一年的C语言了,现在回过头来做一下总结。并且博客开了挺长一段时间却没有谢什么实际的东西。现在做下总结,对之后的学习帮助应该挺大的。与大家共勉! 现在,我先来介绍一下C语言的文件读取与写入的原理和具体操作方法。 C语言文件读取与写入是通过将文件看成一个字符序列进行读入和写出的。所以读取与写入文件就用到了指针,而这个指针是一个特殊的指针,我们称为文件指针。 指针名称是
c语言文件读取与写入
fopen的介绍转自百度百科:https://baike.baidu.com/item/fopen/10942321?fr=aladdin 函数原型: FILE * fopen(const char * path, const char * mode); 相关函数:open, fclose, fopen_s, _wfopen 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打...
C语言 C++两个版本 txt 文件读取结构体信息,写入结构体指针中,并以结构体指针形式返回
C语言 C++两个版本 txt 文件读取结构体信息,写入结构体指针中,并以结构体指针形式返回 附加功能:采用 直接插入排序 方法 按总成绩进行了降序排序 1、结构体信息如下: #define size 9 struct student//学生信息 { long int number; char name[size]; int Chinese; int mat...
文件写入、读取的指针问题
当文件写入完成后,指针会停留在最后,如果不调整,read的输出只能是空 因此用seek进行调整 file.seek(off, whence=0):从文件中移动off个操作标记(文件指针),正往结束方向移动,负往开始方向移动。如果设定了whence参数,就以whence设定的起始位为准,0代表从头开始,1代表当前位置,2代表文件最末尾位置。 a = open('testlog.txt','
C语言文件读取并写入链表
C语言没啥要逼逼的,直接上代码,用心体会 #include "stdio.h" #include "stdlib.h" /***************************** 链表节点结构体 ****************************/ typedef struct link_node { int ID; char name; int Yuwen; int ...
C语言读取文件数据,写入内存
作为一个新手学习C语言读写数据,我整合了一下自己查找的一些资料,用C语言实现将一个文件读入内存中,里面有运行工具,和一个word文档代码。
C语言之二进制读写文件
来源:我的博客站 OceanicKang |《C语言之二进制读写文件》 一、二进制读写 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) - 读 size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream) - 写 参数 ...
C语言各种字符串函数 + 读取写入文件
strtok字符串分割函数strtok使用char *p指针获取字符串地址首先需要 p= strtok (s,"");  //""内为分割字符,用双引//第一次使用strtok括号内前一个为原字符串if(p) printf("%s",p);分割后前一个字符串末尾标记为NULLwhile(p=strtok(NULL,""));printf("%s",p);#include<stdio.h&
c语言实现大小端判断和二进制模式写入各种数据到文件
#include #include #include //测试大小端模式 void test_endian() { uint32_t i=0x04030201; unsigned char* cp=(unsigned char*)&i; if(*cp==1) printf("little-endian\n"); else if(*cp==4)
C/C++读写文本文件、二进制文件
C语言文本文件读写方式;C语言二进制文件读写方式;CPP文本文件读写方式;CPP二进制文件读写方式;
从文件流中读写整数--C语言
本文将介绍在文本流中,读写整数的两个接口– int getw(FILE *fp)和int putw(int w, FILE *fp),并且与你分享改进后的更实用的接口– unsigned int get_uint(FILE *fp)和unsigned int put_uint(unsigned int i,FILE *fp).从文件流中读写整数–C语言我们都知道,数据在计算机内存中都是以二进制的形式
c语言学生管理系统之文件写入与读出
LINK  FileRead()                                                                                         //读文件 {     FILE * fp1;     LINK head = (LINK)malloc(sizeof(NODE));;     LINK tail;     tail = ...
C语言文件读写实例
//编程完成读出文件sfile.txt中的内容,反序写入另一个文件dfile.txt中去。 #include #define BUFFSIZE 5000 void main() { FILE * sfp,* dfp; int i; char buf[BUFFSIZE]; if((sfp=fopen("C:\\sfile.txt","r"))==NULL)        /*
C小程序—文件操作,C程序读写文件、配置文件读写案例
1.文件操作(1)按字符写入文件#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <string.h> #include <stdio.h> void main() { int i = 0; FILE *fp = NULL; char *filename...
【C语言】文件操作-打开、关闭、写入、写出(含读取学生信息示例)
参考网址:https://blog.csdn.net/wait_for_taht_day5/article/details/50700471C文件概述文件是指一组相关数据的有序集合。这个数据集有一个名称,叫做文件名。实际上我们在C语言编程中已经多次使用了文件。例如源程序文件(.c)、目标文件(.0bj)、可执行文件(.exe)、库文件(头文件)等。文件通常是驻留在外部介质(如磁盘等)上的,在使用时...
linux读取配置文件(C语言版)
kvconf.h --------------------------------------------------------- #define KEYVALLEN 256 /* 删除左边的空格 */ char * l_trim(char * szOutput, const char *szInput); ...
C语言向文件写入内容并读取显示
将学生信息(姓名、年龄、学号和平均分)写入文件,然后读取显示出来。 要求: 从控制台输入学生信息;可以输入任意数目的学生信息;文件每行存储一条学生信息,姓名、年龄、学号、平均分以tab(\t)为分隔。 代码实现: 复制纯文本复制 #include #include #include  #define FILE_PATH "D:/demo.txt" // 文件
C语言fseek、fread、fwrite读写二进制文件
C语言读写二进制文件的使用
C实现从文件读取固定长度的值赋给变量,以及将变量值写入文件
C语言实现从文件读取固定长度的值赋给变量,以及将变量值写入文件
关于C语言文件的读写
C语言文件的读写 字符读写 1、fputc()函数; 2、fgetc()函数 字符串读写 1、fputs()函数 2、fgets()函数 数据块读写 1、 fread()数据块读函数 2、fwrite()数据块写函数 格式化读写 1、fprintf()函数 2、fscanf()函数 C语言文件的读写 关于细节几部分,我就不仔细介绍了,首先,我只想说说关...
【C语言】文件读取写入信息(二进制方式)
文件读取写入信息(二进制方式)
c语言读取csv文件
include <stdio.h>#include <string.h>#define MAX_LINE 128typedef struct{  char week[4];  char month[4];  char date[3];  char hour_minute_second[9];  char year[5]; } system_time_t; void main...
C 从文件读出字符串并显示
有个方法是feof(fp)这个可以判断是否到了最后的结束,结束的标志是EOF就是-1,可以这样写 char str[50]; char *p = str; //读文件的一般套路句式 if((file = fopen("B.txt","r")) == NULL) { printf("不能打开文件"); exit(0); } ...
c语言fwrite和fread连续读写文件流
c语言fwrite和fread连续读写文件流本例程的编写是基于windows,编译器用的是gnu下的gcc: 头文件stdio.h和stdlib.h 读写函数是fwrite和fread 文件指针移动函数有lseek,ftell,fseek *文件结束判断函数feof 函数的具体参数和返回值可查阅手册 连续写入long类型的一个数组 #include <stdio.h> #include <stdli
c语言中,文件路径读取问题
最近,遇到一个c语言中,文件路径读取问题。问题是:再一个txt配置文件中,存放着要读取的某个其他文件的路径,如何正确的得到这个文件路径。 我首先在用fgets读取了txt中的,文件路径存放于path中 char path[200]; fgets(path,200,fp);然后,将该路径作为fopen的参数传入,想打开该path所指示的文件路径,然而fopen
C语言中 文件读取和写入的详细操作代码 非常有用
里面涵盖了关于C语言中如何从文件中读取信息 如何讲信息写入文件 包括字符的写入和读取 字符串的写入和读取以及整行读取等等的代码
c语言创建写入和读取TXT文件数据
下面是一个简单文件读取程序,首先是写数据,将数字0~9写入到data.txt文件中,然后再从data.txt中读取数据,将读到的数据存到数组a[10]中,并且打印到控制台上。 下面是程序: [cpp] view plain copy print? #include     int main()  {      //下面是写数据,将数字0~9写入到data.tx
C语言中对文件的中文内容进行读出
//对文件的中文内容进行读出 按字符方式读取文件,每读一个字符判断一下是否为汉字编码(&amp;lt;0),若是则存入字符数组,不是则跳过读取下一个字符,直到文件结束。 #include &quot;stdio.h&quot; #include &quot;stdlib.h&quot; int main(void){ char s[1000],ch; FILE *fp; int i=0; if((...
[笔记]c语言文件写入读出的具体应用代码
简单的写入一个文件以及从文件中读取输出: #include&amp;amp;lt;stdio.h&amp;amp;gt; mian() { int a[3]={100,200,300},a1[3]; //一份定义俩个变量将a读入文件,从文件中读取到a1 float b=123,45678,b1; FILE *fp; if((fp=fopen(&amp;quot;data.txt&amp;quot;,&amp;quot;w&amp;quot;))==NULL) ...
WAV文件的读写
wav文件比snd文件多了个头=======》可以说,wav文件去掉头,就是snd文件了 以下便是wav文件的读写代码:(按着结构体顺序解析即可) #ifndef _WAVREAD_H #define _WAVREAD_H #ifdef __cplusplus extern "C" { #endif #include "stdafx.h" #include typed
C语言文件的读入与写入
学了一学期的C语言,还不怎么会使用指针,文件的读入和写入也不能很顺利的写出来,说起来好惭愧。碰巧今天朋友让我帮他编写一个C语言程序,对他数模要用到的大量数据求平均值(每天不同时刻对某一物理量进行检测,持续几十天,求那些时刻测得的物理量的平均值)。代码很简单,关键是要掌握怎样对文件进行读入和写入(当然对于菜鸡的我来说,懒惰让我在大一没有好好学习,正好趁着这个契机把文件的基本的操作学会:)) 分模块...
Linux C学习笔记——txt文件读写
  /*************** perror(s) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno的值来决定要输出的字符串。 FILE * fopen(const char * path, const char * mode);返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果...
【C/C++】C语言读取简单配置文件
用C写了个加载配置文件的demo简单程序, 按行支持 key=val 的格式以及行注释/文本注释等。 以下贴下代码, 纯当笔记: #include #include #include #define MAX_BUF_LEN 1024 #define MAX_KEY_LEN 64 #define MAX_VAL_LEN 256 int Trim(char s[]) { int
xml文件读取和写入的实现方式小结
xml文件的读取和写入主要又两种,一种是XMLDocument,另一种是XMLtextwriter/xmltextreader。 1、XMLtextwriter/xmltextreader        读取程序:              string path="myxml.xml";             string str = "";             XmlText
CPP读取文件速度比较
[cpp] view plain copy 探寻C++最快的读取文件的方案   計算機技術   Add comments7,388 views      在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句
Linux C 读写文件
感受下C语言在Linux中读写文件用法,纯粹兴趣学习记录。 既然要读写文件,那肯定要Linux系统调用了,就是说利用Linux系统提供的API进行函数调用,最终来实现文件读写。 通用步骤: 打开文件获取文件描述符 读写文件 关闭文件 Linux系统提供了两个C函数来实现文件读写 ssize_t read(int fd, void *buf, size_t count
c++ txt文件的读写及乱码问题解决
在编程中,我们经常需要对txt文件进行读写操作,有时候由于编解码问题,txt读写会出现乱码问题。下面介绍一种基于ofstream和ifstream的txt文件读写方法,并介绍txt文件读写的乱码解决方案。1.txt文件写入#include <fstream> #include <iostream> using namespace std;int main() { ofstream ou
C语言把文件读入字符串以及将字符串写入文件
1.纯C实现 FILE *fp; if ((fp = fopen("example.txt", "rb")) == NULL) { exit(0); } fseek(fp, 0, SEEK_END); int fileLen = ftell(fp); char *tmp = (char *) malloc(sizeof(char) * fileLen); fseek(fp
c语言文件读取问题
[code=C/C++]#includern#includernvoid main()rnrn FILE *fp;rnchar *cha,chb[512];rnchar name[20];rncha=NULL;rnprintf("enter the file name please!\n");rnscanf("%s",name);rnif ((fp=fopen(name,"r"))==NULL)rnprintf("can not open file!\n");rnif(!feof) rnrn fgets(chb,512,fp);rn strcat(cha,chb); //当然我知道可以不用接cha到后面直接在循环中输出chb,但是为什么这样就不行吗?rnrnrnprintf("a=%s\n",*cha);rn[/code]我的思想是设定chb【512】做缓冲,然后一个一个练到cha后面,cha一开始是空字符,最后输出cha,也就是多次读入,一次性输出。为什么出错呢?
C语言读写BMP文件
参考的是:用C语言进行BMP文件的读写 - 计算机视觉小菜鸟的专栏 - 博客频道 - CSDN.NET
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链问题 人工智能写入教程