1. 程式人生 > >VS2010下編譯輸入輸出流cout和cin ,printf

VS2010下編譯輸入輸出流cout和cin ,printf

printf是c中保留下來的,cout 和cin是c++的輸入輸出流,存在於檔案iostream檔案中,這個是C++自帶的標頭檔案

遇到問題,編譯cout時,提示,找不到cout,原因:沒有將iostream包含在VC++的庫中,解決方法:在屬性-VC++的附加包含目錄中新增include檔案:D:\Microsoft Visual Studio 10.0\VC\include。

#include<iostream>

using namespace std;  #引用名稱空間std

寫了using namespace std 就可以直接用cout cin endl等了

如果不寫using namespace std, 必須這樣使用

std::cout <<表示式<<std::end;

注意std::endl,endl前也要加std::

1. <iostream>和<iostream.h>是不一樣,前者沒有後綴,實際上,在你的編譯器include資料夾裡面可以看到,二者是兩個檔案,開啟檔案就會發現,裡面的程式碼是不一樣的。

字尾為.h的標頭檔案c++標準已經明確提出不支援了,早些的實現將標準庫功能定義在全域性空間裡,宣告在帶.h字尾的標頭檔案裡,c++標準為了和C區別開,也為了正確使用名稱空間,規定標頭檔案不使用字尾.h。

因此,當使用<iostream.h>時,相當於在c中呼叫庫函式,使用的是全域性名稱空間,也就是早期的c++實現;

當使用<iostream>的時候,該標頭檔案沒有定義全域性名稱空間,必須使用namespace std;這樣才能正確使用cout。

2.所謂namespace,是指識別符號的各種可見範圍,用於定義名稱空間的關鍵字,std就是那個名稱空間,包含標準程式庫。

C++標準程式庫中的所有識別符號都被定義於一個名為std的namespace中。

由於namespace的概念,使用C++標準程式庫的任何識別符號時,可以有三種選擇:

1、直接指定識別符號。例如std::ostream而不是ostream。完整語句如下:


std::cout << std::hex << 3.4 << std::endl;

2、使用using關鍵字。
using std::cout;
using std::endl;

以上程式可以寫成
cout << std::hex << 3.4 << endl;

3、最方便的就是使用using namespace std;

例如:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;

 

c++中 ::的作用

(1)作用域限定符,當在類體中直接定義函式時,不需要在函式名字的前面加上類名,但是在類體外實現函式定義的時候,必須加上類名並且加上作用域限定符。Student::Display();