《用C++為名字裝輸出框》
阿新 • • 發佈:2018-12-18
如何用更為生動的語言來問候,就像下面的輸入輸出一樣:
Please enter your first name: Bob
**************
* *
* Hello,Bob! *
* *
**************
我們的程式會產生五行輸出。
第一行是框架的開始。它是一個*字元組成的序列,它的長度是人的名字、問候語("Hello,")、兩端的空格和*所佔的字元的總長。
第二行由相應數目的空格和兩端的*組成。
第三行的結構是一個*、一個空格、問候語、一個空格和一個*。
最後兩行分別與第二行和第一行相同。
為了完成這樣的輸出,明智的實現策略是每次一行的進行輸出。
首先讀取名字,然後使用名字來組成問候語,接下來使用問候語來建立每行的輸出。
下面的程式就採用了這種策略來解決這個問題:
//ask for a person's name,and generate a framed greeting #include<iostream> #include<string> using namespace std; int main() { cout<<"Please enter your first name: "; string name; cin>>name; //build the message that we intend to write const string greeting="Helllo,"+name+"!"; //build the second and fourth lines of the output const string spaces(greeting.size(),' '); const string second="* "+spaces+" *"; //build the first and fifth of the output const string first(second.size(),'*'); //write it all cout<<endl; cout<<first<<endl; cout<<second<<endl; cout<<"* "<<greeting<<" *"<<endl; cout<<second<<endl; cout<<first<<endl; return 0; }
const(常量)可以作為變數定義的一部分。這麼做可以保證,在變數的生存期內,不會改變它的值。
在一個程式中,指出哪些變數不會改變,可以讓程式更容易理解。
如果說一個變數是常量(const),必須在定義的時候初始化,否則就再也沒有機會給它賦值了。
用來初始化const變數的值,可以不是常數(constant)。
通過使用圓括號,可以要求系統根據表示式來構造(construct)變數。
greeting.size()是一個呼叫成員函式(member function)的例子。
事實上,名叫greeting的物件含有一個成員叫size,它是一個函式,我們可以通過呼叫它獲得一個值。
' '是一個字元直接量
字元直接量總是被單引號括住;而字串直接量總是被雙引號括住。
字元直接量的型別是內置於語言核心的char型別。
如果我們想要得到字元 ' 或者 \ ,我們必須在前面加上 \ 。