最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中scanf與scanf_s函數(shù)的使用詳解

 更新時(shí)間:2021年10月18日 09:56:21   作者:許同學(xué)。。  
本文主要介紹了C語言中scanf與scanf_s函數(shù)的使用詳解,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

1.scanf_s(是vs提供的函數(shù))

a.代碼1

int main()
{
	char a = 0;
	//scanf_s("%c", &a, 1);
	scanf_s("%c", &a, sizeof(a));
	return 0;
}

scanf_s有三個(gè)參數(shù),最后一個(gè)是變量a所占據(jù)空間的大?。▎挝粸樽止?jié)),這里可以寫1,也可以寫sizeof(a)。如果a為整型的話,第三個(gè)參數(shù)就為4,或者sizeof(a)。

b.代碼2

int main()
{
	char a = 0, b = 0;
	scanf_s("%c %c", &a, 1, &b, 1);
	printf("%c %c", a, b);
	return 0;
}

可不要寫成  scanf_s("%c%c",&a,&b,1,1); 這樣會(huì)出錯(cuò)的

c.代碼3

int main()
{
	char arr1[5] = { 0 };
	scanf_s("%s", arr1, sizeof(arr1));
	printf("%s", arr1);
	return 0;
}

注意:輸入字符的個(gè)數(shù)時(shí),一定是比數(shù)組的空間個(gè)數(shù)小的,比如像上面的代碼只能輸入1-4個(gè)字符,而不是5個(gè),不然會(huì)出錯(cuò)的。(arr[4]裝的應(yīng)該是一個(gè)換行符)

d.安全性檢測(cè)

int main()
{
	char arr1[5] = { 0 };
	int c=scanf_s("%s", arr1, sizeof(arr1));
	printf("%d\n", c);
	printf("%s", arr1);
	return 0;
}

如果輸入的字符個(gè)數(shù)>=數(shù)組空間 個(gè)數(shù),scanf_s的返回值就為0,反之則為1。

int main()
{
	char arr1[5] = { 0 };
	scanf_s("%s", arr1, sizeof(arr1));
	printf("%s", arr1);
	return 0;
}

 如果輸入的字符個(gè)數(shù)>=數(shù)組空間 個(gè)數(shù),是不會(huì)打印數(shù)組中的元素的。(而scanf函數(shù)就會(huì)打印出)

2.scanf(標(biāo)準(zhǔn)的庫(kù)函數(shù))

a.代碼1

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
	int a = 0;
	scanf("%d", &a);
	printf("%d", a);
	return 0;
}

在VS13 17 19的版本下使用scanf函數(shù)一定在最開始(#define _CRT_SECURE_NO_WARNINGS),不然會(huì)報(bào)錯(cuò)的。

b.安全性測(cè)試

int main()
{
	char arr1[5] = { 0 };
	int c=scanf("%s", arr1);
	printf("%d\n", c);
	printf("%s", arr1);
	return 0;
}

 當(dāng)我們輸入abcdefg 7個(gè)字符時(shí)(已經(jīng)超出了數(shù)組的空間個(gè)數(shù)了),雖然可以打印出來,但是arr1附近的??臻g已被破壞了,出現(xiàn)越界的情況了。scanf_s不會(huì)打印出來,也就不存在越界的行為了。

c.當(dāng)在scanf函數(shù)里面輸入格式符

如%d %d(%d%d之間有空格),那么通過標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)輸入時(shí)兩個(gè)整型之間也加一個(gè)空格。

如%d,%d(%d%d之間逗號(hào)),那么通過標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)輸入時(shí)兩個(gè)整型之間也加一個(gè)逗號(hào)。

3.總結(jié)

使用scanf_s函數(shù)雖然安全性比較高,但是可移植性差。比如含有scanf_s函數(shù)的代碼不一定在其它的編譯器上能夠跑過。

scanf函數(shù)雖然沒有scanf_s函數(shù)那么安全,但可移植性是比scanf_s強(qiáng)。

scanf_s函數(shù)與scanf函數(shù)的使用與比較今天就分享到這里了,如果對(duì)你有幫助的話嗎,可以給個(gè)關(guān)注,順便給個(gè)贊。

