用visual studio 2019執行的,直接開啟官方的資料夾中main_only.cpp會提示選擇合適的啟動項,這裡是因為vs2019開始乙個程式的除錯做了很多的準備,所以要新建乙個專案/解決方案,在原始檔裡新增新cpp檔案(或者已有的檔案比如main_only.cpp),然後就可以愉快的執行檔案了。
原始檔裡含有main函式的檔案只能有乙個,多餘的從專案中移除,否則無法正常執行,因為有多個main()函式衝突。
輸出運算子《返回的是其左側的運算物件(如cout),因此可以連用cout輸入運算子同理
使用c語言的界定符(/*和*/)注釋多行語句時,最好在被注釋的每一行以星號*開頭,使**更加工整美觀:
#include /*
* comment line1
* comment line2
*/
但是多層注釋界定符不能巢狀,最好還是用單行注釋方式注釋掉**段的每一行
// /*
// * 單行注釋的任何內容都會被忽略
// * 包括巢狀的注釋也一樣會被忽略
// */
練習1.7
#include int main()
報錯內容
std::cin>>value
由於》返回的是左值中的istream物件(cin),它的效果是檢測流的狀態。如果流是有效的,即為遇到錯誤則檢測成功。當遇到檔案結束符(windows裡是ctrl+z)或乙個無效的輸入(如輸入的不是乙個整數),istream物件的狀態會變為無效。處於無效狀態的istream物件會使條件為假。
這個地方正好對應了牛客網的不定資料輸入。
編譯器常見的可以檢查的錯誤: 語法錯誤(syntax error), 型別錯誤(type error), 宣告錯誤(declaration error);
#include 用來包含標準庫的標頭檔案時使用尖括號(<>)包圍投檔名。對於不屬於標準庫的標頭檔案,用雙引號包圍("")
由於官方檔案裡有乙個book_sales檔案,做這節的練習1.25時這裡順帶複習一下檔案輸入輸出,標頭檔案, ifstream和ofstream都是命名空間std下的,因此在一開始沒有使用using namespace std時要注意加上std::否則會報錯「未定義識別符號」。
**如下,注意在最後要有fin.close()
#include #include #include #include "sales_item.h"
using namespace std;
int main()
} cout << total << endl;
} else
fin.close();
return 0;
}
C Primer第五版筆記 關聯容器
一 型別 關聯容器支援高效的關鍵字查詢和訪問,標準庫中兩個主要的關聯容器是map和set。map中的元素是鍵值對關鍵字表示索引。set中每個元素只包含乙個關鍵字,set支援高效的關鍵字查詢。關聯容器根據三個特性可以分為8種 1 set還是map 2 關鍵字是否可以重複,允許重複的容器名字中都包含單詞...
C Primer第五版筆記 動態陣列
allocator類 為了讓new分配乙個物件陣列,需要在型別名後跟方括號,括號中是分配物件的數目,該數目必須是整型,但不必是常量 new t 分配的記憶體並不是得到乙個陣列,而是得到乙個陣列元素型別的指標,因此不能對動態陣列呼叫begin和end 與普通陣列不同的是,普通陣列不能定義長度為0的陣列...
C Primer第五版筆記 拷貝控制
拷貝賦值函式 析構函式 三 五法則 default和阻止拷貝 乙個類通過定義五種特殊的成員函式來控制其拷貝 賦值 移動以及銷毀操作 拷貝建構函式 拷貝賦值運算子 移動建構函式 移動賦值運算子和析構函式。這些操作都是拷貝控制操作。當實現自己的類的時候要想好在做這些操作時的規則,因為編譯器通常會自動生成...