C++中int main(int argc, char *argv[])解釋

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,也就是判斷當前是否存在有效的輸入流。這種情況下,輸入流有效,跳不出循環。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章