1樓:許詩文
getline() 語法:
用getline()讀取字元到buffer中,buffer在**中通常體現為乙個字元陣列,streamsize num是一次讀入多少個字元, num - 1個字元已經讀入, 當碰到乙個換行標誌, 碰到乙個eof, 或者任意地讀入,直到讀到字元delim。delim字元不會被放入buffer中。delim字元可以自已設定,預設為回車符'/n'
#include
#include
#include
#include
const int n=10;
int main()
while(fin.getline(str,sizeof(str)))
cout< fin.clear(); cin.get(); return 0;} 2樓:匿名使用者 getline()是從檔案讀,寫的話用fstream 3樓:匿名使用者 該法不唯一哦,參考: #include #include #include using namespace std; int main() cout< buf2[n++]=ch;//? }buf2[n] = '\0'; fstream out("a2.txt",ios::out|ios::trunc); if(!out) out< out.close(); infile.close(); return 0;} 4樓:匿名使用者 string str; getline(cin,str); 寫入我還不會,呵呵 c++中,getline函式的詳解 5樓:匿名使用者 c++中本質上有兩種getline函式,一種在標頭檔案中,是istream類的成員函式。一種在標頭檔案中,是普通函式。 一、在中的getline函式有兩種過載形式: istream& getline (char* s, streamsize n ); istream& getline (char* s, streamsize n, char delim ); 作用是從istream中讀取至多n個字元儲存在s對應的陣列中。即使還沒讀夠n個字元,如果遇到換行符'\n'(第一種形式)或delim(第二種形式),則讀取終止,'\n'或delim都不會被儲存進s對應的陣列中。 二、在中的getline函式有四種過載形式: istream& getline (istream& is, string& str, char delim);istream& getline (istream&& is, string& str, char delim);istream& getline (istream& is, string& str); istream& getline (istream&& is, string& str); 用法和上一種類似,不過要讀取的istream是作為引數is傳進函式的。讀取的字串儲存在string型別的str中。 6樓:蘿蔔肥 char s[1000]; (中括號裡的數字小於1000可能會出錯,但不一定出錯,原因上面已講) 或者char* s=new char[1000]; 或者char a[1000];char * s=a; 或者char a[1000];char *s=&a[0]; 7樓: getline 語法: getline()函式用於輸入流,讀取字元到buffer中,直到下列情況發生: num - 1個字元已經讀入, 碰到乙個換行標誌, 碰到乙個eof, 或者,任意地讀入,直到讀到字元delim。delim字元不會被放入buffer中。 8樓:匿名使用者 getline功能getline是string類物件的成員函式,屬於string io 操作。用於讀取整行文字 getline引數getline(cin,str);cin:輸入流str:string物件 getline說明getline函式從輸入流的下一行讀取,並儲存讀取的內容到str中,但不包括換行符。getline 函式將 istream 引數作為返回值,和輸入操作符一樣也把它用作判斷條件。 範例: #include #include using namespace std; int main() 結果: 輸入 line1 ----回車換行 顯示為空 輸入 line2 ----回車換行 顯示 line1 輸入 line3 ----回車換行 顯示 line2 ----(以此類推 c++讀入檔案時getline函式怎麼使用?
5 c++中getline()函式的用法 9樓:果映房驪 getline()是屬於string流. 讀取從鍵盤輸入的字串.直到遇到結束符. 而cin.getline()是屬於istream流. 一樣讀取從鍵盤輸入字元,但是可以限定讀取多少個字元或者將哪個字元當作結束符. 兩個函式雖然類似. 但是卻是不一樣的. 10樓:閒來無事 你沒給s分配空間也沒初始化,s就是個野指標。 char* s = new char[1001]; memset(s, 0, 1001); cout<<"請輸入字串,以『\n『結束:\n"; cin.getline(s,1000,'\n');cin.getline(s,1000,'\n'); 11樓:海闊天空 getline()函式有兩個版本,關於這個三個引數的版本,它的第乙個引數是指向字元陣列的指標,因為你定義的是:char *s(只說明s是指向字元型別的指標,但沒有說明它是指向字元陣列的),這樣能通過編譯,但會執行錯誤,因為編譯器在編譯時不知道s是指向字元陣列的,它以為是指向乙個字元的,就只為 s所指向的內容分配乙個位元組的記憶體,這樣當執行時,程式存那1000個字元是這樣做的:先找到s所指向的記憶體,也就是之前分配的乙個位元組,存入第乙個字元,然後按這個記憶體位址的順序繼續往下存餘下的字元(因為陣列是位址連續的),但這時就可能出現錯誤,因為除了第乙個記憶體是之前分配了的,其他的記憶體都是未分配的,但又可能是已經儲存了其他資料的,所以會出錯。 而且是可能出錯,因為是可能已經儲存了其他資料。 當你把程式改成這樣: char s[1000]; (中括號裡的數字小於1000可能會出錯,但不一定出錯,原因上面已講) 或者char* s=new char[1000]; 或者char a[1000];char * s=a; 或者char a[1000];char *s=&a[0]; cin.getline(s,1000,'\n'); 至於連用兩個getline函式沒有問題,只是第二個會覆蓋第乙個所讀取的內容,最終陣列中儲存的是第二次呼叫getline函式讀取的內容。 這是vc6.0的bug,需要service pack 5以上才會修復 vc6.0裡getline和cin.getline都有這樣的問題,本來getline以後它還會讀取並拋棄快取中的換行符 n,但vc6的stl庫太老了所以行為也不太標準 include include using namespace... this 關鍵字引用類的當前例項,還可用作擴充套件方法的第乙個引數的修飾符。以下是 this 的常用用途 限定被相似的名稱隱藏的成員,例如 public employee string name,string alias 將物件作為引數傳遞到其他方法,例如 calctax this 宣告索引器,例如... 先說while ch getchar n 可以把它分成 ch getchar while ch n 前者是呼叫getchar函式,即ch為從鍵盤鍵入的字元.後者括號裡指內 當鍵入的不是 n 即回車 容 所以迴圈結束的條件是輸入回車鍵.然後,這是乙個小寫字母轉化成大寫的程式,if ch a ch z ...getline()函式,C 中,getline函式的詳解
C中this指標的用法
c中while的用法,在c 語言中while(n 的意義是什麼?怎麼用?