一、iostream(輸入輸出流)
i, o分別表示 istream (輸入流) 和 ostream(輸出流);stream表示 流:隨著時間順序生成或消耗;合起來就是iostream(輸入輸出流)。
1.1、4個IO對象
- cin:標(biāo)準(zhǔn)輸入;
- cout:標(biāo)準(zhǔn)輸出;
- cerr:標(biāo)準(zhǔn)錯誤,通常用來輸出警告和錯誤信息給程序使用者;
- clog:常用于輸出程序執(zhí)行時的一般信息;
(后兩個第一次知道,逃
1.2、例子
#include <iostream>
int main()
{
std::cout << "Enter two Numbers:" << std::endl;
int val1, val2;
std::cin>> val1 >> val2;
std::cout << "The sum of " << val1 << " and " << val2
<< " is " << val1+val2 << std::endl;
return 0;
}
- 第一行告訴編譯器要使用iostream庫;
- 輸出流(寫入到流):
- 輸出操作符
<<將值寫入到流,即輸出。該操作符每次接受兩個操作數(shù):左操作數(shù)必須是ostream對象;右操作數(shù)是要輸出的值; - C++中的每個表達式都會產(chǎn)生一個結(jié)果,就是說
std::cout<<a;也會產(chǎn)生返回值,但輸出操作符<<返回的是輸出流本身,所以可以將多個輸出連接在一起,形如std::cout<<a<<b;;
- 輸出操作符
- 輸入流(讀入到流):跟輸出流類似;
-
std表示使用命名空間 std中定義的的名字; -
endl稱為操縱符(manipulator),將它寫入流時,具有換行的效果,并同時會刷新相關(guān)聯(lián)的緩沖區(qū)(buffer)。通過刷新緩沖區(qū),用戶可以立即看到寫入流中的輸出;
二、控制結(jié)構(gòu)
2.1、while語句和for語句
問題:求1到10(包括10)的和?
while語句:
#include <iostream>
int main()
{
int sum = 0, val = 1;
while (val <= 10){
sum += val;
++val;
}
std::cout << "The sum of 1 to 10 inclusive is " << sum << std::endl;
return 0;
}
- while語句的結(jié)構(gòu)形式:
while (condition) while_body_statement;。表示,通過測試condition為真時執(zhí)行while_body_statement,重復(fù)這一過程直到condition為假-
condition是一個可求值得表達式。如果結(jié)果非零,那么為真;如果結(jié)果為為零,則為假; -
<=表示小于等于操作符; -
sum += val;等價于sum = sum + val;。類似的,++val;等價于val = val + 1;;
-
還有另一種情形:只對輸入的值進行求和
#include <iostream>
int main()
{
int sum = 0, val;
while (std::cin >> val){//windows系統(tǒng)下輸入 ctrl+z 可以作為文件結(jié)束符(end-of-file)
sum += val;
}
std::cout << "The sum is " << sum << std::endl;
return 0;
}
for語句:
#include <iostream>
int main()
{
int sum = 0;
for (int val = 1; val <= 10; ++val){
sum += val;
}
std::cout << "The sum of 1 to 10 inclusive is " << sum << std::endl;
return 0;
}
- for語句可以簡化管理循環(huán)變量.不像在while語句中,需要
val這樣的值來控制循環(huán)。其執(zhí)行流程為:- 1,創(chuàng)建
val并初始化為1 - 2,測試
val是否小于或等于10 - 3,如果
val小于或等于10,執(zhí)行for循環(huán)體:把val值加到sum變量中;否則,執(zhí)行for語句體之后的語句 - 4,
val加1 - 5,重復(fù)第2~4步
- 1,創(chuàng)建
2.2、if語句
假設(shè)這樣一種情況:將用戶輸入的兩個數(shù)作為上、下界,然后用上面的循環(huán)求和。這個時候我們就需要判定那個數(shù)值更大而作為上界,另一個作為下界。
#include <iostream>
int main()
{
std::cout << "Enter two Numbers:" << std::endl;
int val1, val2;
std::cin>> val1 >> val2;
int lower, upper;
if (val1 <= val2) {
lower = val1;
upper = val2;
} else {
lower = val2;
upper = val1;
}
int sum = 0;
for (int val = lower; val <= upper; ++val){
sum += val;
}
std::cout << "The sum of "<< lower << " to "<< upper <<" inclusive is " << sum << std::endl;
return 0;
}
- 代碼就不用多說了,一眼就能看出來
三、類的簡介
假設(shè)有書店問題:某書店以文件形式保存每一筆交易。每筆交易形式如:0-201-70353-x 4 24.99 第一個元素是ISBN,第二個為銷售冊數(shù),第三個為單價。店主定期查看這個文件,統(tǒng)計每本書的銷售冊數(shù)、總銷售額以及平均售價。
3.1、Sales_item類
-
Sales_item對象上的操作
- 加法
+:將兩個對象相加; - 輸入
>>: 讀取一個對象; - 輸出
<<:輸出一個對象; - 賦值
=:將一個對象賦給另一個對象; - 對比
?:對比兩個對象是否屬于同一本書(函數(shù)same_isbn);
- 加法
-
初探成員函數(shù)
成員函數(shù)是由類定義的函數(shù),也稱為類方法。如
item1.same_isbn(item2)調(diào)用類Sales_item的成員函數(shù)same_isbn來對比item1和item2。
注:標(biāo)準(zhǔn)庫的頭文件用尖括號
<>括起來,非標(biāo)準(zhǔn)庫用雙引號""。
END.