歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C++文本輸入的處理

C++文本輸入的處理

日期:2017/3/1 9:19:24   编辑:Linux編程

cin<<方式輸入字符串時,遇到空格、制表符、換行符會輸入結束。剩余輸入內容將緩存在輸入隊列。

因此,如果輸入內容中有空格就要考慮其他方法了。

cin.getline()和cin.get(str)都讀取一行輸入,直到換行符。區別是getline()丟棄換行符而get(str)將其保存在輸入隊列。

//輸入帶空格的英文名,再輸入工作
cin.getline(name,nsize).getline(job,jsize);

//get()如此做效果與上面相同
cin.get(name,size).get();
cin.get(job,size);

這種用法是不是和js中的原型鏈似曾相識呢~~

但如果混合輸入數字和字符串,無論使用哪種輸入,都必須注意輸入隊列中緩存的換行符,如:

1 int age;
2 char hobby[50];
3 cin>>age;
4 cin.get(); //清除換行符
5 cin.getline(hobby,50);

再說一說cin.get(ch)與cin.get()的區別

cin.get(ch)目的是將輸入字符賦值給參數ch,其返回值是istream對象;而cin.get()是將輸入作為返回值。

遇到文件結束符EOF時,cin.get(ch)返回istream對象執行bool轉換後值是false,cin.get()直接返回EOF。所以有下面兩種方法判斷非EOF:

if(cin.get(ch))
   //...

if((ch=cin.get())!=EOF)
  //...

Copyright © Linux教程網 All Rights Reserved