练习1-10 编写一个将输入复制到输出的程序,并将起重的制表符替换为\t,把回退符替换成\b,把反斜杠替换为\\。这样可以将制表符和回退符以可见的方式显示出来。
代码如下:
#include // 包含标准库的信息。
#include
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()时,会得到回退符,但并没有完成练习题所说的将输入复制到输出。
清风注解-Swift程序设计语言:Point6~10
目录索引 清风注解-Swift程序设计语言 Point 6. 输出常量和变量 代码事例: // 输出的内容会在最后换行 println("hello, world") // 输出的 ...
C程序设计语言练习题1-23
练习1-23 编写一个删除C语言程序中所有的注释语句.要正确处理带引号的字符串与字符常量.在C语言中,注释不能嵌套. 代码如下: #include // 包含标准库的信 ...
C程序设计语言练习题1-16
练习1-16 修改打印最长文本行的程序的主程序main,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本. 代码如下: #include // 包含标准库的信息 ...
C程序设计语言练习题1-22
练习1-22 编写一个程序,把较长的输入行”折“成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后.要保证程序能够智能地处理输入行很长以及在制定的列前没有空格或制表符时的情况. ...
C程序设计语言练习题1-19
练习1-19 编写函数reverse(s),将字符串s中的字符顺序颠倒过来.使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序.代码如下: #include // ...
C程序设计语言练习题1-18
练习1-18 编写一个程序,删除每个输入行末尾的空格及制表符,并删除完全是空格的行. 代码如下: #include // 包含标准库的信息. #define MAXLI ...
C程序设计语言练习题1-17
练习1-17 编写一个程序,打印长度大于80个字符的所有输入行. 代码如下: #include // 包含标准库的信息. #define MAXROW 10 // 最大 ...
C程序设计语言练习题1-13
练习1-13 编写一个程序,打印输入中单词长度的直方图.水平方向的直方图比较容易绘制,垂直方向的直方图则要困难些. 代码如下: #include // 包含标准库的信息 ...
《c程序设计语言》-2.10 不用if-else 转换大小写
#include int lower(char a) { int b; b = (a >= 'A' && a <= 'Z') ? (a - ...
随机推荐
NetworkComms V3 使用Json序列化器进行网络通信
刚才在网上闲逛,偶然看到一篇文章 C#(服务器)与Java(客户端)通过Socket传递对象 网址是:http://www.cnblogs.com/iyangyuan/archive/2012/12/ ...
static inline
今天看到了这样一段代码, static inline BOOL IsEmpty(id thing) { return thing == nil || [thing isEqual:[NSNull nu ...
java中调用dll文件的两种方法
一中是用JNA方法,另外是用JNative方法,两种都是转载来的, JNA地址:http://blog.csdn.net/shendl/article/details/3589676 JNativ ...
Digital Tutors - Creating an Action Adventure Puzzle in Unity学习笔记
遇到的问题: 1 第11节Scripting the pressure plates中需要获取子物体的Animator组件,教程使用的语句如下: ”SwitchAnim = GetComponentI ...
团队作业4——第一次项目冲刺(Alpha版本)
第一天http://www.cnblogs.com/ThinkAlone/p/7861070.html 第二天http://www.cnblogs.com/ThinkAlone/p/7861191.h ...
web 自定义标签
Web Components 标准非常重要的一个特性是,它使开发者能够将HTML页面的功能封装为 custom elements(自定义标签).而自定义标签的好处,就是在大型web开发的时候,可以封装 ...
SWF加载器控件 SWFLoaderControl
SWF加载器控件 书:165 <?xml version="1.0" encoding="utf-8"?>
404 Note Found Team&#39;s First Blood
团队构成: 队员学号姓名队长标注: 031602114--胡绪佩(队长) 031602113--何宇恒 081600410--胡青元 031602627--刘恺琳 031602525--刘一好 031 ...
go-互斥锁及原子函数
用于解决并发函数的竞争状态问题... package main import ( "fmt" "runtime" "sync" " ...
ios 更改UITableview中Section的字体颜色
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UILabel *c ...