C++初學者指南-2.輸入和輸出---流輸入和輸出

C++初學者指南-2.輸入和輸出—流輸入和輸出

文章目錄

  • C++初學者指南-2.輸入和輸出---流輸入和輸出
    • 1.定制輸入/輸出
      • 1.1 示例:點坐標輸入/輸出
      • 1.2 流操作符
      • 1.3(一部分)標準庫流類型
    • 2. 工具
      • 2.1 用getline讀取行
    • 2.2 用ignore進行跳轉
    • 2.3 格式化操作

1.定制輸入/輸出

1.1 示例:點坐標輸入/輸出

通過使用名稱為 operator<< 和 operator>> 的兩個函數重載。

struct point { int x;  int y; };std::ostream& operator << (std::ostream& os, point const& p) {return os << '(' << p.x << ',' << p.y << ')';
}std::istream& operator >> (std::istream& is, point& p) {return is >> p.x >> p.y;
}
point p {1,2};
cout << p << '\n';   // 打印 (1,2)
…
cin >> p;  // 讀取2哥整形值到p.x和p.y

1.2 流操作符

類型T的對象的流輸入/輸出操作函數:

std::ostream& operator << (std::ostream& os, T const& x) {// write to stream …return os;
}
std::istream& operator >> (std::istream& is, T& x) {// read from stream …return is;
}

操作符<<和>>返回一個引用(指向它們的stream參數),以允許操作符連綴:

cin  >> x >> y;  ?  operator>>( operator>>(cin, x), y)
cout << x << y;  ?  operator<<( operator<<(cout,x), y)

標準庫中針對像 std::vector 這樣的容器的默認流操作是不存在的,因為存在太多可能的用例:

  • 只是打印值… 用什么分隔?
  • 將輸出格式化為純文本 / XML / …
  • (反)序列化容器

1.3(一部分)標準庫流類型

istream輸入流istream&引用可以綁定到任何其他類型的std:: 輸入流
ostream輸出流ostream&引用可以綁定到任何其他類型的std:: 輸出流
ifstream文件輸入流提取的數據是從文件中讀取的
ofstream文件輸出流插入的數據存儲在一個文件中
ostringstream字符串輸出流插入的數據存儲在字符串緩沖區中
istringstream字符串輸入流提取數據是從字符串緩沖區中讀取的

2. 工具

2.1 用getline讀取行

std::getline (istream&, string&, stopat='\n')

讀取直到下一個停止符號(默認為直到行尾)

string s;
getline(cin, s);           //讀取一整行
getline(cin, s, '\t');     //讀取直到遇到制表符
getline(cin, s, 'a');     //讀取直到遇到字符'a'

2.2 用ignore進行跳轉

std::istream::ignore(n, c)
  • 向前移動 n 個字符
  • 直到停止字符 c
// 跳過8個字符
cin.ignore(8);
// 跳過最多10個字符或者遇到'='
cin.ignore(10, '=');
// 跳過所有字符直到遇到換行符'\n'
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

2.3 格式化操作

#include <iomanip>                 // 頭文件
double d = 12.345678;              
double e = 2011;
double f = 1e-10;
std::cout << d                     // 12.345678 
<< e << '\n'                       // 2011
<< f << '\n'                       // 1e-010
<< std::setprecision(4)            // 設置輸出幾個數字(包含整數)
<< d << '\n'                       // 12.35
<< e << '\n'                       // 2011
<< f << '\n'                       // 1e-010
<< std::fixed                      // 用定點表示法表示浮點數,這是簽名設置的數字4變成了小數點后的位數
<< d << '\n'                       // 12.3457
<< e << '\n'                       // 2011.000 
<< f << '\n'                       // 1.0000-e010
<< std::scientific                 //用科學計數法表示
<< d << '\n'                       //1.2346e+001
<< e << '\n'                       //2.0110e+003
<< f << '\n'                       //1.0000e-010
<< true <<' '<< false              //1 0
<< std::boolalpha                  //用字符串表示布爾值
<< true <<'  '<< false;             //true false

運行上面代碼

附上原文地址
如果文章對您有用,請隨手點個贊,謝謝!^_^
在這里插入圖片描述

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

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

