C++學習小記
之前“看”過C++,但是純粹只是為了應付考試。現在想重新學習,久仰《C++ primer》大名,書之厚令我生畏,好記性不如爛筆頭,遂以博客形式筆記之。
本人編程菜鳥一枚,當中如有任何錯誤,歡迎指正!謝謝!
聲明:本文屬原創,轉載請留言我,謝謝!
一 "<<"與">>"
如果輸入輸出語句較長,那麼可以直接分行,該語句直到 “;” 結束
放書中例子:
std::cout << "the sum of " << v1 << "and" << v2 << "is" << v1+v2 <<std::endl;
但是,被拆分的每一行語句後不能加“;”,因為這樣一句話變成了幾句獨立的話。
二 兩個注釋符號 “//”,“/*...*/”
“//” :單行注釋符,以換行符結束。
“/*...*/” : 以“/*”開始,”*/“結束,中間可以換行。但注意防止嵌套,否則很容易造成語句錯誤(遇到前面一個”*/“,注釋提前終止)
三 練習while語句時自己犯的一個錯誤
題目:編寫程序,提示用戶輸入兩個整數,打印出這兩個整數所指定的范圍內的所有整數
直接上錯誤代碼:
#include<iostream> using namespace std; int main() { int c1,c2,val; cout << "please input two numbers" << endl; cin >> c1 >> c2; while((val <= c1 && val >=c2) || (val <= c2 && val >=c1)) { cout << val << " "; } return 0; }
自我分析:
錯誤原因之一 :顯然對while()語句沒有理解。當判斷條件為真是,執行循環體,否則跳出循環。初始化中系統自給 "val" 賦初值為零。所以程序可能一直跳不出循環。比如 "c1 = 1,c2 = 3"
錯誤原因之二 :“val” 的值在循環過程中並沒有改變。程序不會自動地遍歷“c1”和“c2”之間的值。
經過分析,附上可執行的正確代碼:
#include<iostream> using namespace std; int main() { int c1,c2,val; cout << "Please enter input two numbers" << endl; cin >> c1 >> c2; if (c1 <= c2){ val = c1; while(val <= c2){ cout << val << " ";//添加空格以區分數字 ++val; } } else{ val = c2; while(val <= c1){ cout << val << " "; ++val; } } return 0; }