C/C++的灵活性是建立在其复杂的语法之上的,因此对于初学者来说,很有可能因此望而却步,如果坚持下去,就会发现,再去看C#、Java语法时会感到很轻松,希望本文能教会你更多东西。
在VIM编辑器的环境下用“:make”(make工具的使用已经在我昨天的文章中 提到的云风的几篇文章中详细介绍到)就可以编译程序,当然其前提是在当前目录下有Makefile文件。运行完“:make”之后。
如果程序中有错误,就 会显示出来。这时候,光标会自动指向第一个出现错误的地方,而且你还可以看到错误的提示。然后,你就可以改正错误,而不用手工找到出错的那一行。记住下面 几个有用的命令:
- #include
- #include
- #include
- int main(){
- using namespace std;
- ostringstream strbuf;
- /*写入字符串*/
- int lucky = 7;
- float pi = 3.14;
- double e = 2.71;
- strbuf << "luckynumber" << lucky << endl
- <<"pi" << pi << endl
- <<"e" << e << endl
- string strval = strbuf.str();/*把stringstream换成字符串*/
- cout << strval;
- ofstream outf;
- outf.open("mydata");/*创建一个磁盘文件来读写*/
- outf << strval;
- outf.close;
- ifstream inf;
- inf.open("mydata");
- string newstr;
- int lucky2;
- inf >> newstr >>lucky2;
- if(lucky != lucky2){
- ceer << "Error wrong lucky number" << endl;
- }
- float pi2;
- inf >> newstr >> e2;
- if (pi2 != pi){
- cerr << "Error wrong pi." << endl;
- }
- inf.open("mydata");
- while (not inf.eof()){
- getline(inf ,newstr);
- cout << newstr << endl;
- }
- inf.close();
- return 0;
- }
流是用来进行读写的对象,为此标准库定义了,而QT定义了来提供对应的功能。流通常用来对文件,网络连接以及字符串进行读写,一个非常有用的特征就是她可以方便的从复合类型数据生成字符串。iostream定义了3个全局流:
cin---键盘标准输入流;cout---控制台标准输出流(控制台屏幕);cerr---标准错误流...也定义了flush和endl等控制符,一个控制符可以添加到:输出流:以此来改变数据输出的格式;输入流:以此改变输入数据的解析方法。给出使用ostrstream流的理由。#t#
iostream为内置类型类型对象提供了输入输出支持,同时也支持文件的输入输出,类的设计者可以通过对C/C++库的扩展,来支持自定义类型的输入输出操作getline 和 >>操作符的区别是什么?函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。指针和引用之间的区别是什么?#t#
从现象上看:指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变 ,从内存分配上看:程序为指针变量分配内存区域,而引用不分配内存区域,一个引用必须总是指向某些对象。
在C/C++里,引用应被初始化。不存在指向空值的引用这个事实意味着使用引用的代码效率比使用指针的要高。为什么函数main(int argc,char argv[])有时候带参数?他们有何作用?