輸入數量未知如何設置輸入

在 C++ 的算法題中,如果你不知道輸入數據有多少組(即測試用例的數量未知),通常的處理方式是使用 循環讀取輸入直到文件結束 (EOF)。這類題目常見于在線評測系統(如 LeetCode、牛客網、POJ 等)。


? 常見方法:使用 while (cin >> 變量)while (getline(cin, str))

📌 方法 1:適用于每組輸入有固定變量的情況

#include <iostream>using namespace std;int main() {int a, b;while (cin >> a >> b) {// 處理每一組輸入cout << a + b << endl;}return 0;}
  • 這種寫法會持續讀取輸入,直到沒有更多輸入為止(遇到 EOF 結束循環)。
  • 常用于像“多組輸入求 a + b”這種題目。

📌 方法 2:按整行讀取(適合復雜格式或含空格的輸入)

#include <iostream>#include <sstream>using namespace std;int main() {string line;while (getline(cin, line)) {// 每一行 line 是一組輸入istringstream iss(line);int a, b;if (iss >> a >> b) {cout << a + b << endl;}}return 0;}
  • 使用 getline(cin, line) 來逐行讀取;
  • 再使用 istringstream 解析每一行的數據;
  • 更靈活,適合輸入格式較復雜的題目。

📌 方法 3:讀入多個數字的一組數據(比如每組輸入是一行多個數)

#include <iostream>#include <vector>using namespace std;int main() {string line;while (getline(cin, line)) {istringstream iss(line);int num;vector<int> nums;while (iss >> num) {nums.push_back(num);}// 處理這一組數據,例如求和int sum = 0;for (int x : nums) sum += x;cout << sum << endl;}return 0;}

?小結

場景

推薦寫法

每組輸入幾個固定變量(如 a 和 b)

while (cin >> a >> b)

輸入可能包含空格或一整行

while (getline(cin, line))

每組輸入有多個不確定數量的數字

istringstream配合getline


?補充說明

  • 在本地調試時,可以通過輸入重定向或手動輸入后按下 Ctrl+Z(Windows)或 Ctrl+D(Linux/macOS)來模擬 EOF。
  • 在 OJ 平臺上,程序會自動從標準輸入讀取數據,直到輸入結束。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909538.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909538.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909538.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何在Windows上使用qemu安裝ubuntu24.04服務器?

2025年6月15日&#xff0c;周日晚上 在Windows上使用QEMU安裝Ubuntu 24.04需要完成環境配置、鏡像準備、虛擬機創建及系統安裝等步驟。以下是綜合多個搜索結果后的詳細指南&#xff1a; 1. 安裝QEMU環境 下載QEMU Windows版 從QEMU官網下載64位安裝包&#xff08;如qemu-w64-s…

前端開發面試題總結-vue2框架篇(二)

Vue2高頻問答 一、為什么 Vue 的 data 屬性必須聲明為返回一個初始數據的函數? 回答重點&#xff1a; Vue 的 data 屬性聲明成一個返回初始數據的函數&#xff0c;是為了確保每個組件實例都有獨立的狀態。通過這種方式&#xff0c;避免了組件使用相同的數據對象導致的狀態共…

Web第二次方向考核復盤

一、簡答題 1. &#xff08;1&#xff09;為什么要清除浮動&#xff1f; 答&#xff1a;當子元素浮動時會脫離文檔流&#xff0c;父元素無法正確計算子元素高度導致高度、邊框異常顯示。同時會影響后續文檔流布局。 <style>.box1 {border: solid 2px #000;}.child1 {fl…

Linux入門(十八)read函數

read 讀取控制臺輸入 基本語法 read 選項 參數 選項 -p 指定讀取值時的提示符 -t 指定讀取值時等待的時間&#xff08;秒&#xff09;&#xff0c;如果沒有在指定的時間內輸入&#xff0c;就不再等待了 參數 變量&#xff1a;指定讀取值的變量名 實例&#xff1a; 1、讀取控制…

Python 文件操作詳解

文章目錄 Python 文件操作詳解一、文件操作的基本流程二、文件打開模式詳解1. 基本模式2. 擴展模式3. 模式組合示例 三、文件操作方法大全1. 打開和關閉文件2. 讀取文件內容3. 寫入文件內容4. 文件指針操作 四、文件編碼處理五、二進制文件操作六、常見文件操作場景1. 文件內容…

用AI配合MCP快速生成n8n工作流

在數字化時代的浪潮中&#xff0c;AI技術正以前所未有的速度改變著我們的生活和工作方式。從智能家居到智能辦公&#xff0c;從數據分析到自動化流程&#xff0c;AI的應用場景無處不在。今天&#xff0c;我們將帶你走進一個充滿創新與效率的世界&#xff0c;探索如何通過AI大眼…

ArkUI-X框架LogInterface使用指南

ArkUI-X框架支持日志攔截能力&#xff0c;Android側提供原生接口&#xff0c;用于注入LogInterface接口&#xff0c;框架日志及ts日志通過該接口輸出&#xff0c;本文的核心內容是介紹如何在Android平臺上有效利用ArkUI-X框架的LogInterface攔截日志。 Android平臺創建ArkUI-X…

函數重載與函數模板

