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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cin

發布時間:2025/4/5 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cin 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1 通過cin讀取的數據與變量的類型不匹配
    • 2 使用cin輸入時自動跳過空白字符
    • 3 使用cin連續輸入多個字符串,個數不確定
    • 4 使用getline從標準輸入讀入一行
    • 5 使用getch()函數進行無回顯輸入

1 通過cin讀取的數據與變量的類型不匹配

#include <iostream> #include <Windows.h> #include <string>using namespace std;int main(void) {int a;int b;int c;//std::cin >> a >> b >> c;std::cout << "請輸入a: ";std::cin >> a;if (cin.fail()) { //檢查輸入時是否發生了錯誤cout << "輸入錯誤,應該輸入一個整數" << endl;//清除錯誤標記,使得后續輸入可以正常進行//但是已經輸入的數據還在輸入緩沖區cin.clear(); cin.sync(); //清空輸入緩沖區}std::cout << "請輸入b: ";std::cin >> b;if (cin.fail()) {cout << "輸入錯誤,應該輸入一個整數" << endl;cin.clear(); //清除錯誤標記,使得后續輸入可以正常進行cin.sync(); //清空輸入緩沖區}std::cout << "請輸入c: ";std::cin >> c;if (cin.fail()) {cout << "輸入錯誤,應該輸入一個整數" << endl;cin.clear(); //清除錯誤標記,使得后續輸入可以正常進行cin.sync(); //清空輸入緩沖區}std::cout << "a=" << a << std::endl;std::cout << "b=" << b << std::endl;std::cout << "c=" << c << std::endl;system("pause");return 0; }

cin.sync()函數在g++環境下有效,而在VS中無效,VS中可以考慮使用cin.ignore()函數。也可以手動進行清楚緩沖區中的內容,比如自定義一個函數:

void clearBuff() {char tmp;while ((tmp = getchar()) != '\n'); }

