存储

2016-10-21  本文已影响0人  ie大博

i# 存储

存储步骤

(1)打开文件

r:读的方式
w:写的方式:如果这个文件不存在,会新建一个文件。。如果这个文件存在,就会把原来的内容删除,然后再写。
a:追加的方式
如果文件打开失败,fopen的返回值是NULL。否则就是文件的地址。如果文件打开失败,可以用perror(“打开失败的原因”)查出原因。

打开失败的原因
  1. 如果是以只读的方式打开,然而打开的文件不存在。
  1. 内存已满。

(2)对文件操作

(3)关闭保存文件

#include<stdio.h>
#include<string.h>
/*int main()
{
    FILE *fp=fopen("/home/alex/1612.c/language.c/1021/1.txt","w");//w表示写入
    if(fp==NULL)
    {
        perror("fopen failed:");
        return 0;
    }
    fputc('a',fp);///输入字符a
    fclose(fp);
    return 0;
}*/
/*int main()
{

    FILE *fp=fopen("/home/alex/1612.c/language.c/1021/1.txt","r");//r表示可读
    if(fp==NULL)
    {
        perror("fopen failed:");
        return 0;
    }

    char ch=fgetc(fp);///读取字符
    printf("ch=%c\n",ch);

    fclose(fp);
}*/
/*int main()
{

    FILE *fp=fopen("/home/alex/1612.c/language.c/1021/1.txt","w");
    if(fp==NULL)
    {
        perror("fopen failed:");
        return 0;
    }
    fprintf(fp,"a=%d,b=%c\n",2,'c');///向文件输入
    
    fclose(fp);
}*/
/*int main()
{

    FILE *fp=fopen("/home/alex/1612.c/language.c/1021/1.txt","r");
    if(fp==NULL)
    {
        perror("fopen failed:");
        return 0;
    }
    int value;
    char ch;
    fscanf(fp,"a=%d,b=%c\n",&value,&ch);///从文件输出
    printf("value=%d,ch=%c\n",value,ch);
    
    fclose(fp);
}*/
/*int main()
{
    FILE *fp=fopen("/home/alex/1612.c/language.c/1021/1.txt","w");
    if(fp==NULL)
    {
        perror("fopen failed:");
        return 0;
    }
    char arr[10]="hello";
    fputs(arr,fp);///输入字符串

    fclose(fp);
    return 0;
}*/
int main()
{
    FILE *fp=fopen("/home/alex/1612.c/language.c/1021/1.txt","r");
    if(fp==NULL)
    {
        perror("fopen failed:");
        return 0;
    }
//  char arr[10]="hello";
    char str[10];

    fgets(str,sizeof(str),fp);///调出字符串,但是如果字符串里面有\n,那么就会停止调出。
    printf("str=%s\n",str);

    fclose(fp);
    return 0;
}
int main()
{
    FILE *fp=fopen("/home/alex/1612.c/language.c/1021/1.txt","w");
    int a = 8 ;
    fwrite(&a,sizeof(int),1,fp);////用二进制写函数。

    fclose(fp);
    return 0;
}
/*int main()
{
    FILE *fp=fopen("/home/alex/1612.c/language.c/1021/1.txt","r");
    int a ;
    fread(&a,sizeof(int),1,fp);////读取内容
    printf("a=%d\n",a);

    fclose(fp);
    return 0;
}*/

typedef struct student////如何写进去一个结构体
{
    char name[20];
    int num;

}student;
/*int main()
{
    student stu={"hello",22};
    FILE *fp=fopen("/home/alex/1612.c/language.c/1021/1.txt","w");
    
    fwrite(&stu,sizeof(stu),1,fp);这个位置和其他是不一样的,记住就可以 了


    fclose(fp);
    return 0;
}*/
int main()
{
    student stu;
    FILE *fp=fopen("/home/alex/1612.c/language.c/1021/1.txt","r");
    
    fread(&stu,sizeof(stu),1,fp);

    printf("stu.name=%s\nstu.num=%d\n",stu.name,stu.num);

    fclose(fp);
    return 0;
}

fseek_SET:移动指针,从头开始,正数
fseek_CUR:从——p开始,正数或者负数
fseek_END:从文件尾,负数
ftell:显示指针位置

上一篇下一篇

猜你喜欢

热点阅读