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流的理由。
iostream為內置類型類型對象提供了輸入輸出支持,同時也支持文件的輸入輸出,類的設計者可以通過對C/C++庫的擴展,來支持自定義類型的輸入輸出操作getline 和 >>操作符的區別是什麼?函數getline(istream &in,string &s);用於從輸入流in中讀取字符串到s中,以換行符'\n'分開。指針和引用之間的區別是什麼?
從現象上看:指針在運行時可以改變其所指向的值,而引用一旦和某個對象綁定後就不再改變 ,從內存分配上看:程序為指針變量分配內存區域,而引用不分配內存區域,一個引用必須總是指向某些對象。
在C/C++裡,引用應被初始化。不存在指向空值的引用這個事實意味著使用引用的代碼效率比使用指針的要高。為什麼函數main(int argc,char argv[])有時候帶參數?他們有何作用?