C primer plus 第八单元-字符输入/输出确认

  这一章主要说的是输入输出流的概念和对于输入输出的简单应用。

  说过的概念:

  ·缓冲区

    在使用控制台程序编写程序时,使用输入函数输入内容时,输入的内容总是会在键入换行符\n后才完成输入,之前不论增减还是更改“输入”的内容,都不会确定最终的输入结果。而在玩游戏或者实时的按键操作时,任何一个按键,点触和移动设备都会立即产生相应的响应。这两种方式分别为缓冲输入和非缓冲输入。

  ·重定向

    对于一台计算机,其输入和输出的形式并不是唯一的。输入可以是来自键盘,文件,说不定还能来自什么引力波,短波,中波,长波,小宇宙查克拉,输出的目的设备也是同样多种多样。所以对于语言标准来说这样过于麻烦和具体,也不重要。对于C语言,语言标准引入一个“流”的概念,将所有输入和输出都抽象成一个统一的“东西”来操作,不需要管具体的设备和位置,就像一条河流,支流很多,但支流的水一旦流入主河道,那从下游看这些水就是主河道的水,跟支流无关。有了“流”这个概念,计算机编程就可以对输入和输出进行统一的操作。而不同种类的输入来源都可以人为或自动将输入目的改到运行程序中。而可以使用的任何输出设备也可以用程序控制输出所需的内容。这就是重定向。

    重定向的应用在操作系统中可以用命令行来实现。书中用Linux和DOS来举例,没有实践所以不说了就。

  ·EOF

    对于文件来说,文件中的内容和大小都可以是任意的。对于系统和程序,可以通过多种方法来判断文件的结尾。一种的通过文件的大小来判断,另一种就在文件内容的末尾加上EOF符号,通过检测EOF来找到文件的末尾。EOF(end of file)的实际值不需要考虑,操作系统和变成语言的不同都会对EOF的具体值造成影响,C 语言中的EOF 在stdio.h中定义为-1。

 

练习经历:

  因为是复习所以对知识点主要是注意细节和回顾所以知识点看的比较快直接做后面的练习,但是在练习的时候还是出了很多"意外"。

  首先是工具,练习使用的是Visual Studio 2013 Community 和Visual Studio Code(为什么就是做个课后习题还用这么多工具,只是因为我想试试,毕竟以后说不定都要用。。。)。首先就是文件的编码问题,我在VS Code(不打全称了)上的中文注释在VS 2013上看就是乱码。就这一点就困扰我好久,查了好多途径,最后用的是将新建的.c文件另存为UTF编码方式。这个小问题我目前还不是特别的明白,是VS上的默认设置原因。不过还是感觉比较不好,因为VS Code和VS2013的默认设置竟然不一样。。。后来发现只有使用VS2013新建文件的时候才会出现在VS Code上输入中文注释在VS2013无法显示的现象(用notepad++输入中文注释在VS上也是显示乱码)。而使用VS Code新建C文件后,在文件中输入中文注释,在VS2013中就不会显示乱码。另外,用VS Code输入中文和中文符号必须在输入完成后加上一个空格,这时输入的内容才能显示出来,很怪,以后慢慢解决。

  再说说VS code吧,最近刚出不久的代码编译器,我很喜欢它的界面所以经常用,不过有一些使用习惯上的不同导致我用起来并不是那么舒服。其中最不舒服的地方就是,如果在别的软件中更改一个C文件后保存,在VS Code 上竟然不会提醒也不会自动刷新。所以同时使用VS2013和VS Code时只能用Code编辑代码。当我反馈这个现象的时候又发现另一个很奇怪的地方,我在反馈栏中输入反馈信息,因为英文一般所以一点英文敲了很久,在我发送前用键盘切换到网页浏览器刷了一下网页。当我再次切换回Code准备发送反馈时发现之前打了好久的反馈信息全部都没有了。。。我感觉心好累所以果断洗洗睡了。。

 

posted @ 2015-05-09 22:40  J_Rui  阅读(207)  评论(0编辑  收藏  举报