10. if的条件判断任何if判断语句,都要满足条件为真,才执行
这里的条件为真,不是说其中某个变量的值是真是假,而是指整个表达式的值是否为真 。
比如,file的值为NULL(也就是0, 就是假)
if (file) {
//不会执行
}
if (file == NULL) { // 虽然file是假,但是 file == NULL 就是真!
///会执行
}
11. 逻辑值普通表达式和真假没有关系1+2 和真假无关strcmp(name1, name2)和真假无关,这个函数的值就是一个整数 。但是所有比较运算的结果,都是逻辑镇,也就是真或者假比如:1+2 == 3 结果是 真strcmp(name1,name2) == 0 结果是真或者假1+2 > 3 结果是假
12. fscanf
文章插图
13. 回车符rn是属于文件的格式问题 。
当把回车符(n) 保存为rn时,这个回车符,在文件中实际占用两个字节,分别为'r' 'n' 。当使用fgets读取这个文件时,会把文件中的'r' 'n' 这两个字节,识别为一个字符 'n'
所以:字符串 “123n”在文件中占用5个字节, 即保存为"123rn",但是在使用fgets读取这一行时,读到的只是 “123n”, 也就是把rn识别为一个字符n, 另外在最后加上一个字符串结束符
(注意,字符串结束符,仅在c语言中使用,用来表示字符串的结束,在文件中是没有字符串结束符的,除非特别的去写入这个字符)
14. gcc没有安装如果系统是windows7或者windowsXP, 按照这个视频来做,建议一边看一边做:
文章插图
如果系统是windows10, 按照这个视频来做,建议一边看一边做:(群文件里有)
软件MinGW到群里直接下载:
文章插图
15. 输入缓冲区我们在使用scanf或者getchar或者gets输入数据时,从键盘输入的数据,都是先进入”输入缓冲区“ 。
scanf先在输入缓冲区中检查时候有数据,如果输入缓冲区中有数据,就直接从输入缓冲区中读取数据 。
如果输入缓冲区中是空的,程序就会暂停,等待用户输入数据 。
比如:scanf("%c", &x);
如果输入abc和回车, 但是实际只读一个字符,所以输入缓冲区中还会剩下 'a' , 'b' 和 'n'
如果后面还有一个输入语句:
scanf("%c", &y); 或者 y = getchar();
此时就直接从输入缓冲区中读取一个字符 'b', 用户就没有机会输入数据了 。
或者右面还有一个输入语句:
scanf(("%d", &y);
此时直接从输入缓冲区中读取一个整数,但是输入缓冲区中是’a’和’b’, 并不是整数,导致用户没有机会输入数据,而去把’a’和’b’当整数输入,结果当然是输入失败 。
如果输入缓冲区中还剩下数据,就导致后面的scanf或者getchar语句执行时,程序不会暂停让用户输入,而是直接从输入缓冲区中获取数据 。
如果输入缓冲区中还有回车符,就会导致后面的gets语句执行时,程序不会暂停让用户输入,而是直接从输入缓冲区中读取一个空行!(就是一个空字符串),因为 gets是遇到回车符符就结束 。
为了解决这个问题,就可以使用 fflush(stdin);
fflush(stdin) 就会把输入缓冲区的所有数据都清空 。
使得后面的scanf或者getchar能够暂停,让用户重新输入新的数据 。
补充:scanf语句中使用 %d 或者 %f 或者 %lf时, 或自动跳过 空格,回车符,和制表符 。只有%c , 不会跳过任何字符 。
16. 字符串结束符我们编写的源程序,比如 hello.c
这些程序其实是给人看的,计算机并不懂,计算机也不能执行 hello.c需要使用编译器(比如gcc) 把这个程序hello.c转换为计算机能够识别的可执行文件(.exe文件)比如: gcc hello.c就会把hello.c 转换为 可执行文件 a.exe这个a.exe文件此时还是保存在硬盘里 。
当在cmd窗口中, 执行这个a.exe文件时,
会把硬盘中的a.exe文件 复制到内存中执行!
a.exe在内存中执行的过程中,
如果从文件user.txt读取一个字符串,并保存到数组中时,
那么此时会在数组中的字符串最后加一个字符串传结束符
17. getc和fgetcgetc和fgetc的作用是一样的 。getc其实是一个宏,宏的具体用法在后面会详细介绍 。getc的定义如下:#define getc(fp) fgetc(fp)也就是说,代码中如果有 getc(file),就会把它替换成:fgetc(file)在一般的使用场合中,使用 getc和fgetc的效果是一样的
推荐阅读
- Go 语言 Web 框架 Echo 系列教程
- 用25种编程语言来输出“Hello Word”,短则1句,长则9行
- Plotnine库:是R语言下强大数据可视化ggplot2库的python版
- 收下这十点C语言入门须知
- Go工具之generate
- PHP这门编程语言在各大网站使用情况怎么样?
- 你可能不知道的4种奇怪的编程语言
- C++遍历vector元素的四种方式
- Visual Studio代码扩展入门:用于C/C++静态分析的VS Code配置
- NLP中的文本分析和特征工程