《C++ Primer Plus》學習隨記1---模擬EOF
阿新 • • 發佈:2018-12-15
EOF(檔案結束符)—“End Of File”。通常,EOF被定義為值-1。 幾種檢測模擬EOF結束輸入的程式碼實現: 1、eof(),fail() 從輸入流讀取資料, eof( )——如果檢測到EOF,cin.eof()返回true,否則返回false fail( )——用來判斷一個流是否“壞”掉了。如果failbit、badbit中任意一種或兩種被設定,則fail()返回true,否則返回false。
#include <iostream> int main() { using namespace std; char ch; int count=0; cin.get(ch); while(cin.fail()==false) //while(!cin.fail()) { cout<<ch; count++; cin.get(ch); } cout<<endl<<count<<" characters read\n"; return 0; }
2、cin.get(char)——接受一個char型別引數 cin.get(char)返回值是一個cin物件,讀取成功cin轉傳成bool值true,否則為false。
while(cin.get(ch))
{
...
}
3、cin.get()——不接受任何引數 不接受任何引數的cin.get()成員函式返回輸入中的下一個字元(將字元編碼作為一個int值返回),工作方式與getchar()類似。 ch=cin.get();//ch應為int型別 cout.put(char)接收一個char型別引數,工作方式類似putchar()。可以傳遞一個int型別的引數給他,但該引數將被轉換為char型別。 cout.put(ch);
#include <iostream>
int main()
{
using namespace std;
int ch;
int count=0;
while((ch=cin.get())!=EOF)
{
cout.put(ch);
count++;
}
cout<<endl<<count<<" characters read\n";
return 0;
}
EOF不是有效字元編碼,與char型別不相容,所以使用此方法時返回值應賦給int型別變數ch。