日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]函數(shù)名:fgets 功能:從流中讀取一個(gè)字符串 用法:char *fgets(char *string,int n,FILE *stream); 形參注釋: *string:結(jié)果數(shù)據(jù)的首地址;n-1:一次讀入數(shù)據(jù)塊的長度,其默認(rèn)值為1k,即1024;stream文件指針,指向一

函數(shù)名:fgets

功能:從流中讀取一個(gè)字符串

用法:char *fgets(char *string,int n,FILE *stream);

形參注釋:

*string:結(jié)果數(shù)據(jù)的首地址;n-1:一次讀入數(shù)據(jù)塊的長度,其默認(rèn)值為1k,即1024;stream文件指針,指向一個(gè)文件

函數(shù)說明:

fgets()用來從參數(shù)stream所指的文件內(nèi)讀入字符并存到參數(shù)s所指的內(nèi)存空間,直到出現(xiàn)換行字符、讀到文件尾或是已讀了size-1個(gè)字符為止,最后會(huì)加上NULL作為字符串結(jié)束。

如果在未讀滿n-1個(gè)字符之時(shí),已讀到一個(gè)換行符或一個(gè)EOF(文件結(jié)束標(biāo)志),則結(jié)束本次讀操作,讀入的字符串中最后包含讀到的換行符。

示例:

#include <string.h>

#include <stdio.h>

int main(void)

{

FILE *stream; //FILE 是一種數(shù)據(jù)類型,是管理文件流的一種結(jié)構(gòu)

char string[] = "This is a test";

char msg[20];

/* open a file for update */

stream = fopen("DUMMY.FIL", "w+");

/* write a string into the file */

fwrite(string, strlen(string), 1, stream);

/* seek to the start of the file */

fseek(stream, 0, SEEK_SET);

/* read a string from the file */

fgets(msg, strlen(string)+1, stream);

/* display the string */

printf("%s", msg);

fclose(stream);

return 0;

}

代碼分析:

操作成功時(shí)返回的是msg的值,如果碰到文件結(jié)束或錯(cuò)誤的時(shí)候,fgets返回NULL;因?yàn)檩斎氲倪^程中一般只會(huì)按下回車,很少會(huì)是EOF的,所以不會(huì)是碰到文件結(jié)束,而錯(cuò)誤是當(dāng)你傳入msg是NULL的時(shí)候才會(huì)遇到,所以基本上是不可能返回NULL的。而且輸入超過了長度n的時(shí)候,fgets會(huì)自動(dòng)截?cái)嗟?屬于操作成功。

函數(shù)名:gets

功能:從stdin流中讀取字符串,直至接受到換行符或EOF時(shí)停止,并將讀取的結(jié)果存放在str指針?biāo)赶虻淖址麛?shù)組中。換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為null值,并由此來結(jié)束字符串。

示例:

#include"stdio.h"

void main()

{

char str1[5];

gets(str1);

printf("%sn",str1);

}

注意:本函數(shù)可以無限讀取,不會(huì)判斷上限,所以程序員應(yīng)該確保str的空間足夠大,以便在執(zhí)行讀操作時(shí)不發(fā)生溢出。

代碼分析:

用gets函數(shù)時(shí),編譯器會(huì)有報(bào)警提示,因?yàn)間ets函數(shù)不安全,沒有限制輸入緩沖區(qū)的大小,容易造成溢出。這就好像養(yǎng)金魚,你投多少魚食它就吃多少,自己不知道控制,但它的胃容量是有上限的(默認(rèn)值),喂的太多金魚就會(huì)撐死(溢出)。

總結(jié):

1 盡量不使用gets

2 內(nèi)存越界是有問題隱患,但并不是一定會(huì)體現(xiàn)出問題,要看具體情況。



來源:miaomi2次

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

為了提升設(shè)計(jì)效率和運(yùn)行安全性 ,對(duì)DL/T 834—2023《火力發(fā)電廠汽輪機(jī)防進(jìn)水和冷蒸汽導(dǎo)則》與DL/T 834—2003 《火力發(fā)電廠汽輪機(jī)防進(jìn)水和冷蒸汽導(dǎo)則》的設(shè)計(jì)、運(yùn)行和檢驗(yàn)及維護(hù)要求進(jìn)行了對(duì)比分析 , 總...

關(guān)鍵字: 標(biāo)準(zhǔn) 疏水 冷蒸汽 發(fā)電廠

