一 ·首先 昨日内容回顾 思维导图:(日更附 养成习惯 加油)
补充Linux思维导图 衔接一下之前学过的
二 课堂知识提炼
练习:统计文件行数
想查看是否正确就用 grep -c “文件名” 来看 会输出结果
练习:把file.c里面的文件拷贝到lyq.c里面
思考:fgetc和getchar有什么区别?
实质上没啥区别 :getc是用fgetc实现的宏,getchar相当于getc(stdin)
练习:大小写转换
补充昨日: (见上一条 不够详细)
注意:::
fgets
| char *fgets(char *s, int size, FILE *stream);
| 功能:
| 从流中读取一个字符串
| 参数:
| s:存放字符串空间首地址
| size:最多读取字符的个数
| stream:文件流指针
| 返回值:
| 成功返回存放字符串空间的首地址
| 失败返回NULL
| 读到文件末尾返回NULL
fgets() 的原型为:
# include <stdio.h>
char *fgets(char *s, int size, FILE *stream);
fgets() 虽然比 gets() 安全,但安全是要付出代价的,代价就是它的使用比 gets() 要麻烦一点,有三个参数。它的功能是从 stream 流中读取 size 个字符存储到字符指针变量 s 所指向的内存空间。它的返回值是一个指针,指向字符串中第一个字符的地址。
其中:s 代表要保存到的内存空间的首地址,可以是字符数组名,也可以是指向字符数组的字符指针变量名。size 代表的是读取字符串的长度。stream 表示从何种流中读取,可以是标准输入流 stdin,也可以是文件流,即从某个文件中读取,这个在后面讲文件的时候再详细介绍。标准输入流就是前面讲的输入缓冲区。所以如果是从键盘读取数据的话就是从输入缓冲区中读取数据,即从标准输入流 stdin 中读取数据,所以第三个参数为 stdin。
三 ·自选练习题
1--Linux一般包括(内核(Kernel) 命令解释层(shell) 实用工具)三个主要部分。
2--
3---小明想在linux的tmp临时目录下新建一个名为“ruanjian”的目录,请写出新建目录的linux命令;mkdir /tmp/ruanjian
然后进入这个“ruanjian”目录,在当前目录下新建一个空文件,名为“jiying.txt”,请写出相应命令;cd /tmp/ruanjian;touch jiying.txt
在当前目录下,小明想将主目录下的文件夹“hello”及其子目录和文件都复制到当前目录(即“ruanjian”)下,请写出复制命令 cp -r /root/hello .
;接着小明要将当前目录下的“hello”目录里面的“hello.doc”文件删除不提示,请写出相应命令;
rm -f hello/hello.doc
最后小明将当前目录下的“jiying.txt”文件移动到“hello”目录中并更名为"jisuanji.txt",请写出相应命令
mv jiying.txt hello/jisuanji.txt
4--小明进入linux系统打开终端后,不知道当前在哪个目录下,请问应该用什么命令查看用户当前的目录路径?
pwd
查看后得知是在“/root”目录下,但小明想进入home目录下的jisuanji目录,查看一下jisuanji目录下都是有哪些文件和目录,请写出相应命令?
cd /home/jisuanji;ls
查看后发现jisuanji目录下没有想要的“myfile.num.txt”文件,然后小明想要用find命令查看一下,请写出相应命令?
find / -name myfile.num.txt
查到后发现此文件在“/tmp/hello”目录下,然后,小明想确认下此文件中包含“name”字符串的行数是多少,请写出相应命令。
grep -c name /tmp/hello/myfile.num.txt