欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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.安全性檢測

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)的庫函數(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.安全性測試

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語言實(shí)現(xiàn)雙人貪吃蛇游戲?qū)嵗a

    C語言實(shí)現(xiàn)雙人貪吃蛇游戲?qū)嵗a

    大家好,本篇文章主要講的是C語言實(shí)現(xiàn)雙人貪吃蛇游戲?qū)嵗a,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C++提取文件中信息的方法

    C++提取文件中信息的方法

    這篇文章主要為大家詳細(xì)介紹了C++提取文件中信息的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C++超詳細(xì)講解函數(shù)參數(shù)的默認(rèn)值

    C++超詳細(xì)講解函數(shù)參數(shù)的默認(rèn)值

    在C++中,定義函數(shù)時(shí)可以給形參指定一個(gè)默認(rèn)的值,這樣調(diào)用函數(shù)時(shí)如果沒有給這個(gè)形參賦值(沒有對(duì)應(yīng)的實(shí)參),那么就使用這個(gè)默認(rèn)的值。也就是說,調(diào)用函數(shù)時(shí)可以省略有默認(rèn)值的參數(shù)
    2022-05-05
  • C語言之雙向鏈表詳解及實(shí)例代碼

    C語言之雙向鏈表詳解及實(shí)例代碼

    這篇文章主要介紹了C語言之雙向鏈表的相關(guān)資料,并附實(shí)例代碼,有需要的小伙伴可以參考下
    2016-09-09
  • C/C++ 中const關(guān)鍵字的用法小結(jié)

    C/C++ 中const關(guān)鍵字的用法小結(jié)

    C++中的const關(guān)鍵字的用法非常靈活,而使用const將大大改善程序的健壯性。這篇文章主要介紹了C/C++ 中const關(guān)鍵字的用法,需要的朋友可以參考下
    2020-02-02
  • 詳解C語言動(dòng)態(tài)內(nèi)存的分配

    詳解C語言動(dòng)態(tài)內(nèi)存的分配

    這篇文章主要為大家介紹了C語言動(dòng)態(tài)內(nèi)存的分配,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • socket編程之bind()函數(shù)使用示例詳解

    socket編程之bind()函數(shù)使用示例詳解

    這篇文章主要為大家介紹了socket編程之bind()函數(shù)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 用C語言模仿Python函數(shù)的實(shí)例

    用C語言模仿Python函數(shù)的實(shí)例

    下面小編就為大家?guī)硪黄肅語言模仿Python函數(shù)的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • C語言中 & 和 &&的區(qū)別詳解

    C語言中 & 和 &&的區(qū)別詳解

    這篇文章主要介紹了C語言中 & 和 &&的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Linux線程同步之信號(hào)C語言實(shí)例

    Linux線程同步之信號(hào)C語言實(shí)例

    這篇文章主要介紹了Linux線程同步之信號(hào)C語言實(shí)例,本文直接給出代碼實(shí)例,需要的朋友可以參考下
    2015-04-04

最新評(píng)論