欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在while中使用cin>>a?為條件及注意事項說明

 更新時間:2022年07月25日 17:16:08   作者:_?dingding_  
這篇文章主要介紹了在while中使用cin>>a?為條件及注意事項說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

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

用一個題目來解釋

本題為統(tǒng)計輸入多少個連續(xù)數(shù)字

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

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

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

(2)若遇到文件結束符,或遇到一個無效的輸入時(例如本題輸入的值不是一個整數(shù)),istream對象的狀態(tài)會變?yōu)闊o效,條件就為假;

怎樣才是文件結束符呢?

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

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

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

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

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

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

cin>>s是有返回值的,只要s滿足類型條件,就會return true,一直執(zhí)行下去,而cin會忽略空格或者enter,因此,enter后不會結束循環(huán)。只能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]<<" ";
}

這里再以創(chuàng)建鏈表舉一個例子

#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;
}

運行結果:

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 基于Matlab實現(xiàn)嗅覺優(yōu)化算法的示例代碼

    基于Matlab實現(xiàn)嗅覺優(yōu)化算法的示例代碼

    嗅覺劑優(yōu)化是一種新穎的優(yōu)化算法,旨在模仿氣味分子源尾隨的藥劑的智能行為。本文將利用Matlab實現(xiàn)這一智能優(yōu)化算法,需要的可以參考一下
    2022-05-05
  • 如何用C寫一個web服務器之CGI協(xié)議

    如何用C寫一個web服務器之CGI協(xié)議

    本文主要介紹了如何用C寫一個web服務器之CGI協(xié)議,對C語言和web感興趣的同學,可以詳細看下,并且試驗一下。
    2021-05-05
  • C語言實現(xiàn)通訊錄的詳細代碼

    C語言實現(xiàn)通訊錄的詳細代碼

    本文詳細講解了C語言實現(xiàn)通訊錄的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • Qt 自定義分頁控件的實現(xiàn)

    Qt 自定義分頁控件的實現(xiàn)

    在應用程序開發(fā)時經常會遇到數(shù)據分頁的需求,每一頁展示特定數(shù)量的數(shù)據,通過點擊按鈕翻頁或者輸入頁碼跳轉到指定頁,本文就來介紹一下Qt 自定義分頁控件的實現(xiàn),感興趣的可以了解一下
    2023-11-11
  • Qt中const?QString轉換?char?*可能的坑

    Qt中const?QString轉換?char?*可能的坑

    本文主要介紹了Qt中const?QString轉換?char?*可能的坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • 一文總結C++中的異常

    一文總結C++中的異常

    異常是一種處理錯誤的方式,當一個函數(shù)發(fā)現(xiàn)自己無法處理的錯誤時就可以拋出異常,讓函數(shù)的直接或間接調用者處理這個錯誤,本文給大家總結了C++中的異常,需要的朋友可以參考下
    2023-10-10
  • 淺談Qt QGraphics體系及刷新機制介紹

    淺談Qt QGraphics體系及刷新機制介紹

    這篇文章主要介紹了淺談Qt QGraphics體系及刷新機制介紹,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • C數(shù)據結構循環(huán)鏈表實現(xiàn)約瑟夫環(huán)

    C數(shù)據結構循環(huán)鏈表實現(xiàn)約瑟夫環(huán)

    這篇文章主要介紹了C數(shù)據結構循環(huán)鏈表實現(xiàn)約瑟夫環(huán)的相關資料,需要的朋友可以參考下
    2017-05-05
  • linux下c語言的多線程編程

    linux下c語言的多線程編程

    這篇文章主要介紹了linux下c語言的多線程編程,需要的朋友可以參考下
    2017-10-10
  • c++ vector模擬實現(xiàn)代碼

    c++ vector模擬實現(xiàn)代碼

    vector是C++ STL中一個非常重要的容器,了解 vector 的底層實現(xiàn)原理,可以很好的幫助我們更加熟練的使用vector。這篇文章通過實例代碼給大家介紹c++ vector模擬實現(xiàn),感興趣的朋友跟隨小編一起看看吧
    2020-02-02

最新評論