前言

博客建立三年有余,此刻终于迈上了其最为广泛的用途:记录技术笔记

在这个全网唱衰行业、我也早已见识过agent与vibecoding的强大的时间,写这些笔记我也是五味杂陈,然而既来之则安之……

这篇博客不会是一篇很系统的C语言教程,只是记录我学习过程中的疑难杂症或是值得记录的知识点。

读取字符函数

多余的字符如未处理会留在缓冲区或导致溢出。

  • scanf:了解的第一个读取函数。遇到空格即停止读取(仅限%s读字符串时),不会将换行符保留在读入的数据中。(!用户使用换行结束而非EOF时会残留一个换行符在缓冲区中)

  • fgets:读字符串和文件推荐,能够正常读取空格。

    换行符会留在数据末尾,故使用时需要手动将其从读到的数据中剔除。(具体怎么去掉还是个TODO)

    写法为fgets(获取数据的指针,读取长度,指定读取流),其中,初学阶段读取流一般写stdin(从键盘读取)

    需要注意的是,由于字符串结尾有\0,故实际上只能读入n-1个字符。

    以下两者读入的类型均为int,即保存字符值(目前理解为ASCII码),故不能用来直接读入整数值

  • fgetc:读单字符推荐,写法为x = fgetc(读取数据流)

  • getchar: 读单字符最推荐,等价于fgetc(stdin)

你奶奶个腿的OJ的判断数据能不能不那么阴啊,有时带空格有时不带空格的逼着人用scanf。。。