第一天学习

xiaoxiao2024-05-08  45

day01AM: C++课程分两部分: core C++,它是标准的C++,不依赖于平台的,不依赖于任何的操作系统。讲15天(三周)。 几乎讲遍 U C++ Unix下的C++编程,它依赖于Unix操作系统。5天(一周)。 常用技术 Fedora Core4 username:root password:121315 username:lukuijun password:lukuijun 1、打开vi并建立文件名为cpp的文件 $ vi cpp.sh 2、不要显示行号 set nonu 按esc后,输入 :set nonu 3、在vi中编辑文本 date 日期 echo I will try my best to learn C++. 4、保存退出,当我们按Esc键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令 :w 保存; :w finename 另存为filename; :wq!保存退出; :wq! filename 注:以filename为文件名保存后退出; :q!不保存退出; :x应该时保存并退出,功能和:wq!相同 5、列出文件信息 $ ls -a 显示cpp.sh文件 6、创建一个目录 mkdir directoryfile $ mkdir day01 7、移动文件cpp.sh 到day01下面去 $ mv cpp.sh day01/ 8、进入到目录day01下看看 $ cd day01 $ ls 列出文件cpp.sh 9、看看能不能执行app.sh $ ./cpp.sh 显示-bash:./app.sh:Permission denied 权限被否定,不能在执行 10、设置权限 $ chmod a+x ccp.sh 注意:文件/目录权限设置命令:chmod 这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限。该命令有两种用法: 用包含字母和操作符表达式的文字设定法,其语法格式为:chmod [who] [opt] [mode] 文件/目录名 其中who表示对象,是以下字母中的一个或组合: u:表示文件所有者 g:表示同组用户 o:表示其它用户 a:表示所有用户 opt则是代表操作,可以为: +:添加某个权限 -:取消某个权限 =:赋予给定的权限,并取消原有的权限 而mode则代表权限: r:可读 w:可写 x:可执行 例如:为同组用户增加对文件a.txt的读写权限: chmod g+rw a.txt 关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有 则有0表示,那么rwx r-x r--则可以表示成为:111 101 100 再将其每三位转换成为一个十进制数,就是754。 例如,我们想让a.txt这个文件的权限为: 自己 同组用户 其他用户 可读 是 是 是 可写 是 是 可执行 那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十 进制数,就得到664,因此我 们执行命令:chmod 664 a.txt 11、执行app.sh文件 $ ./app.sh 得到结果: Sat Mar 21 00:51:07 CST 2009 echo I will try my best to learn C++. 注意:直接执行app.sh,提示说-bash: app.sh:commod not found 命令没有找到。是因为没有设置bash的环境变量 PATH,bash的环境变量怎么设置呢?PATH是系统寻找命令文件的地方,它找命令文件去PATH里面找,PATH里面是什么呢 ?我们去PATH里面看一下,这样显示PATH: $ echo $PATH 显示结果:/usr/kerberos/bin:/usr/local/bin:usr/bin PATH中是若干个用:号分割开的目录。系统在寻找命令的时候,就去PATH里的目录下依次寻找,直到找到为止。如果希 望在当前目录下找,需要在PATH里面加.表示当前目录。 怎么添加环境变量,两个方法: 1)一次性的,关了后重启就失效,$ export PATH=$PATH:. 2)永久性的,写在配置文件里面, 用vi打开配置文件.bash_profile $ vi .bash_profile 找到其中有一行PATH=....,在这行的末尾加上:.然后保存推出注销重新登录生效,直接执行!app.sh就可以了。 注意:.bash_profile在主目录先,~表示主目录 linux 注销 关机 重启命令 a)注销系统的logout命令 Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可: #logout Red Hat Linuxrelease 9(Shike) Kernel 2.4.20.8 on an i686 Login: ← 回到登陆的画面 b)关机或重新启动的shutdown命令 Shutdown命令可以关闭所有程序,依照用户的需要,重新启动或关机。 参数说明如下: 立即关机:-h 参数让系统立即关机。范例如下:   #shutdown –h now ← 要求系统立即关机  指定关机时间:time参数可指定关机的时间;或设置多久时间后运行shutdown命令,范例如下:   #shutdown now ← 立刻关机   #shutdown +5 ← 5分钟后关机   #shutdown 10:30 ← 在10:30时关机   关机后自动重启:-r 参数设置关机后重新启动。范例如下:   #shutdown -r now ← 立刻关闭系统并重启   #shutdown -r 23:59 ← 指定在23:59时重启动 c)重新启动计算机的reboot命令   顾名思义,reboot命令是用来重新启动系统的。常用的参数如下:  -f 参数:不依正常的程序运行关机,直接关闭系统并重新启动计算机。  -I 参数:在在重新启动之前关闭所有网络接口。   虽然reboot命令有个参数可以使用,但是一般只需要单独运行reboot命令就可以了 12、在unix文件系统,要么相对路径要么绝对路径。如果没有带目录,如vi a.txt表示创建或者打开当前目录下的 a.txt文件。/etc/a.txt表示指定目录ect下的a.txt文件。 13、$ g++命令 $ g++ 显示 g++:no input files 恭喜可以使用它来写C++,如果显示command not fond,则需要添加环境变量PATH 14、$ which g++ 功能说明:查找文件。 语  法:which [文件...] 补充说明:which指令会在环境变量$PATH设置的目录里查找符合条件的文件。 参  数:  -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。  -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。  -w  指定输出时栏位的宽度。  -V  显示版本信息 C++ Programming in UNIX 课程介绍 C++语法基础 面向对象程序设计的概念 大量的编程实践 目标 熟练掌握C++语法 具有面向对象程序设计的概念与能力 熟练阅读复杂的C++程序源代码 能独立的设计与完成面向对象的C++程序 课程内容介绍 C++语言基础(六天五章) 保留字 变量,常量 表达式 语句 函数 程序的结构 数据结构与算法 数组 指针 引用 结构 链表与栈 C++面向对象编程 类 构造函数与析构函数 静态成员与友员 函数重载 继承与多态 I/O流 模板 异常 程序设计语言介绍 What computer understand? bits Assembler Language Limited structure Global scope Machine code Primitive High-Level Language Function decomposition Data separation Highe level structure Block Structured Language Encapsulation Flexible data scoping Modularization Object-Oriented Language Inheritance Polymorphism Abstract data types C++程序设计语言 1972,AT&T,Bell Lab.Dennis Ritche,C language 1981,Bell Lab. Bjarne Stroustrup,C extension 1983,C++ named 1997,ANSI(American National Standards Institute) C++ (standard C++) Which C++ will we learn in this course? Standard C++: ANSI C++ is more scalable to different platform such as Unix ,ms Windows ,Mac.. The standard C++ library got supported by most of industry providers You'd better don't know C. ......??? We will try to avoid C library and C syntax. A C++ file can be with .cc,.cp,.cpp exntensions. 14、linux 的文件表示方法,两种方法:绝对路径和相对路径 绝对路径:/a/b/e/g第一个/表示根目录,其他的表示/表示分隔符 相对路径:e/g <==>./e/g 其中.表示当前目录 表示文件或者目录一定是绝对路径或者相对路径。两者必具其一。 程序员应该具备的计算机知识1 操作系统与应用程序 运行环境与运行机制 系统与命令 运行环境与命令参数 进程 一份正在运行的程序,一个进程 栈 由系统自动管理的一小块内存空间 堆 交给程序员自由挥霍的一大片内存空间 15、设置环境变量在非shell和shell下面不一样 非shell下面这样设置:set env... shell bash下面这样设置:export PATH=... Binary and Hexadecimal Binary: 0101 1000 Decimal: 88 Hexadecimal:0x58 1byte = 8bits 思考:十进制123转换成二进制(除以2取余数),然后在转换成十进制(乘以2加上余数)。 记住十六进制: A 10 B 11 C 12 D 13 E 14 F 15 计算机为什么喜欢用十六进制?因为一个字节正好两个十六进制位。寄存器是一个字节一个字节的,正好相符合。 计算机里面,负数表示方法是先算出对应的二进制正数,然后按位取反,然后加1。称为补码。 思考:-1用补码怎么表示?答案:11111111 编辑器 vi 它编辑的程序为源程序 *.cc 保存推出 :wq或者:x或者 ZZ bash代码自动补全:Tab键 编译器 将源程序编译成目标文件 g++ -c 文件名 编译后位*.o的目标文件 编译器的功能 解释执行与编译执行的差别 熟悉自己常用的编译器,查错能力 连接器 g++ 可执行文件(命令文件) 库与库函数 系统调用 执行:命令 编程周期 源程序--> 编译--> 连接--> 调试--> 运行 Software Lifecycle 开发 测试 维护 更新 熟悉你的环境 可用的UNIX服务器 1、www.openlab.com.cn 2、192.168.1.21 3、192.168.1.23 4、192.168.1.26 Telnet命令介绍 telnet 192.168.1.21 Login:uer your registered user account Password:type in your password 创建自己的学习账号 telnet www.openlab.com.cn login:tarena Password:tarena 欢迎使用达内科技(中国)公司开放实验室服务! Welcome to the OpenLab of Tarena Technologies Inc.Cananda. 请按照以下提示创建你的用户账号。 Please follow the steps to create your own account. (请输入你要注册的账号)Please enter your new account name:XXXX (请输入你的E-mail地址)Please enter your email address:xxx@ss.zz 用自己的账号登录UNIX服务器 Escape character is '^]' SunOS 5.8 login:XXX Choose a new password New password:******* 程序员经常用到的UNIX命令1 简单的文件维护与管理 ls列表 cd改变目录 mkdir创建目录 rm删除文件 cp复制 mv移动文件 cat显示查看文件内容 more 分屏查看 rmdir或者 rm -r删除目录 源程序的编写 vi,ed 编译与连接 gcc,g++,ld c++自动去调用ld 运行与调试 adb, gdb调试 查看运行状态 % ps -ef查看进程状态 % grep aaa a.txt(aaa is the chars in the file name a.txt)在文件里面找字符串 % prstat(ctrl D to exit)看进程状态 % kill pid(pid is a process id)暗杀进程 第一个UNIX上的C++程序 用vi编辑器来编写hello.cc源程序 % vi hello.cc c++程序的扩展名在unix环境下叫.cc,window环境下叫.cpp,但是都可以用。 1)编辑hello.cc $ vi hello.cc /* the first C++ program */ #include <iostream> using namespace std; //mani function int main(){ cout << "Hello world!" << endl; cout << "This is my first C++ program.\n"; } 2)编译hello.cc $ g++ -c hello.cc 3)连接 $ g++ hello.o 4)执行 $ ./a.out 命令改名mv linux mv 命令详解 功能说明:移动或更名现有的文件或目录。 语  法:mv [-bfiuv][--help][--version][-S <附加字尾>][-V <方法>][源文件或目录][目标文件或目录] 补充说明:mv可移动文件或目录,或是更改文件或目录的名称。 参  数:  -b或--backup  若需覆盖文件,则覆盖前先行备份。  -f或--force  若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文 件或目录。  -i或--interactive  覆盖前先行询问用户。  -S<附加字尾>或  --suffix=<附加字尾>  与-b参数一并使用,可指定备份文件的所要附加的字尾。  -u或--update  在移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件。  -v或--verbose  执行时显示详细的信息。  -V=<方法>或  --version-control=<方法>  与-b参数一并使用,可指定备份的方法。  --help  显示帮助。  --version  显示版本信息。 5)将a.out文件改名位abc $ mv a.out abc 6)执行abc $ abc 7)在连接时生成文件可以用-o 自己定义名字 $ g++ hello.o -o hello g++的常用参数 -c 编译成目标文件.o -o指定输出文件名,输出文件名跟在-o后面,用空格分隔。如果不使用这个选项,缺省的输出文件名为a.out。 -g产生有调试信息的可执行文件 -w不产生警告信息 -l连接指定的库文件 -L指定库文件的路径 -i要包含的头文件 -I头文件的路径 -E显示预处理后的程序文件到屏幕上,可以用-o指定输出到文件 -S产生汇编程序 如果没有c、E、S就会生成可执行文件 8)编译链接一起做 $ g++ hello.cc 9)编译连接取名一起做 $ g++ hello.cc -o hello C++程序的基本样式: 1)注释 C++有两种注释:多行注释/*.....*/和单行注释//.. 多行注释 /* the first C++ program */ 单行注释 //main function 2)预处理命令 #开头表示预处理,在编译之前做预处理,处理完在编译 3)预处理的包含命令 #include <文件> 包含进来的意思是把指定文件的内容插入到包含的地方,#include <iostream>就是把iostream的文件的内容插入到这 个地方。包含进来的文件也称为头文件。iostrean.h是不标准的C++,标准的C++头文件一律没有.h 凡是系统自带的头文件都用<>包含,自己写的头文件就用""包含。 4)使用命名空间,C++引入了命名空间。可以这么理解,凡是使用标准C++库里面的东西,都要使用std的名字空间。因 为标准C++把它自带的一切东西都放在了std这个名字空间里面。一个名字空间就象一个区域一样指定一个范围,举例: 市长,不知道哪个市的市长,如果说重庆市市长,就清楚了。std是standard的缩写,保准的东西就放在标准名字空间 里面。 using namespace std; 5)主函数,一切程序中,一律将主函数做为程序唯一的入口。一个程序只能有一个主函数。 int main(){} 在非标准的写法为void main(){},但是标准的都是int main(){} 6)编程风格:代码缩进,很重要。用Tab键盘缩进 7)一个语句以;结尾 8)cout是console output的缩写,表示控制台输出。cin是console input的缩写,表示控制台输入。 9)endl是end line的缩写表示换行。\n也表示换行。 10)用到输入输出一定要包含iostream,即#include <iostream> 注意可以将 #include <iostream> using namespace std; 当成一个C++程序的框架。 练习程序myself.cc 编写一个程序,打印出自己的姓名、性别、年龄、家庭住址、电话号码、爱好,每一条信息输出为一行。 练习程序hi.cc #include <iostream> using namespace std; int main(){ count << "Hi Jian!" << endl; count << "Have a nice day." << ednl; return 0; } 在hi.cc中使用字符串 #include <iostream> using namespace std; int main(){ char name[] = "John"; count << "Hi" << "!" << endl; count << "Have a nice day." << ednl; return 0; } 注意:用双引号""包起来的字符串将原样输出。 问题Email:chenzq@tarena.com.cn 技术论坛:bbs.tarena.com.cn 作业: 1、进制转换,必须会。 2、用*输出三角形或者文字。
转载请注明原文地址: https://www.6miu.com/read-5015231.html

最新回复(0)