• c语言文件和特殊修饰符


    static和extern:

     static修饰变量(可以修饰局部变量),只有包含那个变量定义的源代码文件可以访问(内部变量)

     延长局部变量的生命周期,从程序启动到退出

     作用:static定义的变量作用域会延长

          static定义变量的语句只会被执行一次

     extern定义的变量哪个源文件都可以使用,只要声明了就可以(外部变量)

     extern不可以修饰局部变量

     static对全局变量的作用

        static修饰的全局变量只能在当前文件中使用,而不能在其他文件中使用

     static 修饰的函数是内部函数(只能在定义的文件中使用)

     extern 修饰的函数可以在内部和外部使用(可以在头文件中声明也可以在使用之前声明)

    12)文件操作:

    fopen函数用来打开一个文件,一般形式为:

     文件指针变量名 = fopen(文件名,文件使用方式)

     FILE *fp = NULL;

     fp = fopen ("a.txt", "r"); //以只读方式打开文件

        if(fp != NULL){

            //操作文件

        }else{

            //提示用户

        }

     fclose(fp);

     正常关闭文件fclose返回0,如果返回其它则关闭出错。如果没有关闭,则导致文件写入失败

     文件操作步骤:

     1) 建立文件指针

        FILE *fp = NULL;

     2) 打开文件

        fopen(文件名,操作方式);

        如果打开成功,返回文件首地址,失败返回NULL;

     字符读写函数:

     fputc(字符量,文件指针);//待写入的字符量可以是字符常量或变量

     fputc('a', fp);

     例:

     char ch = 'X';

     FILE *fp = NULL;

     fp = fopen("fputs.txt", "w");

     if(fp != NULL){

        fputc(ch, fp);

        printf("写入成功");

        //ch = fget(fp);

     }

     fclose(fp);

     char s = fgetc(fp);

     while(s != EOF){   //EOF文件末尾的标志

        putchar(s);

        s = fgetc(fp);  //系统自动读取下一个字符

     }

     char ch;

     FILE *fp = fopen("inputString.txt", "w+");

     if(fp = NULL){

        printf("请输入字符串:");

        ch = getchar();

        int count = 0;

        while(ch != ' '){

            count++;

            fputc(ch, fp);

            ch = getchar();

        }

        printf(" 一 共输入了%d个字符 ", count);

        rewind(fp);  //把文件指针重新指向文件头

        ch = fgetc(fp);

        while(ch != EOF){

            putchar(ch);

            ch = fgetc(fp);

        }

     fclose(fp);

     return 0;

     }

     count = fputs(str, fp);//count返回本次写入字符串长度

     char str[50];                  //fgets读取时,当文件内容读取完毕时,会自动加上

     fget(str, sizeof(str), fp);    //fgets读取时,当读取到 或EOF时,读取结束

     char *s = "asdfasd";

     fputs(s, fp);

     char str[3];//长度为3,一个汉子读取一半,长度为4全部读取

     fgets(str, sizeof(str), fp);

     fread(buffer, size, count, fp)

     fwrite(buffer, size, count, fp)

     buffer:表示存放输入输出数据的首地址。

     size:表示数据块的字节数

     count:表示要读写的数据块块数

     fp:表示文件指针

     int a= 1, b = 2;

     fprintf(fp,"%d#%d;", a, b);

     fscanf(fp, "%d,%d", &arr[i][0], &arr[i][1]);

     struct Struct stu;

     fseek(文件指针,位移量,起始点)

     指针定位:

     fseek(fp, sizeof(struct Student), SEEK_SET);     //SEEK_SET文件首

     从文件中读取信息:

     freak(&str, sizeof(struct Student), 1, fp);

  • 相关阅读:
    ElasticSearch查询多条件同时满足时返回所需数据
    Linux环境下安装ElasticSearch
    微博抓取照片视频
    numpy 常用方式
    Centos最小化安装 AWVS 的坑
    使用centos安装nessus 8.15,并解除IP限制
    Linux CentOS7 开通端口外网端口访问权限
    VSCode配置C语言环境
    Python MySQL
    web7
  • 原文地址:https://www.cnblogs.com/coolcold/p/4674371.html
Copyright © 2020-2023  润新知