美文网首页
[C]从经管院带回来C语言[0]文件操作[0]

[C]从经管院带回来C语言[0]文件操作[0]

作者: Austin_pb | 来源:发表于2015-10-09 15:59 被阅读0次

    目前最高学历也只是本科,上的也不是计算机相关专业。
    所以大一的时候C语言讲的并不是特别深入。
    看到别人的C和我的C好像哪里不一样,所以努力点了一下C技能点。
    首先先点出文件操作技能点。

    所有学过的代码内容从来都是算算算,算出来的东西只是在编译运行之后闪现了一下,就随着释放内存灰飞烟灭了。

    根据K&R的教材
    需要声明两项

    FILE *fp;
    FILE *fopen(char *name, char *mode);
    

    但是实际写的时候只用了FILE *fq;
    如果加上FILE *fopen(char *name, char *mode);则会被报错类型冲突
    想想也是,fopen是个在<studio.h>声明好的函数,在这里声明自然会报错。

    所以HelloWorld就是

    #define SOMEPLACE 某个谁都不知道是哪的地方
    #include <stdio.h>
    int main(int argc, const char * argv[]) {    
        FILE    *fq;
        fq = fopen("SOMEPLACE","wrt+");
        fprintf(fq, "HelloWorld!");
        return 0;
    }
    
    所以我们可以做这么一件事

    某经典例题:算闰年

    虽然C已经很快了,但是OJ毕竟是会有比速度的内容的
    比如让输出1900~2100年间的每一个闰年

    我大一的时候的代码应该是:
    #include<stdio.h>
    int main(){
    int year = 1900;
    while (year <= 2100){
    if(year % 4 == 0 && year % 400 != 0){
    printf("%d\n",year++);
    }
    year++;
    }
    return 0;
    }

    同样是当时没被培养到的技能:什么是幻数?|所以幻数是什么?|
    ------------------------------|
    谭浩强里的书里提到过幻数,但是当时虽然不知道是什么同时也没有过多的关注这个内容,仔细想想这个应该是个需要关注的习惯缺陷。|就是你没在开头#define的而在后面用了的常数,让人觉得莫名奇妙。
    比如我上面的内容应该写成
    #define STARTYEAR 1900
    #define ENDYEAR 2100
    #include<stdio.h>
    int main(){
    int year = STARTYEAR;
    while (year <= ENDYEAR){
    if(year % 4 == 0 && year % 400 != 0){
    printf("%d\n",year++);
    }
    year++;
    }
    return 0;
    }

    但是为了在OJ上速度快(其实OJ应该不会问基础的问题)
    #define STARTYEAR 1900
    #define ENDYEAR 2100
    #define SOMEPLACE 某个谁都不知道是哪的地方
    #include<stdio.h>
    int main(){
    FILE *fq;
    fq = fopen("SOMEPLACE","wrt+");
    fprintf(fq, "HelloWorld!");
    return 0;
    int year = STARTYEAR;
    while (year <= ENDYEAR){
    if(year % 4 == 0 && year % 400 != 0){
    fprintf(fq,"printf("%d\n");\n",year++);
    }
    year++;
    }
    return 0;
    }
    然后把生成好的一堆printf贴到事先准备好的main函数里,就搞定了yeah。
    懒得写下去了

    写这么一坨感觉:
    • markdown好神奇,某种方面上感觉比用鼠标点点点好用
    • 简书做的好棒,快捷键保存也支持,突然感觉在电脑上装的Mou有点多余=。=|||
    • Xcode的breakpoint很好用...

    相关文章

      网友评论

          本文标题:[C]从经管院带回来C语言[0]文件操作[0]

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