练习1-10  编写一个将输入复制到输出的程序,并将起重的制表符替换为\t,把回退符替换成\b,把反斜杠替换为\\。这样可以将制表符和回退符以可见的方式显示出来。

代码如下:

#include <stdio.h>    //    包含标准库的信息。

#include <conio.h>

int main( void )    //    定义名为main的函数,它不接受参数值。
{
printf("======将输入的字符中的制表符替换为\t,退回符替换成\b,反斜杠替换为\\======\n"); //int c; // getchar()是有缓存的,所以\b都直接起了作用,所以程序并不能显示'\b'。
/*while ((c = getchar()) != EOF)
{
// 这里通过if-else判断字符并替换。
if (c == '\t') printf("\\t");
else if (c == '\b') printf("\\b");
else if (c == 8) printf("\\b");
else if (c == '\\') printf("\\\\");
else putchar(c);
}*/ // 这个示例当用户输入回车事终止输入,可以做到输入后立即替换字符,并没有做到将输入复制到输出的程序。
/*while ((c = getch()) != 13){
if (c == '\t')
printf("\\t");
else if (c == '\b')
printf("\\b");
else if (c == '\\')
printf("\\\\");
else
putchar(c);
}*/ //getch(); // 防止控制台一闪而过,需要接受任意字符后在关闭控制台。
//return 0; // 向执行环境返回一个整形,0代表执行成功。 // 这个题目涉及到对虚拟终端的控制,程序需要用到特定的api来拿到Backspace。
// 引用:http://www.zhihu.com/question/21658256/answer/18986712 /*int ch; do
{
ch = _getch();
printf("%c\n", ch);
} while (1);*/ // return 0; // 以上这段代码关键为 _getch() 函数。参考_getch, _getwch
}

个人理解:

这道题目中的回退符未能按照题目要求实现,待处理。

使用getchar()函数时,键入回退符立即对缓冲区生效,最终并未获得到回退符。

使用getch()时,会得到回退符,但并没有完成练习题所说的将输入复制到输出

C程序设计语言练习题1-10的更多相关文章

  1. 清风注解-Swift程序设计语言:Point6~10

    目录索引 清风注解-Swift程序设计语言 Point 6. 输出常量和变量 代码事例: // 输出的内容会在最后换行 println("hello, world") // 输出的 ...

  2. C程序设计语言练习题1-23

    练习1-23 编写一个删除C语言程序中所有的注释语句.要正确处理带引号的字符串与字符常量.在C语言中,注释不能嵌套. 代码如下: #include <stdio.h> // 包含标准库的信 ...

  3. C程序设计语言练习题1-16

    练习1-16 修改打印最长文本行的程序的主程序main,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本. 代码如下: #include <stdio.h> // 包含标准库的信息 ...

  4. C程序设计语言练习题1-22

    练习1-22 编写一个程序,把较长的输入行”折“成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后.要保证程序能够智能地处理输入行很长以及在制定的列前没有空格或制表符时的情况. ...

  5. C程序设计语言练习题1-19

    练习1-19 编写函数reverse(s),将字符串s中的字符顺序颠倒过来.使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序.代码如下: #include <stdio.h> // ...

  6. C程序设计语言练习题1-18

    练习1-18 编写一个程序,删除每个输入行末尾的空格及制表符,并删除完全是空格的行. 代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXLI ...

  7. C程序设计语言练习题1-17

    练习1-17 编写一个程序,打印长度大于80个字符的所有输入行. 代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXROW 10 // 最大 ...

  8. C程序设计语言练习题1-13

    练习1-13 编写一个程序,打印输入中单词长度的直方图.水平方向的直方图比较容易绘制,垂直方向的直方图则要困难些. 代码如下: #include <stdio.h> // 包含标准库的信息 ...

  9. 《c程序设计语言》-2.10 不用if-else 转换大小写

    #include <stdio.h> int lower(char a) { int b; b = (a >= 'A' && a <= 'Z') ? (a - ...

随机推荐

  1. 转:Twitter.com在用哪些Javascript框架?

    原文来自于:http://blog.jobbole.com/63964/ 我一直在研究twitter.com使用的一些UI框架.下面是这些框架的清单(大部分是Javascript框架).如果你发现有些 ...

  2. Ionic 测试针对Andorid平台

    环境准备: (1)nodejs环境以及配置完成: y@y:~$ node -v v0.12.2 (2)Android SDK 环境变量已经配置完毕: export ANDROID_SDK=/home/ ...

  3. LeetCode_ Merge k Sorted Lists

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. / ...

  4. Bundle类

    1.新建一个Bundle类 Bundle bundle=new Bundle();2.Bundle类中放入数据(key-value的形式,另一个Activity里面取数据的时候,通过key值找出对应的 ...

  5. Jquery 对象集合的迭代扩展forEach

    if (jQuery && !jQuery.fn.forEach) { $(function () { (function ($) { $.fn.extend({ forEach: f ...

  6. 精美实用的jQuery插件精选

    jQuery的确是一款相当强大的Javascript框架,同时jQuery的插件就多入牛毛,如果你善于收集,那么你在写前端页面的时候肯定会更加方便.本文精选了一些精美实用的jQuery插件供大家参考. ...

  7. hdu 4585 Shaolin(STL map)

    Problem Description Shaolin temple is very famous for its Kongfu monks.A lot of young men go to Shao ...

  8. js让菜单栏一直悬浮在顶部,经典代码

    js让菜单栏一直悬浮在顶部,经典代码 很简单,你只需要把下面代码放到js中:$(function(){                //获取要定位元素距离浏览器顶部的距离        var na ...

  9. 使用FastClick的同时造成元素上的trigger('click')无法触发的解决办法

    现象还原: 1. 初始化进入多规格卖场商详页的时候,chrome模拟器切换到安卓环境下,点击加入购物车,规格弹出页没有展示.而在PC和IOS模拟器下,可以弹出规格页 2. 点击加入购物车时,使用 $( ...

  10. (转)ObjC利用正则表达式抓取网页内容(网络爬虫)

    转自:http://www.cocoachina.com/bbs/read.php?tid=103813 *****boy]原创 2012年5月20日 在开发项目的过程,很多情况下我们需要利用互联网上 ...