C/C++輸入輸出(1)

1.getchar和putchar

1.1getchar()

函數原型:

1  int getchar(void);

?getchar()函數返回用戶從鍵盤輸入的字符,使用時不帶有任何參數。

程序運行到這個命令就會暫停,等待用戶從鍵盤輸入,等同于使用cin或scanf()方法讀取一個字符。

getchar()函數原型定義在頭文件<cstdio>。

#include"cstdio"
#include"iostream"
using namespace std;int main()
{int ch;ch=getchar();cout << ch << endl;cout << (char)ch << endl;return 0;
}

因為getchar()返回的是字符類型,所以不會忽略起首的空白字符,總是返回當前讀取的第一個字符。

如果讀取失敗,返回常量EOF,由于EOF通常是-1,所以返回值的類型要設為int,而不是char。

我們可以直接按Ctrl+z來實現讀取失敗。

1.2putchar()

函數原型:

1  int putchar(int character);

putchar()函數將它的參數字符輸出到屏幕,它的原型定義在頭文件<cstdio>。

#include"cstdio"int main()
{int ch=0;ch=getchar();putchar(ch);return 0;
}

當操作成功時,putchar()返回輸出的字符,否則返回EOF。

2.scanf和printf

2.1printf

printf()函數原型:

1  int printf(const char* format,……);

2.1.1基本用法

printf()的作用是將參數文本輸出到屏幕上。

#include <cstdio>int main() 
{printf("Hello World");return 0;
}

printf()本身是不會在結尾處換行的,所以我們可以在結尾處增加一個\n,從而實現換行。

2.1.2占位符

printf()可以在輸出文本中指定占位符。

#include <cstdio>int main()
{printf("There are %d apples\n", 3);return 0;
}

在上面我們能夠看出%d就是占位符,表示這個位置要用其他值來替換。

同時在使用中,我們也可以使用多個占位符,使用順序也是和占位符的順序是一致的。

常見的占位符:

占位符介紹
%d十進制整數
%lld十進制long long int類型
%f小數(包含float和double)
%Lflong double類型浮點數
%c字符
%s字符串

2.1.3格式化輸出

2.1.3.1限定寬度

printf()允許限定占位符的最小寬度。

#include"cstdio"int main()
{printf("%5d",123);return 0;
}

上面示例中,%5d表示這個占位符的寬度至少為5位。如果不滿5位,對應的值的前面會添加空格。

輸出端值默認是右對齊,即輸出內容前面會有空格;如果希望改成左對齊,在輸出內容后面添加空格,我們可以在%后面插入一個-號。

2.1.3.2限定小數位數

輸出小數時,有時希望限定小數位數。

#include"cstdio"int main(){printf("%.2f",12.345);return 0;
}

當我們希望小數點后面只保留兩位,占位符可以寫成%.2f。

最小寬度和小數位數這兩個限定值,都可以用*代替,通過printf()的參數傳入。

#include"cstdio"int main(){printf("%*.*f",6,2,12.345);return 0;
}

上面%*.*f的兩個星號通過printf()的兩個參數6和2傳入。

2.2scanf

scanf()函數原型:

1  int scanf( const char* format,……);

2.2.1基本用法

scanf()函數用于讀取用戶的鍵盤輸入。

程序運行到scanf()這個語句時,會停下來,等待用戶從鍵盤輸入。

#include"cstdio"int main()
{int i=0;scanf("%d",&i);printf("%d\n",i);return 0;
}

注:

  1. scanf函數的占位符后面一般不會加\n,\n是換行,一般在輸出的時候才使用。?
  2. scanf函數中存儲數據的變量前面必須加上&運算符,因為scanf()需要的是地址,必須將變量的地址取出來傳給scanf函數。
  3. scanf函數中指定的格式和給程序輸入的數據格式要嚴格的匹配,否則可能不能得到想要的值。
  4. scanf()處理數值占位符時,會自動過濾空白字符,包括空格、制表符、換行符等。

2.2.2scanf的返回值

scanf()的返回是一個整數,表示成功讀取的變量個數。

如果沒有讀取任何項,或者匹配失敗,則返回0.如果在成功讀取任何數據之前,發生了讀取錯誤或者讀取到文件結尾,則返回常量EOF(-1)。

