C++基础课 —>vi编辑器与C入门Demo

vi编辑器的使用: vimtutor
vi打开 -> 正常模式,按i进入编辑模式,按esc返回正常模式,按Shift+:进入命令模式,在命令模式下输入wq回车,保存并退出;按q!则不保存就退出。
在命令模式下,命令后面加!表示强制执行此命令;在指令前加!表示执行外部shell命令。
在命令模式下输入:set nu  打开行号,Set nonu关闭行号


vi下面绝大多数快捷操作都在正常模式下进行
移动光标方向:h左  j下  k 上  l右


没有特别说明,则以下操作都在正常模式下进行:

p 粘贴复制或删除的内容
yw 复制一个单词,并且包括后面的空格
ye 复制一个单词,但不包括后面的空格
y$ 复制从光标开始到行为之间的内容
y0 复制从光标开始到行首之间的内容
yy 复制光标所在的一整行内容
数量+yy 复制指定数量的行
____________________________________________________

x 删除单个字符
dw 删除一个单词,包括后面的空格
de 删除一个单词,不包括后面的空格
d$ 删除从光标开始到行尾之间的内容
d0 删除从光标开始到行首之间的内容
dd 删除光标所在的一整行内容
数量+dd 删除指定数量的行
删除类命令所删除的内容会放到一个类似剪切板的缓冲区内,可以通过粘贴找回来
____________________________________________________

r 替换单个字符
R 从光标所在位置开始替换,直到esc结束,只替换当前行
cw 删除一个单词,并进入编辑模式
ce 删除单词并进入编辑模式
c$
c0
cc


u 撤销操作
Ctrl+r 恢复撤销
先删除再进入编辑模式


在命令模式下:行号,行号s/老内容/新内容/g(可加c有选择的替换)
在命令模式下:行号,行号s#老内容#新内容#g(可加c有选择的替换)
____________________________________________________

/ 查找内容,按n查找下一个,按N或Shift+n查找上一个
? 查找内容,按N查找下一个,按n或Shift+N查找上一个
在命令模式下:set ic  关闭大小写敏感,set noic打开大小写敏感
在命令模式下:set hls is 给查找出来的内容加上背景色
____________________________________________________
定位
行号+Shift+g 跳转到指定行数,不加行号则跳转到文件尾
字符数+(hjkl) 向(左下上右)跳转指定数量的字符数
w 向右跳一个单词的位置,跳到词首
e 向右跳一个单词的位置,跳到词尾
b 向左跳一个单词的位置
$ 直接跳到行尾
0 直接跳到行首
____________________________________________________


Shell命令:
sleep 让进程睡眠,单位是秒
date 打印时间
cal 打印当月日历
history 查看以往使用的命令

Shell脚本:

一般源文件即为执行文件,文件名用.sh结尾(仅作区分)。









C语言:

使用vi写源代码,保存为.c,然后使用gcc编译,(格式:gcc空格源文件名),生成的可执行程序名字,默认为a.out,使用-o参数可以自己制定生成的文件名(例如:gcc one.c -o one)


凡是以#开头的C语句均为预处理指令,#include <stdio.h>   把stdio.h这个头文件包含到文件内,然后stdio.h中的任何工具都可以使用了。
任何C代码都必须要有一个main函数,且main函数有且只能有一个,程序执行从main的{开始,到}结束,则整个程序都结束。


使用vi看到里面的内容
(root@linux:/day02# vi /usr/include/stdio.h)
________________________________________________________


// … 单行注释
/* … */ 多行注释,内部不允许嵌套多行注释!
printf(" … "); 输出函数,使用此函数可以往终端打印指定内容
\n 换行
return 0; 函数正常结束返回值


C语言的执行语句以;结束
字符用' … '引起来
________________________________________________________


变量-概念:
变量是一个有名字、有空间、有地址的用来存储数据的容器


变量-类型:
char 字符型 存放1字节数据 存字符
short 短整型 存放2字节数据 存整数
int 整型 存放4字节数据 存整数
float 单精度浮点型 存放4字节数据 存小数
double 双精度浮点型 存放8字节数据 存小数
________________________________________________________


占位符:
char %c
short %hd
int %d
float %f
double %lf


%g 输出浮点类型的数据,过滤掉无意义的0


________________________________________________________


scanf("%d",变量地址); 从终端获取内容,&变量名  可以获取相应变量的地址


用scanf("%d%d", &a, &b); 同时获取两个数据的时候,在终端输入数据的格式是:10空格10


ASCII表
.
.
65 - 'A'
66 - 'B'
.
90 - 'Z'
.
97 - 'a'
98 - 'b'
.
122 - 'z'
.


sizeof() 关键字,可以用来测量类型或者变量占用的空间大小


练习:从终端输入一个矩形的长和宽,分别输出此矩形的面积和周长。


——————————————————————————
75(10) --> 01001011(2)




01001011(2) --> 75(10)
  0   |  1  |   0  |   0  |   1  |  0  |   1  |   1    二进制
2^7|2^6|2^5|2^4|2^3|2^2|2^1|2^0 权值
128 | 64 |  32 |  16|   8  |  4  |   2  |   1   权值结果


125 -64 = 61-32 = 29-16 =13-8 = 5-4=1-1 =0
0111 1101


负数的二进制转换:
负数的二进制以代码形式存在,整数的二进制有一个最高标志位,最高标志位为0则为正数,最高标志位为1则为负数。
最高标志位有存储空间来决定,1个字节只有8个二进制位,则其最高标志位是从右向左数第八个二进制位,4个字节的空间有32个二进制位,则其最该标志位是从右向左数第32个二进制位。
1011 0111


-115 转二进制:
115-64=51-32=19-16=3-2=1-1=0


原码:0111 0011
反码:1000 1100
补码:1000 1101
负数的二进制求解,先取其绝对值算出二进制,得到原码,原码按位取反得到反码,反码加1得到补码,此补码就是负数对应的二进制形式
二进制转十进制:
补码按位取反加1得到原码,然后用原码求十进制,其十进制结果前加负号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值