【C語言】通過fgets和fscanf了解讀寫文件流的概念

在C語言中,fgetsfscanf都是用于從文件或輸入流中讀取數據的函數,但它們的工作方式和用途有所不同。

?

1.fgets(Get File String)

?

示例代碼:

char buffer[100];
fgets(buffer, sizeof(buffer), stdin);

?

  • fgets 函數用于從文件或輸入流中讀取一行數據,并將其存儲到一個字符串中。

  • 它會讀取最多n-1個字符,并將它們存儲在s指向的字符數組中,然后自動添加一個空字符'\0'作為字符串的結束符。

  • 如果遇到換行符'\n'fgets會停止讀取并存儲換行符;如果未遇到換行符,它會讀取到緩沖區滿或遇到文件結束符EOF為止。

示例代碼:

int num;
float value;
fscanf(stdin, "%d %f", &num, &value);

2.fscanf(Formatted Scan Functions):

  • fscanf 函數用于從文件或輸入流中讀取格式化輸入。

  • 它允許你指定一個格式字符串,該格式字符串定義了期望讀取的數據類型和格式。

  • fscanf 會根據格式字符串解析輸入,并將其存儲在提供的變量地址中。

  • fgets 讀取一行數據,包括空格,直到遇到換行符或達到最大長度,適用于讀取文本行。

  • fscanf 根據提供的格式字符串讀取數據,可以讀取不同類型的數據,包括整數、浮點數等,適用于解析格式化的輸入。

  • fgets 總是將讀取的數據存儲為字符串,即使期望的是數字類型,也需要額外的轉換。

  • fscanf 在讀取時會進行類型檢查和轉換,如果輸入數據與格式不匹配,可能會導致未定義行為或錯誤。

使用fgets時,需要注意手動處理換行符和結束符。而使用fscanf時,需要確保輸入數據的格式與預期的格式字符串匹配,否則可能會導致讀取失敗或程序崩潰。

?

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

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

相關文章

定位線上同步鎖仍然重復扣費的Bug定位及Redis分布式鎖解決方案

在實際生產環境中,處理訂單的并發請求時,我們經常會遇到重復扣費的問題。本文將通過一個具體的代碼示例,分析在使用同步鎖時仍然導致重復扣費的原因,并提供一個基于Redis分布式鎖的解決方案。 背景:這個案例出現在商家…

2024年洗地機哪個牌子好?內行人最建議這4個:清潔力口碑公認都不錯

在當代生活中,洗地機可以稱得上是一款必備“神器”,勞累的清潔、繁忙的時間、漫天紛飛的寵物毛發,都是家庭清潔面前的一座座大山。而洗地機的出現,完美解決了這些問題,既節約出了很多時間,又達到了很好的清…

Pspice添加新的元器件

1.下載好的Pspice的模型文件。 2.將模型文件的,識別類型修改為 lib 選擇Pspice的模型路徑 會立馬跳出,下面的這個窗口。 核實元器件圖形,沒問題。 添加Pspic仿真模型文件 驗證,是否添加模型文件成功 使用模型文件

linux less命令詳解

less是一個在 Linux 和類 Unix 系統中常用的分頁查看工具,它允許用戶查看長文件或輸出,同時提供了向前和向后滾動的功能,而不需要一次性將整個文件加載到內存中。這對于查看大文件特別有用,因為它比 cat 命令更加靈活和高效。 le…

完全理解C語言函數

文章目錄 1.函數是什么2.C語言中的函數分類2.1 庫函數2.1.1 如何使用庫函數 2.2自定義函數 3.函數的參數3.1 實際參數(實參)3.2 形式參數(形參) 4.函數調用4.1傳值調用4.2 傳址調用4.3 練習 5.函數的嵌套調用和鏈式訪問5.1 嵌套調…

java連接AD(Microsoft Active Directory)模擬用戶登錄認證

文章目錄 一、背景二、頁面效果三、代碼LdapLoginRequest請求實體類Response返回結果MsgADTest測試類補充說明代碼 四、認證結果認證成功認證失敗 本人其他相關文章鏈接 一、背景 親測可用,之前搜索了很多博客,啥樣的都有,就是不介紹報錯以及配置用處&a…

圖論學習 c++Ford-Fulkerson 方法

Ford-Fulkerson算法是用于求解最大流問題的一種經典算法。其核心思想是通過不斷尋找增廣路徑來增加流量,直到找不到增廣路徑為止。每次找到一條增廣路徑,就增加相應的流量,更新殘余網絡。簡單來說就是Ford-Fulkerson算法的工作過程&#xff0…

【探索Linux】P.37(傳輸層 —— TCP協議通信機制 | 確認應答(ACK)機制 | 超時重傳機制)

閱讀導航 引言一、確認應答(ACK)機制1. 成功接收2. 過程中存在丟包3. 引入序列號(1)序列號的定義(2)序列號的作用(3)序列號的工作原理(4)序列號和確認應答號 二、超時重傳機制1. 超時…