#include"cstdio"int main()
{int a=0,b=0;float f=0;int r=scanf("%d %d %f",&a,&b,&f);printf("a=%d,b=%d,f=%f\n",a,b,f);printf("%d\n",r);return 0;
}

如果輸入兩個數后,按ctrl+z,提前結束輸入。

如果輸入的數據都不能匹配成功的話,則輸出的r是0。

如果一個數字都不輸入,直接按ctrl+z,輸出的r是-1,也就是EOF。

2.3練習

練習1:浮點除法

#include"cstdio"
#include"iostream"
using namespace std;int main()
{int a=0;int b=0;cin >> a >> b;printf("%.3f",a*1.0/b);return 0;
}

?練習2:B2012 甲流疫情死亡率 - 洛谷

#include"cstdio"int main()
{int a=0,b=0;scanf("%d %d",&a,&b);printf("%.3f%%\n",b*100.0/a);return 0;
}

練習3:?B2013 溫度表達轉化 - 洛谷

#include"cstdio"int main()
{double F=0;scanf("%lf",&F);double C=5*(F-32)/9.0;printf("%.5lf",C);return 0;
}

練習4:B2015 計算并聯電阻的阻值 - 洛谷?

#include"cstdio"int main()
{float r1=0,r2=0;scanf("%f %f",&r1,&r2);printf("%.2f",r1*r2*1.0/(r1+r2));return 0;
}

練習5:B2014 與圓相關的計算 - 洛谷?

#include"cstdio"
#include"iostream"
using namespace std;double p=3.14159;
double r;int main()
{cin >> r ;printf("%.4lf %.4lf %.4lf",r*2,r*2*p,r*r*p);return 0;
}

練習6:B2004 對齊輸出 - 洛谷?

#include"cstdio"int main()
{int a=0,b=0,c=0;scanf("%d %d %d",&a,&b,&c);printf("%8d %8d %8d",a,b,c);return 0;
}

練習7:信息學奧賽一本通(C++版)在線評測系統?

#include"iostream"
#include"cstdio"
using namespace std;int a,b,c,d,e;int main()
{cin >> a >> b >> c >> d >> e;a/=3;e+=a;b+=a;b/=3;a+=b;c+=b;c/=3;b+=c;d+=c;d/=3;c+=d;e+=d;e/=3;d+=e;a+=e;printf("%5d%5d%5d%5d%5d",a,b,c,d,e);return 0;
}

3.cin和cout

  • cin是C++中提供的標準輸入流對象
  • cout是C++中提供的標準輸出流對象
  • cin和cout的輸入輸出非常方便,不需手動控制格式,能夠自動識別變量類型

3.1基本用法?

#include <iostream>
using namespace std;int main()
{int a;char c;float f;cin >> a; // 讀取?個整數cin >> c; // 讀取?個字符cin >> f; // 讀取取?個浮點數cout << "打印結果:"<<endl;cout << a << endl;cout << c << endl;cout << f << endl;return 0;
}

練習:

練習1:P5705 【深基2.例7】數字反轉 - 洛谷

#include"iostream"
using namespace std;int main()
{char a,b,c,d,e;cin >> a >> b >> c >> d >> e;cout << e << d << c << b << a << endl;return 0;
}

練習2:P5708 【深基2.習2】三角形面積 - 洛谷

#include"cstdio"
#include"cmath"
#include"iostream"
using namespace std;int main()
{double a,b,c;cin >> a >> b >> c;double p=(a+b+c)/2;printf("%.1f",sqrt(p*(p-a)*(p-b)*(p-c)));return 0;
}

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

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

相關文章

【消息隊列】數據庫的數據管理

1. 數據庫的選擇 對于當前實現消息隊列這樣的一個中間件來說&#xff0c;具體要使用哪個數據庫&#xff0c;是需要稍作考慮的&#xff0c;如果直接使用 MySQL 數據庫也是能實現正常的功能&#xff0c;但是 MySQL 也是一個客戶端服務器程序&#xff0c;也就意味著如果想在其他服…

飛機大戰lua迷你世界腳本

