第4章至第11章要点记录

sizeof操作符,它以字节为单位给出数据大小。strlen()函数以字符为单位给出字符串的长度。

因为一个字符只占用一个字节,所以可能认为这两个操作会得到相同的结果,事实并非如此。

见程序praise2.c

创建常量的三种方式: #define    const    枚举。


深入了解一下printf和scanf。

它们称为转换函数更加准确。

键盘输入的是文本,当你输入整数2004时,实际上键入的字符为2 、 0、  0、  4 。那么程序就必须能把这个字符串逐个字符的转换成数值,这就是scanf的工作。printf恰好相反,它把各种数值转换成文本显示在屏幕上。

scanf函数每次读取一个文本单词,依照说明进行转换,并跳过单词之间的空格。如果第一个单词就不匹配,scanf就会停在那里,结束。下一次再读取,还会从这个位置开始。

scanf函数返回成功读入的个数。

比如scanf(“%d %s”, &num, name); 第一个单词会被转换成十进制整数,第二个被转换成字符串。都成功了,返回值为2.


传统上,c语言习惯用int类型作为标志,但是新型的_BOOL型更符合需求,通过包含stdbool.h头文件,可以用bool代替关键字_BOOL,并用true和false代替1和0.

仅仅处理字符的函数:

getchar,putchar

ch =getchar() 与 scanf(“%c”,&ch)等价。    putchar(ch) 与 printf(“%c”, ch)等价。

用来处理字符,它们更简洁。

配合ctype.h头文件提供的字符系列函数,能做不少事情。


逻辑运算符

&&  ,  ||,     ! 

与,  或 ,  非

这些符号是使用美式键盘打印出的,而在世界各地,不是所有的键盘都有与美式键盘相同的符号。

为了解决这个问题,c99提供了iso646.h头文件,包含它,可以用 and ,or,  not 代替。


i/o可分为

1.  非缓冲的: 输入内容对程序立即可用。——取决于计算机系统,缺乏可移植性

2.  缓冲的: 键入的字符被存储在缓冲区中,按下回车键该缓冲区中的内容才对程序可用。——ANSI 标准规定都要缓冲。

当然,非缓冲与缓冲各有它们的用途。

文件结尾:EOF  

从键盘模拟文件结尾的方法: ibm pc及其兼容机  ctrl+z  , unix 使用 ctrl+d

 

重定向的概念:

令程序与文件一同工作有两种方式。

Ⅰ: 明确的打开文件,读文件,写文件,关闭文件。

Ⅱ: 把数据流重新分配,让它关联到文件。我们后面的读写按照标准的i/o进行,而不关心数据流是从何处获取的。

第二种称为重定向技术。比起第一种方法在一些方面功能有限,但更容易使用。

最大的问题在于,重定向是由操作系统管理实现,而不是c语言,所以无法移植,且不同的操作系统有不同的实现方式。

 

unix及linux的输入重定向运算符  < ,数据流本来应该来自键盘,使用 程序 <  text后,数据流读取text文本文件。

输出重定向 >  , 数据流本来应该显示到屏幕,使用 程序 >  text后,数据流被写入text文本文件。

 

必须对c语言处理输入的工作方式有一个清晰的理解: 表面上看去输入的是各种字符,字符串,数字等等,实际上是一个一个的字节流,包括肉眼不容易注意的空格字符,以及根本看不出来的回车换行,制表字符。

输入的确认可能是代码中最复杂的部分,因为要预见程序可能遇到的用户错误行为,并进行适当处理。

ubuntu中输入汉字,scanf利用字符串也可以保存,一个汉字占3个字节。

 

总结: 处理混合输入用scanf,单字符的getchar,文本行的gets,文件用fgets

    处理混合输出用printf, 单字符的putchar, 文本行的puts,文件用fputs

     特别sprintf也是处理混合输出,但不是显示在屏幕,而是写进字符串里——把数值转成字符串。

     stdlib.h提供了atoi, atof ,atol——把字符串转成数值。(功能上scanf也可以,但需要键盘输入)

为了处理字符串,c语言提供了string.h众多函数;为了处理单字符,c语言提供了ctype.h众多函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是毕设指导记录表: | 周次 | 完成内容 | 教师指导要点 | 下周计划 | | --- | --- | --- | --- | | 第1周 | 确定毕设题目,撰写开题报告 | 1.明确研究目标和意义<br>2.确定研究方法和技术路线<br>3.明确研究步骤和计划 | 查阅相关文献,准备开题答辩 | | 第2周 | 完成开题答辩,开始调研文本检测算法 | 1.对开题报告进行修改和完善<br>2.了解和选择文本检测算法<br>3.确定实验数据集 | 确定文本检测算法,并开始进行算法实现 | | 第3周 | 实现MSER文本检测算法 | 1.熟悉MSER文本检测算法的原理和流程<br>2.实现MSER文本检测算法<br>3.对算法进行测试和调试 | 开始研究NMS算法 | | 第4周 | 实现NMS算法 | 1.熟悉NMS算法的原理和流程<br>2.实现NMS算法<br>3.对算法进行测试和调试 | 将MSER和NMS算法进行结合 | | 第5周 | 完成MSER-NMS文本检测算法 | 1.将MSER和NMS算法进行结合<br>2.对算法进行测试和调试<br>3.记录实验结果 | 开始研究其他文本检测算法 | | 第6周 | 研究EAST文本检测算法 | 1.了解EAST文本检测算法的原理和流程<br>2.对算法进行实现和测试<br>3.记录实验结果 | 开始研究文本识别算法 | | 第7周 | 研究CRNN文本识别算法 | 1.了解CRNN文本识别算法的原理和流程<br>2.对算法进行实现和测试<br>3.记录实验结果 | 完成算法的优化和改进 | | 第8周 | 对算法进行优化和改进 | 1.分析算法存在的问题<br>2.对算法进行优化和改进<br>3.记录实验结果 | 开始写论文 | | 第9周 | 撰写论文绪论 | 1.明确论文的主要内容和结构<br>2.撰写论文绪论部分 | 撰写论文的相关技术节 | | 第10周 | 撰写论文的相关技术节 | 1.撰写算法设计和实现节<br>2.撰写实验结果分析节 | 撰写论文的结论和展望部分 | | 第11周 | 撰写论文的结论和展望部分 | 1.总结论文的研究内容和创新点<br>2.展望论文的未来研究方向 | 完成论文初稿 | | 第12周 | 完成论文初稿 | 1.对论文进行排版和修改<br>2.检查论文的语言表达和格式<br>3.提交论文初稿 | 开始准备答辩 | | 第13周 | 答辩准备 | 1.熟悉毕设答辩流程和要求<br>2.准备答辩PPT和演讲稿<br>3.进行答辩模拟练习 | 参加毕设答辩 | | 第14周 | 答辩后的修改和完善 | 1.根据答辩意见进行论文修改和完善<br>2.完成论文终稿并提交 | 无 | 以上是14周的毕设指导记录表,具体的内容和进度安排可以根据实际情况进行适当调整。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值