91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在while中使用cin>>a為條件要注意哪些事項

發布時間:2022-07-26 09:23:11 來源:億速云 閱讀:137 作者:iii 欄目:開發技術

本篇內容主要講解“在while中使用cin>>a為條件要注意哪些事項”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“在while中使用cin>>a為條件要注意哪些事項”吧!

在while中使用cin>>a 為條件

用一個題目來解釋

本題為統計輸入多少個連續數字

#include<iostream>
using namespace std;
int main()
{
	int currVal = 0 , val = 0;
	if(cin >> currVal)
	{
		int cnt=1;//統計次數
		while(cin >> val)
		{
			if(currVal == val)
			{
				cnt++;
			}
			else{
				cout << currVal <<" occurs "<<cnt<<" times "<<endl;
				currVal = val;
				cnt=1;//重新計算另一個 
			}
		} //while循環結束 
		cout << currVal <<" occurs "<<cnt<<" times "<<endl;//打印最后一個數 
	}//if循環結束 
	return 0;
}

有一個要注意的地方,以前不理解在while里面用cin >> val是什么意思,用這個當條件的話,通過檢測其流的狀態來判斷結束;

(1)若流是有效的,即流未遇到錯誤,那么檢測成功;

(2)若遇到文件結束符,或遇到一個無效的輸入時(例如本題輸入的值不是一個整數),istream對象的狀態會變為無效,條件就為假;

怎樣才是文件結束符呢?

不同的操作系統有不同的約定,在windows系統中,輸入文件結束符的方法是先按Ctrl+Z,然后再按Enter;在UNIX系統中,包括Mac OS X系統中,文件結束輸入為Ctrl+D;

下面是兩個輸入實例圖片,請對比

1.這個直接按enter,最后一個4顯然沒有輸入進去,程序讀不到最后一個數,程序一直保持輸入的狀態;

在while中使用cin>>a為條件要注意哪些事項

2.這個是正確實例,上面的Z是按了ctrl的效果

在while中使用cin>>a為條件要注意哪些事項

while(cin>>a) cin輸入直到回車結束

經常遇到循環輸入,直到符合某種條件時結束輸入。

cin>>s是有返回值的,只要s滿足類型條件,就會return true,一直執行下去,而cin會忽略空格或者enter,因此,enter后不會結束循環。只能ctrl+Z。

其實很簡單

通過get()判斷下一個輸入是不是回車就行。

while(cin>>a){
    ...
    if(cin.get()=='\n') break;
}

舉個例子

#include <bits/stdc++.h>
using namespace std;
 
int b[10];
int main() 
{
	int i=0,a;
	while(cin>>a){
		b[i++]=a;
    	if(cin.get()=='\n') break;	
	} 
	for(i=0;i<10;i++) cout<<b[i]<<" ";
}

這里再以創建鏈表舉一個例子

#include <bits/stdc++.h>
using namespace std;
struct ListNode {
	int val;
	ListNode *next;
	ListNode(int x) : val(x), next(NULL) {}
	
};
 
int main()
{
	ListNode* head1 = new ListNode(NULL);
	ListNode* head = new ListNode(NULL);
	head1 = head;
	int a;
	while (cin >> a) {
		ListNode* tmp = new ListNode(a);
		head->next = tmp;
		head = tmp;
		if (cin.get() == '\n') break;
	}
	while (head1->next != NULL) {
		cout << head1->next->val<<endl;
		head1 = head1->next;
	}
	system("pause");
	return 0;
}

運行結果:

在while中使用cin>>a為條件要注意哪些事項

到此,相信大家對“在while中使用cin>>a為條件要注意哪些事項”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

拉萨市| 周至县| 慈溪市| 黄陵县| 洪洞县| 武山县| 康保县| 六安市| 宁晋县| 积石山| 嘉兴市| 伊通| 板桥市| 遵义县| 定兴县| 浙江省| 刚察县| 定陶县| 贡山| 乌兰察布市| 三原县| 尚义县| 苗栗县| 房山区| 红桥区| 斗六市| 武鸣县| 绥宁县| 进贤县| 津南区| 河池市| 樟树市| 望都县| 和静县| 延川县| 应城市| 阿拉善左旗| 称多县| 瑞安市| 县级市| 闸北区|