1、從Hello World開始
1.1 編寫源文件
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
std::string s;
std::cin >> s;
std::cout << s << std::endl;
return 0;
}
main函數的返回類型必須是int
1.2 編譯源文件,生成目標文件
在源文件所在目錄下,輸入以下內容:
g++ helloworld.cpp -o helloworld.exe
這句話的意思是:調用g++編譯器,將helloworld.cpp編譯成名爲helloworld.exe的可執行的程序文件。
-o 選項指定了編譯生成的可執行程序文件的文件名。如果忽略了 -o 選項,g++會默認生成一個名爲a.out的可執行文件。在Linux系統中,這個文件名可以沒有後綴,爲了便於識別,一般會加上後綴,讓人知道其是一個可執行文件。
2、初識輸入輸出
C++並未定義任何輸入輸出語句,也就是說,輸入輸出功能並未內置在C++語言中。C++程序是依靠標準庫中的IO機制來實現輸入輸出的。
iostream庫包含兩個基礎類型:istream 和 ostream,分別表示輸入流(input stream)和輸出流(output stream)。
標準庫定義了4個標準輸入輸出對象:
- istream類型:cin
- ostream類型:cout, cerr, clog
輸出語句:
std::cout << "Hello World!" << std::endl;
<<
是一個運算符,和 +
、-
、*
、/
類似,接受兩個運算對象。左側的運算對象必須是一個ostream對象,右側的運算對象是要輸出的值。表達式會產出一個計算結果,<<
的計算結果就是左側的寫入輸出值的ostream對象。
上面的輸出語句使用了2次<<
,因此第一個<<
的計算結果成爲第二個<<
的左側運算對象。因此我們可以使用輸出鏈的形式來進行輸出操作。
std::endl
被稱爲操縱符。寫入endl
的效果是結束當前行,並將與設備關聯的的緩衝區中的內容刷新到設備中。
>>
運算符類似:它接受兩個運算對象,左側的運算對象是一個istream對象,從中讀入數據,並存入到右側的運算對象中。計算的結果是左側的istream對象。
3、std命名空間
std::cout 和 std::cin 中,前綴 std::
告訴編譯器,cout 和 cin 是定義在名爲 std
的 命名空間(namespace) 中的。std
是標準庫的命名空間,::
稱作 作用域運算符 。
命名空間可以避免命名衝突。
可以使用下面的語法來簡化訪問命名空間的語法:
using namespace std;