-- 迷你世界飛機大戰 v1.2 -- 星空露珠工作室制作 -- 最后更新&#xff1a;2024年1月 ----------------------------- -- 迷你世界API適配配置 ----------------------------- local UI { BASE_ID 7477478487091949474-22856, -- UI界面ID ELEMENTS { BG 1, -- 背景 BTN_LE…

圖解MOE大模型的7個核心問題并探討DeepSeekMoE的專家機制創新

原文地址:https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-mixture-of-experts #mermaid-svg-FU7YUSIfuXO6EVHa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-FU7YUSIfuXO6EVHa .error-icon{fill…

【智能機器人開發全流程:硬件選型、軟件架構與ROS實戰,打造高效機器人系統】

文章目錄 1. 硬件層設計(1) 傳感器選型(2) 計算平臺 2. 軟件架構設計(1) 核心模塊劃分(2) 通信框架 3. 關鍵實現步驟(1) 硬件-軟件接口開發(2) SLAM與導航實現(3) 仿真與測試 4. 典型框架示例基于ROS的移動機器人分層架構 5. 優化與擴展6. 開源項目參考 1. 硬件層設計 (1) 傳感…

React Native v0.78 更新

這個版本在 React Native 中引入了 React 19&#xff0c;并帶來了一些重要的新功能&#xff0c;例如 Android 矢量圖&#xff08;Vector Drawables&#xff09;的原生支持 以及 iOS 更好的 Brownfield 集成。 亮點 React 19 集成更小更快的發布節奏可選擇在 Metro 中啟用 Jav…

機器學習數學通關指南

? 寫在前面 &#x1f4a1; 在代碼的世界里沉浸了十余載&#xff0c;我一直自詡邏輯思維敏捷&#xff0c;編程能力不俗。然而&#xff0c;當我初次接觸 DeepSeek-R1 并領略其清晰、系統的思考過程時&#xff0c;我不禁為之震撼。那一刻&#xff0c;我深刻意識到&#xff1a;在A…

MySQL 實驗1:Windows 環境下 MySQL5.5 安裝與配置

MySQL 實驗1&#xff1a;Windows 環境下 MySQL5.5 安裝與配置 目錄 MySQL 實驗1&#xff1a;Windows 環境下 MySQL5.5 安裝與配置 一、MySQL 軟件的下載二、安裝 MySQL三、配置 MySQL 1、配置環境變量2、安裝并啟動 MySQL 服務3、設置 MySQL 字符集4、為 root 用戶設置登錄密…

煙花燃放安全管控:智能分析網關V4煙火檢測技術保障安全

一、方案背景 在中國諸多傳統節日的繽紛畫卷中&#xff0c;煙花盛放、燒紙祭祀承載著人們的深厚情感。一方面&#xff0c;煙花璀璨&#xff0c;是對節日歡慶氛圍的熱烈烘托&#xff0c;寄托著大家對美好生活的向往與期許&#xff1b;另一方面&#xff0c;裊裊青煙、點點燭光&a…

Elasticsearch:解鎖深度匹配,運用Elasticsearch DSL構建閃電般的高效模糊搜索體驗

目錄 Elasticsearch查詢分類 葉子查詢 全文檢索查詢 match查詢 multi_match查詢 精確查詢 term查詢 range查詢 復雜查詢 bool查詢簡單應用 bool查詢實現排序和分頁 bool查詢實現高亮 場景分析 問題思考 解決方案 search_after方案(推薦) point in time方案 方案…

數據安全VS創作自由:ChatGPT與國產AI工具隱私管理對比——論文黨程序員必看的避坑指南

文章目錄 數據安全VS創作自由&#xff1a;ChatGPT與國產AI工具隱私管理對比——論文黨程序員必看的避坑指南ChatGPTKimi騰訊元寶DeepSeek 數據安全VS創作自由&#xff1a;ChatGPT與國產AI工具隱私管理對比——論文黨程序員必看的避坑指南 產品隱私設置操作路徑隱私協議ChatGPT…

FFmpeg入門:最簡單的音視頻播放器

