美文网首页
C 文件操作回顾

C 文件操作回顾

作者: harrytc | 来源:发表于2018-03-13 21:31 被阅读15次

可以在程序运行时分配更多的内存,主要工具是malloc(),它接受一个参数,所需字节数,然后malloc()找到可用内存中一个大小合适的快。内存是匿名的。也就是说malloc()分配了内存,单没有为它指定名字。然而,它却可以返回那块内存第一个字节的地址

fopen() 函数返回一个文件指针(file pointer),其他I/O函数用这个指针来指定该文件。文件指针是一种只想FILE的指针;FILE是stdio.h中定义的一种派生类型。指针fp并不止像实际的文件,而是只想一个关于文件信息的数据包,其中包括文件I/O的使用缓冲区信息。 因为标准库中的I/O函数使用缓冲区,所以他们需要知道缓冲区的位置缓冲区的当前缓冲能力以及所使用文件

C 中文件操作我一直都不太会,今天练习一下

#include <stdio.h>
#define N 5
typedef struct student
{
    long sno;
    char name[10];
    float score[3];
}STU;

void fun(char  *filename)
{ FILE  *fp;      int  i, j;
    STU  s[N], t;  
    fp = fopen(filename, "rb");
    fread(s, sizeof(STU), N, fp);
    fclose(fp);
    for (i=0; i<N-1; i++)
        for (j=i+1; j<N; j++)
                   if (s[i].sno > s[j].sno)
            {  t = s[i];  s[i] = s[j];  s[j] = t;  }
    fp = fopen(filename, "wb");
    fwrite(s, sizeof(STU), N, fp);
    fclose(fp);
}

int main(int argc, const char * argv[])
{
   
    /*printf("Hello, World!\n");
    float a = 12.;
    int b = 23;
    printf ("%d\n%f", b, a);
    printf("%d, %d, %d\n", 8 ,0121, 0x18);*/

    STU  t[N]={ {10005,"ZhangSan", 95, 80, 88}, {10003,"LiSi", 85, 70, 78},
        {10002,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87},
        {10001,"MaChao", 91, 92, 77}}, ss[N];
    
    int i, j; FILE * fp;
    fp = fopen("student.dat", "wb");
    fwrite(t, sizeof(STU), 5, fp);
    fclose(fp);
    
    printf ("\n\n The Original Data :\n\n");
    
    for (j = 0; j < N; j++)
    {
        printf ("\n No : %ld Name : %-8s  Scores: ",t[j].sno, t[j].name);
        for (i = 0; i < 3; i++)
            printf("%6.2f", t[j].score[i]);
        printf("\n");
    }
    
    fun ("student.dat");
    printf("\n\n The Data After Sorting: \n\n");
    
    fp = fopen("student.dat", "rb");
    fread(ss, sizeof(STU), 5, fp);
    fclose(fp);
    
    for (j=0; j<N; j++)
    {  printf("\nNo: %ld  Name: %-8s      Scores:  ",ss[j].sno, ss[j].name);
        for (i=0; i<3; i++)  printf("%6.2f ", ss[j].score[i]);
        printf("\n");
    }
    return 0;
}

写好之后问题又来了,文件写到哪里去了呢
我不好一个个文件夹 去找
打开终端输入

find / student.dat

在磁盘查找吧,这种效率太低,千万别学我

把 / 换成那个目录


顺着目录去找这个文件就好

文件:我在这呢!

相关文章

  • C 文件操作回顾

    可以在程序运行时分配更多的内存,主要工具是malloc(),它接受一个参数,所需字节数,然后malloc()找到可...

  • day16-函数回顾与练习

    01-函数回顾: 1、文件操作 a、操作流程:打开文件----操作文件----关闭文件with open() as...

  • 2018-09-10 Day16 正则表达式和作业

    01.回顾 1.文件操作a.操作流程:打开文件(open)---操作文件(读/写)---关闭文件(close)wi...

  • C语言文件输入和输出操作的学习心得(四)

    概述 C语言文件输入和输出操作的学习心得(一)C语言文件输入和输出操作的学习心得(二)C语言文件输入和输出操作的学...

  • C文件操作

    常规文件操作顺序(大象冰箱) 第一,先打开文件 fopen 第二,读写文件 getc 第三,关闭文件 1.Fope...

  • C 文件操作

    C语言中文件操作主要有以下函数: fopen() :打开一个文件 fclose():关闭一个文件 fgetc():...

  • C 文件操作

    读写操作 文件加解密思路: 小例子 文本内容,简单的公示,算出结果,并且讲解写回去 拷贝文件工具实例 fflush...

  • 2018-09-05

    c语言文件操作 文件操作流程:1.打开文件 2.操作文件 3.关闭文件 文件类型指针:File* fp; 文件打开...

  • 通用单链表(C语言)

    1、头文件c_linklist.h 2、操作链表文件c_linklist.c 3、测试主函数文件main.c 注意...

  • 总结Day13_json、异常处理

    ====上节回顾=== 1.打开文件 -> 操作文件 -> 关闭文件   文件对象 = open(文件路...

网友评论

      本文标题:C 文件操作回顾

      本文链接:https://www.haomeiwen.com/subject/wwvvfftx.html