到此這篇關(guān)于C語言中scanf與scanf_s函數(shù)的使用詳解的文章就介紹到這了,更多相關(guān)C語言 scanf與scanf_s內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c語言常量定義規(guī)則知識(shí)點(diǎn)總結(jié)

    c語言常量定義規(guī)則知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于c語言常量定義規(guī)則知識(shí)點(diǎn)總結(jié),需要的朋友們可以學(xué)習(xí)下。
    2020-03-03
  • 使用kendynet構(gòu)建異步redis訪問服務(wù)

    使用kendynet構(gòu)建異步redis訪問服務(wù)

    這篇文章主要介紹了在kendynet上寫的一個(gè)簡(jiǎn)單的redis異步訪問接口,大家參考使用吧
    2014-01-01
  • C++ getcwd函數(shù)獲取項(xiàng)目運(yùn)行路徑方法詳解

    C++ getcwd函數(shù)獲取項(xiàng)目運(yùn)行路徑方法詳解

    在Linux下做QT項(xiàng)目時(shí),需要獲取項(xiàng)目的運(yùn)行路徑,于是用getcwd函數(shù)進(jìn)行獲取,然后在Windows下進(jìn)行測(cè)試,發(fā)現(xiàn)獲取到的是程序的項(xiàng)目路徑,即代碼文件路徑,然后再Linux QT中測(cè)試,獲取到的又是運(yùn)行路徑,這就很納悶了。經(jīng)過再三測(cè)試,終于發(fā)現(xiàn)了原因
    2022-10-10
  • C++ Dijkstra算法之求圖中任意兩頂點(diǎn)的最短路徑

    C++ Dijkstra算法之求圖中任意兩頂點(diǎn)的最短路徑

    這篇文章主要為大家詳細(xì)介紹了用C++經(jīng)典算法-Dijkstra算法求任意兩頂點(diǎn)之間的最短路徑,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C語言實(shí)現(xiàn)停車管理系統(tǒng)

    C語言實(shí)現(xiàn)停車管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)停車管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言三個(gè)數(shù)排列大小的實(shí)現(xiàn)方法

    C語言三個(gè)數(shù)排列大小的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄狢語言三個(gè)數(shù)排列大小的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Qt實(shí)現(xiàn)發(fā)送HTTP請(qǐng)求的示例詳解

    Qt實(shí)現(xiàn)發(fā)送HTTP請(qǐng)求的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何通過Qt實(shí)現(xiàn)發(fā)送HTTP請(qǐng)求,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • C語言詳細(xì)分析講解流程控制語句用法

    C語言詳細(xì)分析講解流程控制語句用法

    C語言語句的執(zhí)行默認(rèn)順序執(zhí)行(從上往下依次執(zhí)行),編程語言一般除了默認(rèn)的順序執(zhí)行以外,還提供分支執(zhí)行和循環(huán)執(zhí)行的語法,讓我們一起來看看
    2022-05-05
  • C++?各種map特點(diǎn)對(duì)比分析

    C++?各種map特點(diǎn)對(duì)比分析

    文章比較了C++中不同類型的map(如std::map,?std::unordered_map,?std::multimap,?std::unordered_multimap,?hash_map)的底層實(shí)現(xiàn)、元素順序、鍵的唯一性以及查找和插入刪除操作的效率,感興趣的朋友一起看看吧
    2025-03-03
  • opencv3/C++ HOG特征提取方式

    opencv3/C++ HOG特征提取方式

    今天小編就為大家分享一篇opencv3/C++ HOG特征提取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評(píng)論

凌海市| 文安县| 新龙县| 洛隆县| 金昌市| 利辛县| 南安市| 乌鲁木齐市| 岳池县| 泗阳县| 同仁县| 樟树市| 洛隆县| 扎鲁特旗| 甘南县| 阳高县| 卢氏县| 盐津县| 根河市| 宜黄县| 柳州市| 城步| 肇东市| 镇江市| 昆山市| 秦皇岛市| 台中市| 布尔津县| 兰考县| 峡江县| 邯郸市| 鄂托克旗| 锡林郭勒盟| 许昌县| 霍邱县| 大同市| 德令哈市| 金沙县| 左权县| 阳高县| 大悟县|