日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++ 标准库中 cin.ignore()

發布時間:2024/4/18 c/c++ 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ 标准库中 cin.ignore() 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

cin.ignore()函數是C++標準輸入流(cin)中的一個方法。cin.ignore()函數中有兩個參數,分別為數值型的a 和 字符型的 ch ,即cin.ignore( a, ch )。它表示從輸入流 cin 中提取字符,提取的字符被忽略,不被使用。而每拋棄一個字符,它都要進行計數和比較字符:如果計數值達到 a 或者被拋棄的字符是 ch ,則cin.ignore() 函數執行終止;否則,它繼續等待。

它的一個常用功能就是用來清除以回車結束的輸入緩沖區的內容,消除上一次輸入對下一次輸入的影響。例如可以這么用,cin.ignore(1024, '\n'),通常把第一個參數設置得足夠大,這樣實際上是為了只有第二個參數 '\n' 起作用,所以這一句就是把回車(包括回車)之前的所以字符從輸入緩沖流中清除出去。

如果默認不給參數的話,默認參數為cin.ignore(1, EOF),即把EOF前的1個字符清掉,沒有遇到EOF就清掉一個字符然后結束。

下面用一個例子簡單說明cin.ignore()函數的用法:

比如我們要求接受輸入一個字符串(沒有空格),然后輸出該字符串。C++代碼如下:

#include <iostream>
using namespace std;
?
int main()
{
? ? char str[30];
? ? cout << "請輸入一個字符串:";
? ? cin >> str;
? ? cout << str << endl;
?
? ? return 0;
}
運行如下圖:

當按下任意鍵時,運行程序會立即退出。如果想讓程序停留一下,不要立即退出。我們很容易想到讓程序末尾再接受一個輸入,輸入任意一個字符后程序退出。因此,我們在原先代碼加上一個輸入即cin.get(),代碼如下:

#include <iostream>
using namespace std;
?
int main()
{
?? ?char str[30];
?? ?cout << "請輸入一個字符串:";
?? ?cin >> str;
?? ?cout << str << endl;
?
?? ?cout << "請輸入任意字符結束程序!\n";
?? ?cin.get();
?
?? ?return 0;
}
此時運行如下圖:


按下任意鍵程序仍然會立即退出而不停留,這與我們想要的結果不一致。這是為什么呢?

如果在程序末尾再多接受一個輸入,即在代碼上再加一個cin.get(),再次運行如下圖:

此時輸入字符 a 時,程序沒有立即退出,達到了我們預計的要求。

回過頭來想,為什么加入第一個cin.get()不行呢?那肯定是因為第一個cin.get()獲取了某個字符,仔細考慮一下,不難想到當輸入"hello"過后按下了回車鍵,因而第一個cin.get()獲取到的就是 '\n' 。在不加入第二個cin.get()情況下,我們可以想到用cin.ignore()函數,將cin中提取的 '\n' 忽略掉。具體代碼如下:

#include <iostream>
using namespace std;
?
int main()
{
?? ?char str[30];
?? ?cout << "請輸入一個字符串:";
?? ?cin >> str;
?? ?cout << str << endl;
?
?? ?cin.ignore(100, '\n');
?? ?cout << "請輸入任意字符結束程序!\n";
?? ?cin.get();
?
?? ?return 0;
}

運行如下:


此時,和加入兩個cin.get()一樣得到相同的結果,加入cin.ignore(100, '\n');這行代碼的作用就是將輸入"hello"過后按下的回車給忽略掉。
————————————————
版權聲明:本文為CSDN博主「micro小寶」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wxbmelisky/article/details/48596881

總結

以上是生活随笔為你收集整理的c++ 标准库中 cin.ignore()的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。