0
我有一個關於輸入流函數獲取在C + +的問題。 那些是相同的:輸入流函數獲取在C + +
第一個是:
ifstream infile ;
char ch ;
infile.get(ch);
第二個是:
int c ;
ifstream infile ;
c= infile.get();
請澄清這些兩個用途之間的差。 謝謝。
我有一個關於輸入流函數獲取在C + +的問題。 那些是相同的:輸入流函數獲取在C + +
第一個是:
ifstream infile ;
char ch ;
infile.get(ch);
第二個是:
int c ;
ifstream infile ;
c= infile.get();
請澄清這些兩個用途之間的差。 謝謝。
來源:http://en.cppreference.com/w/cpp/io/basic_istream/get
1)讀取一個字符,如果可用返回。 否則,返回
Traits::eof()
並設置failbit
和eofbit
。2)讀取一個字符並將其存儲到
ch
(如果可用)。 否則,葉子ch
未修改,並設置failbit
和eofbit
。
就你而言,上面的(1)對應於你的代碼的第二塊,(2)對應於你的代碼的第一塊。
兩者之間的區別以突出顯示的文字顯示,ch
會發生什麼情況。在第一種情況下,Traits::eof()
被分配到ch
。在第二種情況下,ch
保持不變。
[此'std :: istream :: get'參考](http://en.cppreference.com/w/cpp/io/basic_istream/get)可能對您有所幫助。 –
你看過[參考文檔](http://en.cppreference.com/w/cpp/io/basic_istream/get)嗎?你不理解文檔/例子中的什麼?你是返回類型是'int'和'char'暗示你已經隱約意識到不同之處.... –