在Linux環(huán)境下的C語言編程中,函數(shù)的可重入性(Reentrancy)是一個(gè)至關(guān)重要的概念。它直接關(guān)系到多線程或多任務(wù)環(huán)境下程序的穩(wěn)定性和可靠性。所謂可重入函數(shù),是指一個(gè)函數(shù)可以被多個(gè)線程或任務(wù)安全地調(diào)用,而不會(huì)導(dǎo)致數(shù)...

關(guān)鍵字: Linux 庫函數(shù)

電磁兼容(EMC)是指在同一電磁環(huán)境中,不同設(shè)備或系統(tǒng)能夠正常工作且互不干擾的狀態(tài)。在現(xiàn)代電子和通信領(lǐng)域,EMC是一個(gè)至關(guān)重要的概念,它不僅影響設(shè)備的性能,還關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和安全性。為了確保設(shè)備的EMC,各國都制...

關(guān)鍵字: 電磁兼容 EMC 標(biāo)準(zhǔn)

無線充電技術(shù),作為現(xiàn)代科技領(lǐng)域的一項(xiàng)創(chuàng)新,正逐步改變著我們的生活方式。從智能手機(jī)到電動(dòng)汽車,無線充電的應(yīng)用場景日益廣泛,為用戶提供了前所未有的便捷性。然而,盡管無線充電技術(shù)發(fā)展迅速,其在標(biāo)準(zhǔn)和能效方面仍面臨諸多瓶頸,這些...

關(guān)鍵字: 無線充電 能效 標(biāo)準(zhǔn)

隨著無人機(jī)的普及,越來越多的人開始使用無人機(jī)進(jìn)行各種飛行任務(wù),但是不當(dāng)?shù)氖褂脮?huì)給公共安全和社會(huì)秩序帶來潛在的風(fēng)險(xiǎn),因此對(duì)于無人機(jī)使用的規(guī)定也變得越來越嚴(yán)格。本文將介紹無人機(jī)使用的標(biāo)準(zhǔn)和規(guī)定,以幫助大家正確使用無人機(jī)。

關(guān)鍵字: 無人機(jī) 標(biāo)準(zhǔn) UAV

智能家居作為新興領(lǐng)域,逐漸走入了人們的生活。智能家居系統(tǒng)是利用先進(jìn)的計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通訊技術(shù)、智能云端控制、綜合布線技術(shù)、醫(yī)療電子技術(shù)依照人體工程學(xué)原理,融合個(gè)性需求,將與家居生活有關(guān)的各個(gè)子系統(tǒng)如安防、燈光控制、窗簾控...

關(guān)鍵字: 智能家居 標(biāo)準(zhǔn)

因?yàn)?G涵蓋內(nèi)容更豐富,上述三個(gè)5G專利池側(cè)重點(diǎn)也不同:Avanci側(cè)重汽車和物聯(lián)網(wǎng);Sisvel側(cè)重手機(jī)等終端領(lǐng)域;Alium側(cè)重?zé)o線接入網(wǎng)RAN。

關(guān)鍵字: 5G 標(biāo)準(zhǔn) 必要專利

為了保證航天型號(hào)元器件的固有質(zhì)量和使用質(zhì)量滿足航天工程的要求,需要制定一系列標(biāo)準(zhǔn)和文件,規(guī)范元器件的選擇、采購和應(yīng)用。這一系列標(biāo)準(zhǔn)和文件按照其內(nèi)在聯(lián)系形成的科學(xué)有機(jī)整體就是元器件標(biāo)準(zhǔn)體系。

關(guān)鍵字: 電子 標(biāo)準(zhǔn)

ISO26262是汽車的一個(gè)安全性國際標(biāo)準(zhǔn)。目前我國也在積極參與中。是行業(yè)標(biāo)準(zhǔn)的一種。

關(guān)鍵字: iso26262 標(biāo)準(zhǔn)

這篇文章想分享筆者在嵌入式開發(fā)過程中常用的庫函數(shù),他們的使用方法,使用場景,使用好處以及頭文件位置。1#include一般我在寫C代碼的時(shí)候都會(huì)包含此頭文件,因?yàn)橐坏┌宋募?,你就可以暢快的使用bool數(shù)據(jù)類型,而不...

關(guān)鍵字: 庫函數(shù)
關(guān)閉