int main(int argc, char *argv[])
argc是命令行總的參數個數,
argv[]是argc個參數,其中第0個參數是程序的全名,以後的參數命令行後面跟的用戶輸入的參數。
ofstream:文件寫操作,內存寫入存儲設備;
ifstream:文件讀操作,存儲設備讀到內存中;
fstream:讀寫操作,對打開的文件可進行讀寫操作。
get()遇到'\n'後便返回,但是'\n'仍在輸入緩衝區中,所以下次讀出來的將是'\n';
getline()遇到'\n'也返回,但是會把'\n'從緩衝區中移除掉,所以,很多時候getline()更方便。
http://c.biancheng.net/cpp/biancheng/view/2232.html
cin.get()每次讀取一整行,並把由Enter鍵生成的換行符留在輸入隊列中。用法:cin.getline(字符數組(或字符指針),字符個數n,終止標誌字符)
代碼段:
#include <iostream>
using namespace std;
int main()
{
char ch[20];
cout << "enter a sentence:" << endl;
cin >> ch;
cout << "The string read with cin is:" << ch << endl;
cin.getline(ch, 20, '/'); //讀個字符或遇'/'結束
cout << "The second part is:" << ch << endl;
cin.getline(ch, 20); //讀個字符或遇'/n'結束
cout << "The third part is:" << ch << endl;
return 0;
}
首先"cin>>":從輸入流提取數據,遇空格就停止,因此字符'I'存放在ch[0]中,然後ch[1]中存放空格'\0'
接着cin.getline(ch,20,'/'),從上次結束的空格開始讀,即ch[0]存放'\0',一直讀到'/'。注意'/'並不放到數組中。讀取了10個字符" like C++."。因此ch[9]保存的是'.'。
最後cin.getline(ch,20)讀取19個字符,或者遇到'/n'結束,共讀入19個字符。PS:第20個字符位置存放'/n'。
while(getline(cin,line))語句中:
首先getline()從標準輸入設備讀入字符,然後返回給輸入流cin,while語句判斷的真實對象是cin,也就是判斷當前是否存在有效的輸入流。這種情況下,輸入流有效,跳不出循環。