函數重載與函數模板 函數重載 函數組成 返回類型 函數名稱(參數列表){函數體}函數簽名&#xff1a;函數名稱(參數列表) C 允許定義同名函數&#xff0c;前提是它們具有不同的簽名。這被稱為函數重載 。 C 編譯器通過檢查調用中參數的數量、類型和順序來選擇要調用的適當函…

NLP學習路線圖(四十六):可解釋性

在自然語言處理(NLP)技術重塑人機交互、信息檢索甚至司法決策的今天,一個尖銳的問題愈發凸顯:當模型在文本分類中判定你的貸款申請被拒,或在簡歷篩選中將你排除,你是否有權追問一句——“為什么?” 一、黑箱迷霧:NLP模型的不透明困境 現代NLP的核心驅動力——深度神經…

uniapp的app項目,在華為pad上運行,頁面顯示異常

最開始為了好調試&#xff0c;運行成h5在瀏覽器調試的&#xff0c;調完以后&#xff0c;放到pad上。。。天塌了&#xff0c;所有頁面異常&#xff0c;感覺被放大了好多&#xff0c;而且頁面很亂。。。 查了很多資料&#xff0c;說把px改為rpx&#xff0c;好&#xff0c;全部改…

Linux中的連接符

Linux中的&&連接符 和其它語言類似&#xff0c;在Shell中&#xff0c;&&是一個邏輯運算符&#xff0c;表示邏輯AND&#xff0c;用于連接多個條件表達式 不同的是&#xff0c;在Linux系統中&#xff0c;&&不僅可以連接條件表達式&#xff0c;而且還能連…

裝飾模式Decorator Pattern

模式定義 動態地給對象增加額外的職責 對象結構型模式 模式結構 Component&#xff1a;抽象構件 ConcreteComponent&#xff1a; 具體構件 Decorator&#xff1a;抽象裝飾類 ConcreteDecorator&#xff1a; 具體裝飾類 抽象裝飾類代碼 public class Decorator extends Compo…

https說明

http是無狀態的&#xff0c;https是在http應用層協議和tcp傳輸控制層之間加了一層&#xff0c;主要功能包括加密傳輸內容&#xff0c;校驗信息是否完整&#xff0c;信息是否被篡改等。http的網絡傳輸&#xff0c;源端應用層發送http請求&#xff0c;傳輸到源端的控制層&#xf…

實時操作系統(FreeRTOS、RT-Thread)RISC-V

FreeRTOS&#xff1a;FreeRTOS? - FreeRTOS? RT-Thread&#xff1a;rt-thread.org VxWorks&#xff1a; QNX Neutrino RTOS&#xff1a; RT-Linux&#xff1a; 一、 實時操作系統介紹 實時操作系統&#xff08;Real Time Operating System&#xff0c;簡稱RTOS&#xff…

Python3除標準庫外更全面的XML解析方案

一、擴展解析庫方案 lxml高性能解析 from lxml import etree doc etree.parse(data.xml) # XPath 2.0增強查詢 nodes doc.xpath(//student[score>90]/name/text())優勢&#xff1a;支持XPath 2.0語法和XSLT轉換&#xff0c;比標準庫快5-10倍 BeautifulSoup混合解析 fr…

同時裝兩個MySQL, 我在MySQL5的基礎上, 安裝MySQL8

目錄 1. 前言 2. 下載MySQL 3. 安裝MySQL 3.1 第一步:選擇MySQL ?編輯 3.2 第二步:存儲地址 3.3 第三步 3.4 第四步:完成基礎配置 3.5 第五步 3.6 第六步:數據庫密碼 3.7 第七部:服務名 4. 環境變量 4.1 復制MySQL的bin地址 4.2 進入高級系統設置 4.3 PATH 4.4 更改…

Visual Studio 2022打包程序流程

Visual Studio 2022打包程序流程 打開管理拓展 安裝Microsoft Visual Studio Installer Projects 關閉軟件才能繼續安裝 安裝完成后點擊&#xff0c;解決方案&#xff0c;創建新項目 添加&#xff1a;setup project 打開軟件的路徑 復制路徑 添加文件 粘貼剛才復制的路徑&…

web3方法詳解

web3.py 是一個功能強大的 Python 庫,用于與以太坊區塊鏈交互。它提供了多種模塊和功能,涵蓋賬戶管理、智能合約交互、交易發送、區塊鏈數據查詢等。以下是 web3.py 的主要功能模塊及其用途: 1. Web3 核心模塊 功能:提供基礎連接、工具函數和核心功能。 常用方法: Web3(…

HTML5+JS實現一個簡單的SVG 貝塞爾曲線可視化設計器,通過幾個點移動位置,控制曲線的方向

三次貝塞爾曲線,二次貝塞爾曲線有什么區別 https://blog.csdn.net/xiaoyao961/article/details/148678265 SVG 貝塞爾曲線可視化設計器 下面是一個簡單的貝塞爾曲線可視化設計器&#xff0c;使用 HTML5 和 JavaScript 實現。這個設計器允許你通過拖動控制點來實時調整貝塞爾曲…

Pytorch框架——自動微分和反向傳播

一、自動微分概念 自動微分&#xff08;Automatic Differentiation&#xff0c;AD&#xff09;是一種利用計算機程序自動計算函數導數的技術&#xff0c;它是機器學習和優化算法中的核心工具&#xff08;如神經網絡的梯度下降&#xff09;&#xff0c;通過反向傳播計算并更新梯…