FFmpeg入門&#xff1a;最簡單的音視頻播放器 前兩章&#xff0c;我們已經了解了分別如何構建一個簡單和音頻播放器和視頻播放器。 FFmpeg入門&#xff1a;最簡單的音頻播放器 FFmpeg入門&#xff1a;最簡單的視頻播放器 本章我們將結合上述兩章的知識&#xff0c;看看如何融…

windows 上刪除 node_modules

在 Windows 11 上&#xff0c;你可以通過命令行來刪除 node_modules 文件夾并清除 npm 緩存。以下是具體步驟&#xff1a; 刪除 node_modules 打開命令提示符&#xff08;Command Prompt&#xff09;或終端&#xff08;PowerShell&#xff09;。 導航到項目目錄。你可以使用 …

kotlin的val聲明的變量是常量嗎

kotlin的val聲明的變量是常量嗎 DeepSeek R1 思考 65 秒 思考過程 嗯&#xff0c;用戶問的是Kotlin中的val聲明的變量是不是常量。首先我需要回憶一下Kotlin的基礎知識。記得在Kotlin里&#xff0c;val用來聲明只讀變量&#xff0c;也就是說一旦賦值之后就不能再重新賦值了。…

Linux下學【MySQL】中如何實現:多表查詢(配sql+實操圖+案例鞏固 通俗易懂版~)

每日激勵&#xff1a;“不設限和自我肯定的心態&#xff1a;I can do all things。 — Stephen Curry” 緒論?&#xff1a; 本章是MySQL篇中&#xff0c;非常實用性的篇章&#xff0c;相信在實際工作中對于表的查詢&#xff0c;很多時候會涉及多表的查詢&#xff0c;在多表查詢…

【基礎4】插入排序

核心思想 插入排序是一種基于元素比較的原地排序算法&#xff0c;其核心思想是將數組分為“已排序”和“未排序”兩部分&#xff0c;逐個將未排序元素插入到已排序部分的正確位置。 例如撲克牌在理牌的時候&#xff0c;一般會將大小王、2、A、花牌等按大小順序插入到左邊&…

【Flink銀行反欺詐系統設計方案】3.欺詐的7種場景和架構方案、核心表設計

【Flink銀行反欺詐系統設計方案】3.欺詐的7種場景和架構方案、核心表設計 1. **欺詐場景分類與案例說明**1.1 **大額交易欺詐**1.2 **異地交易欺詐**1.3 **高頻交易欺詐**1.4 **異常時間交易欺詐**1.5 **賬戶行為異常**1.6 **設備指紋異常**1.7 **交易金額突變** 2. **普適性軟…

迷你世界腳本生物接口:Creature

生物接口&#xff1a;Creature 彼得兔 更新時間: 2024-05-22 17:51:22 繼承自 Actor 具體函數名及描述如下: 序號 函數名 函數描述 1 getAttr(...) 生物屬性獲取 2 setAttr(...) 生物屬性設置 3 isAdult(...) 判斷該生物是否成年 4 setOxygenNeed(…

深入理解三色標記、CMS、G1垃圾回收器

三色標記算法 簡介 三色標記算法是一種常見的垃圾收集的標記算法&#xff0c;屬于根可達算法的一個分支&#xff0c;垃圾收集器CMS&#xff0c;G1在標記垃圾過程中就使用該算法 三色標記法&#xff08;Tri-color Marking&#xff09;是垃圾回收中用于并發標記存活對象的核心算…

自動駕駛---不依賴地圖的大模型軌跡預測

1 前言 早期傳統自動駕駛方案通常依賴高精地圖&#xff08;HD Map&#xff09;提供道路結構、車道線、交通規則等信息&#xff0c;可參考博客《自動駕駛---方案從有圖邁進無圖》&#xff0c;本質上還是存在問題&#xff1a; 數據依賴性高&#xff1a;地圖構建成本昂貴&#xf…

Xshell及Xftp v8.0安裝與使用-生信工具050

官網 https://www.xshell.com/zh/free-for-home-school/ XShell & Xftp 詳解 1. XShell 介紹 1.1 XShell 是什么&#xff1f; XShell 是一款強大的 Windows 終端模擬器&#xff0c;主要用于遠程管理 Linux、Unix 服務器。它支持 SSH、Telnet、Rlogin 及 SFTP 協議&…