相關文章

【論文閱讀】-- Temporal Summary Images:通過交互式注釋生成和放置實現敘事可視化的方法

Temporal Summary Images: An Approach to Narrative Visualization via Interactive Annotation Generation and Placement 摘要1 引言2 背景及相關工作2.1 敘事可視化和講故事2.2 顯示面向時間的數據2.3 小倍數和漫畫2.4 注釋可視化 3 設計要求和工作流程3.1 工作流程3.2 TSI…

基線核查--滲透

基線檢查 基線核查概念 it中定義&#xff1a; 基線為初始的標準&#xff0c;以后更改就要經過授權&#xff0c;形成下一基線。 軟件配置管理的基線&#xff1a;1功能基線&#xff0c;分配基線&#xff0c;產品基線 安全配置基線--基線核查 安全基線可以說是木桶理論&…

【python】eval函數

1.eval函數的語法及用法 &#xff08;1&#xff09;語法&#xff1a;eval(expression) 參數說明&#xff1a; expression&#xff1a;必須為字符串表達式&#xff0c;可為算法&#xff0c;也可為input函數等。 說明&#xff1a;表達式必需是字符串&#xff0c;否則會報錯&a…

Vue3-尚硅谷筆記

1. Vue3簡介 2020年9月18日&#xff0c;Vue.js發布版3.0版本&#xff0c;代號&#xff1a;One Piece&#xff08;n 經歷了&#xff1a;4800次提交、40個RFC、600次PR、300貢獻者 官方發版地址&#xff1a;Release v3.0.0 One Piece vuejs/core 截止2023年10月&#xff0c;最…

Dubbo運行原理

目錄 Dubbo通訊協議 Dubbo負載均衡策略 RPC和HTTP有什么區別&#xff1f; 讓你設計一個RPC框架&#xff0c;如何考慮數據序列化問題&#xff1f; Dubbo 是一款高性能、輕量級的開源 RPC&#xff08;遠程過程調用&#xff09;框架&#xff0c;主要用于構建分布式服務和微服務…

springcloud第4季 springcloud-alibaba之openfegin+sentinel整合案例

一 介紹說明 1.1 說明 1.1.1 消費者8081 1.1.2 openfegin接口 1.1.3 提供者9091 9091微服務滿足&#xff1a; 1 openfegin 配置fallback邏輯&#xff0c;作為統一fallback服務降級處理。 2.sentinel訪問觸發了自定義的限流配置&#xff0c;在注解sentinelResource里面配置…

基于SpringBoot的學生綜合測評系統

你好呀&#xff0c;我是計算機學姐碼農小野&#xff01;如果有相關需求&#xff0c;可以私信聯系我。 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;SpringBoot框架 工具&#xff1a;MyEclipse、Tomcat 系統展示 首頁 系統首頁&#xff0c;提供綜合…

After Effects 2024 mac/win版:創意視效,夢想起航

After Effects 2024是一款引領視效革命的專業軟件&#xff0c;匯聚了創意與技術的精華。作為Adobe推出的全新版本&#xff0c;它以其強大的視頻處理和動畫創作能力&#xff0c;成為從事設計和視頻特技的機構&#xff0c;如電視臺、動畫制作公司、個人后期制作工作室以及多媒體工…

求職產品運營的個人簡歷案例(精選篇)

在求職產品運營的道路上&#xff0c;一份出色的個人簡歷是邁向成功的第一步&#xff0c;但是簡歷怎么寫才最好呢&#xff1f;下面是小編整理的求職產品運營的個人簡歷案例&#xff0c;同時&#xff0c;幻主簡歷網還提供精美簡歷模板下載和簡歷在線制作工具&#xff0c;歡迎大家…

Kivy tutorial 008: More kv language

Kivy tutorial 008: More kv language – Kivy Blog Central themes: Event binding and canvas instructions in kv language 中心主題: 事件綁定 和 kv語言里的畫布結構 This tutorial directly follows on from the previous, so start by retrieving the previous code, …

meizu M10 魅藍 10 mblu10 root 解鎖 安裝LSPosed框架 紫光展銳改串 AT命令 一鍵新機 改機軟件 硬改 改參數

