1.2輸入輸出
C++的iostream
庫(kù)來(lái)提供輸入和輸出巫员。iostream
包含istream
和ostream
兩個(gè)類(lèi),分別代表輸入流和輸出流钻洒。
標(biāo)注庫(kù)定義了4個(gè)io對(duì)象酗昼。為了處理輸入傻昙,我們使用一個(gè)名為cin
的istream
對(duì)象闺骚。這個(gè)對(duì)象被稱為標(biāo)準(zhǔn)輸入。對(duì)于輸出妆档,我們使用一個(gè)名為cout
的ostream
類(lèi)型的對(duì)象僻爽。此對(duì)象也被稱為標(biāo)準(zhǔn)輸出。標(biāo)準(zhǔn)庫(kù)還定義了其他兩個(gè)ostream
對(duì)象贾惦,名為cerr
和clog
胸梆。通常用cerr
來(lái)輸出警告和錯(cuò)誤信息,因此也被稱為標(biāo)準(zhǔn)錯(cuò)誤须板。而clog
用來(lái)輸出程序運(yùn)行時(shí)的一般性信息碰镜。
#include "stdafx.h"
#include <iostream>
int main()
{
std::cout << "enter tow numbers" << std::endl;
int v1 = 0, v2 = 0;
std::cin >> v1 >> v2;
std::cout << "the sum of " << v1 << "and" << v2 << "is" << v1 + v2 << std::endl;
return 0;
}
<<
是輸出運(yùn)算符,接受兩個(gè)運(yùn)算對(duì)象:左側(cè)的運(yùn)算對(duì)象必須是一個(gè)ostream
對(duì)象习瑰,右側(cè)的運(yùn)算對(duì)象是要打印的值绪颖。此運(yùn)算符將給定的值寫(xiě)個(gè)給定的ostream
對(duì)象中。輸出運(yùn)算符的計(jì)算結(jié)果就是我們寫(xiě)入給定值的ostream
對(duì)象甜奄。
endl
是一個(gè)被稱為操縱符的特殊值柠横。寫(xiě)入endl
的效果是結(jié)束當(dāng)前行,并將與設(shè)備關(guān)聯(lián)的緩沖區(qū)中的內(nèi)容刷到設(shè)備中课兄。緩沖刷新操作可以保證目前為止程序所產(chǎn)生的所有輸出都真正寫(xiě)入輸出流中牍氛,而不是僅停留在內(nèi)存中等待寫(xiě)入流。
std::
指出名字cout
和endl
是定義在名為std的命名空間中的烟阐。
>>
是輸入運(yùn)算符搬俊,同樣接受兩個(gè)運(yùn)算對(duì)象:左側(cè)運(yùn)算對(duì)象是一個(gè)istream
對(duì)象紊扬,右側(cè)是一個(gè)對(duì)象。此運(yùn)算符從給定的istream
讀取數(shù)據(jù)唉擂,并存入給定對(duì)象中餐屎。輸入運(yùn)算符的計(jì)算結(jié)果就是給定的istream
對(duì)象。
1.3注釋
單行注釋以雙斜線(//)開(kāi)始楔敌,以換行符結(jié)束啤挎。
多行注釋以/*
開(kāi)始以*/
結(jié)束驻谆。
1.4控制流
1.4.1While語(yǔ)句
#include "stdafx.h"
#include <iostream>
int main()
{
int sum = 0, num = 1;
while (num <= 10) {
sum += num;
num++;
}
std::cout << "Sum of 1 to 10 inclusive is " << sum << std::endl;
return 0;
}
1.4.2for循環(huán)
#include "stdafx.h"
#include <iostream>
int main()
{
int sum = 0;
for (int num = 1; num <= 10; num++) {
sum += num;
}
std::cout << "Sum of 1 to 10 inclusive is " << sum << std::endl;
return 0;
}
1.4.3 讀取數(shù)量不定的輸入數(shù)據(jù)
#include <iostream>
int main()
{
int sum = 0, value = 0;
while(std::cin>>value)
sum += value;
std::cout << "Sum is: " << sum << std::endl;
return 0;
}
從標(biāo)準(zhǔn)輸入讀取下一個(gè)數(shù)卵凑,保存在value中。輸入運(yùn)算符返回其左側(cè)運(yùn)算對(duì)象胜臊,在本例中是std::cin
勺卢。因此,此循環(huán)條件實(shí)際上檢測(cè)的是std::cin
象对。
當(dāng)我們使用一個(gè)isstream
對(duì)象作為條件時(shí)黑忱,其效果是檢測(cè)流的狀態(tài)。如果流是有效的勒魔,即流未遇到錯(cuò)誤甫煞,那么檢測(cè)成功。當(dāng)遇到文件結(jié)束符(end-of-file)
冠绢,或遇到一個(gè)無(wú)效輸入時(shí)(例如讀入的值不是一個(gè)整數(shù))抚吠,istream
對(duì)象的狀態(tài)會(huì)變?yōu)闊o(wú)效。處于無(wú)效狀態(tài)的istream
對(duì)象會(huì)使條件變?yōu)榧佟?/p>
1.4.4 if語(yǔ)句
統(tǒng)計(jì)輸入中每個(gè)值連續(xù)出現(xiàn)的次數(shù):
#include <iostream>
int main()
{
int currVal = 0, val = 0;
if(std::cin >> currVal){
int cnt = 1;
while(std::cin >> val){
if(val == currVal)
++cnt;
else{
//打印前一個(gè)值的個(gè)數(shù)
std::cout << currVal << " occurs "
<< cnt << " times" << std::endl;
currVal = val;
cnt = 1;
}
}
//打印最后一個(gè)值的個(gè)數(shù)
std::cout << currVal << " occurs "
<< cnt << " times" << std::endl;
}
return 0;
}
1.5類(lèi)簡(jiǎn)介
1.5.1 Sales_item類(lèi)
Sales_item
類(lèi)的作用是表示一本書(shū)的總銷(xiāo)售額弟胀、售出冊(cè)數(shù)和平均售價(jià)楷力。