基于Java的壁紙網站設計與實現

💗博主介紹💗:?在職Java研發工程師、專注于程序設計、源碼分享、技術交流、專注于Java技術領域和畢業設計? 溫馨提示:文末有 CSDN 平臺官方提供的老師 Wechat / QQ 名片 :) Java精品實戰案例《700套》 2025最新畢業設計選題推薦…

ERP的模塊說明

ERP的模塊:物料管理、銷售管理、生產管理)、財務管理、質量管理、人力資源管理、項目管理、倉儲管理(WMS)、供應商管理(SRM)等功能模塊 ERP流程通常涉及以下幾個關鍵步驟: 制定生產計劃:這是ERP流程的第一步,需要根據產品預測和訂…

Oracle中http的post的用法和例子

在Oracle數據庫中,直接執行HTTP POST請求并不是數據庫核心功能的一部分。但是,你可以通過Oracle的PL/SQL程序結合一些額外的工具或庫來實現這一功能。 以下是一個使用Oracle UTL_HTTP包(Oracle提供的用于HTTP通信的PL/SQL包)來發…

nftables(1)基本原理

簡介 nftables 是 Linux 內核中用于數據包分類的現代框架,用來替代舊的 iptables(包括 ip6tables, arptables, ebtables 等,統稱為 xtables)架構。nftables 提供了更強大、更靈活以及更易于管理的規則集配置方式,使得…

【java計算機畢設】辦公用品管理系統MySQL ssm JSP maven項目設計代碼源碼+文檔 前后端一體

1項目功能 【java計算機畢設】辦公用品管理系統MySQL ssm JSP maven項目設計代碼源碼文檔 前后端一體 2項目介紹 系統功能: 辦公用品管理系統包括管理員、用戶倆種角色。 管理員功能包括個人中心模塊用于修改個人信息和密碼、用戶管理、用品分類管理、用品信息管理…

springcloud+vue項目,controller層接口返回json數據,前端可以接收到數據,但瀏覽器“F12-->網絡-->響應“顯示為空的問題處理

1.顯示為空的場景 SharetekR(access_tokeneyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJQQzoxODA1ODA4ODc1MjUwMTIyNzUyIiwicm5TdHIiOiJrZEoxV05CV3NBSUdYb05TbktSU3kzOGNuSnk3c3FRTSIsInVzZXJJZCI6MTgwNTgwODg3NTI1MDEyMjc1MiwidXNlck5h…

grpc-go客戶端接口添加

【1】 proto相關文件同服務端,如已經生成,可以直接使用服務端的文件(包) 【2】新建一個目錄“WHG_CLIENT”,目錄下新建一個main.go文件 package mainimport ("context""log""grpc-go-maste…

Kafka系列之SpringBoot集成Kafka

本文介紹如何在springboot項目中集成kafka收發message。 pom依賴 springboot相關的依賴我們就不提了&#xff0c;和kafka相關的只依賴一個spring-kafka集成包 <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka<…

STM32F1+HAL庫+FreeTOTS學習5——內核中斷管理及中斷控制函數

STM32F1HAL庫FreeTOTS學習5——中斷管理和臨界段代碼保護 中斷簡介中斷優先級寄存器拓展FreeRTOS中PendSV和Systick中斷優先級配置三個中斷屏蔽寄存器FreeRTOS中斷管理函數代碼驗證 上一期我們學習了FreeRTOS中任務掛起與恢復&#xff0c;在中斷服務程序中恢復任務過程中&#…

[Redis]哨兵機制

哨兵機制概念 在傳統主從復制機制中&#xff0c;會存在一些問題&#xff1a; 1. 主節點發生故障時&#xff0c;進行主備切換的過程是復雜的&#xff0c;需要人工參與&#xff0c;導致故障恢復時間無法保障。 2. 主節點可以將讀壓力分散出去&#xff0c;但寫壓力/存儲壓力是無法…

印章誰在管、誰用了、用在哪?契約鎖讓您打開手機一看便知

“印章都交給誰在管”、“哪些人能用”、“都有哪些業務在用”…這些既是管理者最關心的印章問題也是影響印章安全的關鍵要素。但是公司旗下分子公司那么多&#xff0c;各類公章、法人章、財務章、合同章一大堆&#xff0c;想“問”明白很難。 契約鎖電子簽及印控平臺推出“印章…

14-11 2024 年的 13 個 AI 趨勢

2024 年的 13 個 AI 趨勢 人工智能對環境的影響和平人工智能人工智能支持的問題解決和決策針對人工智能公司的訴訟2024 年美國總統大選與人工智能威脅人工智能、網絡犯罪和社會工程威脅人工智能治療孤獨與對人工智能的情感依賴人工智能影響者中國爭奪人工智能霸主地位人工智能…