meizu M10 魅藍 10 mblu10 root 解鎖 安裝LSPosed框架 紫光展銳改串 AT命令 一鍵新機 改機軟件 硬改 改參數 ro.system.build.version.release11 ro.system.build.version.release_or_codename11 ro.system.build.version.sdk30 ro.system.custom.versionAndroid_M01 ro.prod…

python目錄樹生成器

代碼如下&#xff1a; import os from colorama import Fore, Style, init from tkinter import Tk, Label, Entry, Button, Text, Scrollbar, RIGHT, Y, END# 初始化 colorama init(autoresetTrue)def print_directory_tree(root_dir, text_widget, indent, lastTrue):"…

NISP國家信息安全水平考試

國家信息安全水平考試(NISP)是中國信息安全測評中心考試、發證&#xff0c;由國家網絡空間安全人才培養基地運營管理&#xff0c;并授權網安世紀科技有限公司為NISP證書管理中心。 中國信息安全測評中心開展國家信息安全水平考試(NISP)考試項目&#xff0c;是為普及信息安全/網…

Sklearn 深入教程

Sklearn 深入教程 Scikit-learn&#xff08;sklearn&#xff09;是Python中功能強大且廣泛使用的機器學習庫。本教程將深入探討sklearn中的高級主題&#xff0c;涵蓋高級數據預處理、高級特征工程、復雜模型調參、高級集成學習、模型持久化與部署等內容。 目錄 高級數據預處…

Python實例:faker生成數據集、文件

原文鏈接&#xff1a;http://www.juzicode.com/python-example-faker-create-data 本文的幾個例子用faker生成數據并用openpyxl生成表格&#xff0c;或者生成csv、xml、圖像文件。 A&#xff09;生成個人數據 #juzicode.com/VX公眾號:juzicode from openpyxl import Workboo…

IOS Swift 從入門到精通:BlurEffect BlendMode stroke

文章目錄 UIBlurEffectBlendModestroke基本用法:描邊樣式:與strokeBorder的區別:組合使用:自定義形狀:UIBlurEffect 在Swift中,實現模糊效果通常是通過UIKit框架中的UIBlurEffect類來完成的,這通常被稱作毛玻璃效果。 **創建UIBlurEffect實例:**選擇一個模糊效果的樣…

探索AudioLM的音頻源識別能力:解鎖聲音的奧秘

&#x1f3b5; 探索AudioLM的音頻源識別能力&#xff1a;解鎖聲音的奧秘 &#x1f50d; 在音頻處理領域&#xff0c;識別不同的音頻源是一項挑戰性任務&#xff0c;涉及到音頻信號處理、模式識別和機器學習等多個領域。AudioLM&#xff0c;作為一個假想的先進的音頻處理模型&a…

docker 安裝MySQL8以上

1.新建目錄 mkdir -p /usr/local/src/mysql80 2.安裝最新mysql # 拉取鏡像 docker pull mysql 3.運行鏡像創建容器&#xff0c;實現數據庫和日志的持久化等命令 docker run \ -p 3380:3306 \ --name mysql80 \ --privilegedtrue \ --restartalways \ -v /usr/local/src/my…

Spring Boot如何實現跨域資源共享(CORS)?

&#x1f345; 作者簡介&#xff1a;哪吒&#xff0c;CSDN2021博客之星亞軍&#x1f3c6;、新星計劃導師?、博客專家&#x1f4aa; &#x1f345; 哪吒多年工作總結&#xff1a;Java學習路線總結&#xff0c;搬磚工逆襲Java架構師 &#x1f345; 技術交流&#xff1a;定期更新…

1.k8s:架構,組件,基礎概念

目錄 一、k8s了解 1.什么是k8s 2.為什么要k8s &#xff08;1&#xff09;部署方式演變 &#xff08;2&#xff09;k8s作用 &#xff08;3&#xff09;Mesos&#xff0c;Swarm&#xff0c;K8S三大平臺對比 二、k8s架構、組件 1.k8s架構 2.k8s基礎組件 3.k8s附加組件 …