cin.ignore(count, c);
從輸入流中提取并丟棄字符,直到遇到下列三種情況:

  • 提取的字符達到了參數count指定的數量。
  • 在輸入序列中遇到文件結束(EOF)。
  • 輸入序列中的下一個字符為參數c指定的字符(這個字符會被提取并丟棄)。
  • count常常取:

    • std::numeric_limits<std::streamsize>::max() , 相當于IO流的最大字符個數

    常見用法:(把標準輸入緩沖區cin的所有數據都清空)

    • cin.ignore(std::numeric_limits<streamsize>::max(), '\n');

    2 使用cin輸入時自動跳過空白字符

    string university; //大學string profession; //專業cout << "你是哪個學習畢業的?學什么專業? ";// 輸入: 清華 考古 hello// 自動跳過空白字符cin >> university >> profession; cout << university << "的" << profession << "專業不錯哦!" << endl;

    3 使用cin連續輸入多個字符串,個數不確定

    #include <iostream> #include <Windows.h> #include <string>using namespace std;int main(void) {string food; //專業int i = 0;cout << "你喜歡什么美食? ";while (cin >> food) { //當用戶輸入 Ctrl + z 并回車 cin >> food返回0, 0就是假i = i + 1;cout << "你喜歡的第" << i << "美食是:" << food << endl ;cout << "你還喜歡吃什么美食? ";}cout << "你最喜歡的美食有" << i << "種" << endl;system("pause");return 0; }

    4 使用getline從標準輸入讀入一行

    #include <iostream> #include <Windows.h> #include <string>using namespace std;int main(void) {string addr; //專業cout << "你想到哪里去旅行:";//從標準輸入設備讀取一行,但是不包括最后輸入的回車符getline(cin, addr);//empty方法if (addr.empty() == true) {cout << "您輸入了一個空行" << endl;return 1;}//size()和length()完全等效//長度是指字符串占用的字節數,如果含有漢字,那么總的字節數和漢字個數不同 cout << "地址的長度是:" << addr.size() << endl;cout << "地址的長度是:" << addr.length() << endl;system("pause");return 0; }

    注意: 如果在讀入一行前已經讀取一個指定類型的數據(比如int類型、double類型等),則必須把緩沖區中回車換行符給清空掉,否則就會無法正常讀取新的一行的內容(讀取的就是仍在緩沖區中的回車換行符)。

    C++中可以使用如下代碼:

    string str1, str2;cin >> str1;cin.ignore();getline(cin, str2);cout << str1 << endl;cout << str2 << endl;

    cin.ignore()函數的用法可以參考如下文章,寫的非常清晰易懂:一眼就能看懂的cin.ignore()函數詳解。

    C語言中可以使用如下代碼:

    #include <stdio.h> #include <Windows.h>int main(void) {char name[16];char addr[64];printf("姑娘芳名?\n");scanf("%s", name);//此時輸入緩沖區中還有一個回車符//清空輸入緩沖區fflush(stdin); printf("姑娘家住何地?\n");gets(addr); //讀一行,包括一行中的空格printf("家住%s 的%s, 我中意你!\n", addr, name);system("pause");return 0; }

    5 使用getch()函數進行無回顯輸入

    #include<conio.h> void input_pwd(char pwd[], int max_len) {char c;int i = 0;while (1) {c = getch();// getch不從輸入緩沖區中讀取//在getch中,把回車按鍵輸入,識別為回車符'\r'//在getchar中,把回車按鍵輸入,識別為換行符'\n'if (c == '\r' || i >= max_len) { pwd[i] = 0;break;}pwd[i++] = c;printf("*", c);}printf("\n"); }

    總結

    以上是生活随笔為你收集整理的cin的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 国产对白视频 | 久草中文在线观看 | 内射国产内射夫妻免费频道 | 色综合久久网 | 国产精品一级片在线观看 | 性色av无码久久一区二区三区 | 射影院| 亚洲欧美视频一区 | 青青操免费 | 国产精品丝袜 | 日本不卡视频一区 | wwww日本60| 波多野结衣在线视频免费观看 | 欧美成人免费一级人片100 | 久热网站 | 看中国毛片 | 日本xxxx人| 三大队在线观看 | av的天堂 | 久久91av | 老色批影院 | 久久久久久香蕉 | 97桃色| 欧美日韩综合一区二区三区 | 日韩诱惑| 69精品一区二区三区 | 91蜜桃视频在线观看 | 国产二三区 | 日本免费看 | 激情五月色婷婷 | 天天躁夜夜躁狠狠是什么心态 | 深夜网站在线观看 | 综合五月婷| 性欧美巨大乳 | www.操| av十大美巨乳 | 可以在线观看的av网站 | 一本—道久久a久久精品蜜桃 | 青青草av | 波多野结衣视频网站 | 情欲超 | 国产中文在线播放 | 国产激情免费视频 | 亚洲综合五月天婷婷丁香 | 国产精品一二区 | 国产精品无码中文字幕 | 日韩福利在线播放 | a视频在线免费观看 | 四虎伊人 | 日韩精品一区中文字幕 | 十八禁视频网站在线观看 | 最污的网站| 76少妇精品导航 | 最近中文字幕第一页 | 国产天堂视频 | 欧美色爽| 欧美在线性爱视频 | www.黄色一片| 日韩一区二区三区在线免费观看 | 日本老小玩hd老少配 | 女女同性女同一区二区三区按摩 | 国产午夜无码精品免费看奶水 | 日韩福利电影在线观看 | 91视频社区 | 亚洲永久免费视频 | 久久尤物视频 | 动漫美女被吸奶 | 在线观看av的网站 | 国产亚洲色婷婷久久99精品91 | www夜插内射视频网站 | 丁香婷婷久久久综合精品国产 | 欧美久久一区 | 成人污污视频在线观看 | 最新三级网站 | 伊人久久精品一区二区三区 | 日本一级理论片在线大全 | 黑巨茎大战欧美白妞 | 农村末发育av片一区二区 | 18黄暴禁片在线观看 | 三级男人添奶爽爽爽视频 | 成人网页在线观看 | 国产成人三级在线 | 成人三级图片 | 五月婷婷激情综合 | 欧美成人动态图 | av福利在线免费观看 | 欧美另类性 | 国产精品久久久久久在线观看 | 在线观看免费观看在线 | 国产精品suv一区 | 中文字幕精品无 | 九一成人网 | 无码人妻一区二区三区在线 | 欧美午夜网站 | 一区三区视频 | 一本色道久久88亚洲精品综合 | 尹人香蕉 | 日日操夜夜爱 | 欧美日韩a级 |