国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C6064:缺少“scanf_s”的整型參數(shù)(對應于轉換說明符“2”

這篇具有很好參考價值的文章主要介紹了C6064:缺少“scanf_s”的整型參數(shù)(對應于轉換說明符“2”。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

項目場景:

學習過程遇見的問題,出現(xiàn)兩個警告,一個是關于C6054:可能沒有為字符串“name”添加字符串零終警告,另一個是關于C6064:缺少“scanf_s”的整型參數(shù)(對應于轉換說明符“2”,因為篇幅太長,本片只介紹C6064:缺少“scanf_s”的整型參數(shù)(對應于轉換說明符“2”,警告C6054請移

警告C6054


問題描述

// talkback.c -- 演示與用戶交互
#include <stdio.h>
#include <string.h> // 提供strlen()函數(shù)的原型
#define DENSITY 62.4 // 人體密度(單位:磅/立方英尺)
int main()
{
	float weight, volume;
	int size, letters;
	char name[40] = {0}; /* 聲明字符串name, name是一個可容納40個字符的數(shù)組 */
	printf("Hi! What's your first name?\n");
	scanf_s("%s", name);
	printf("%s, what's your weight in pounds?\n", name);
	scanf_s("%f", &weight);
	size = sizeof name;
	letters = strlen(name); /* strlen()函數(shù)的使用 */
	volume = weight / DENSITY;
	printf("Well, %s, your volume is %2.2f cubic feet.\n", name, volume);
	printf("Also, your first name has %d letters,\n", letters);
	printf("and we have %d bytes to store it.\n", size);
	return 0;
}

以上是源代碼,大家可以試著運行,我調(diào)試并沒有報錯,并也出現(xiàn)了彈窗,但運行的結果視乎純在問題,判斷不正常情況理由。程序目的是實現(xiàn)與用戶的交互,代碼中使用兩次scanf_s()輸入函數(shù),所以用戶應當輸入兩次,實現(xiàn)兩次交互效果,請看下面調(diào)試輸出圖:,

C6064:缺少“scanf_s”的整型參數(shù)(對應于轉換說明符“2”

正常情況應該如下:

C6064:缺少“scanf_s”的整型參數(shù)(對應于轉換說明符“2”

所以還一部內(nèi)容哪去了???關閉彈窗,編譯出現(xiàn)警告

C6064:缺少“scanf_s”的整型參數(shù)(對應于轉換說明符“2”


原因分析:

//scanf_s("%s", name);? ? 對于變量name這個字符串,沒有傳入字符串長度的參數(shù),因為在調(diào)用scanf_s()函數(shù)時,如果必須提供一個數(shù)字以表明最多讀取多少位字符。比如:char d[20];寫成scanf_s("%s",d,20);才是正確的,有這個參數(shù)20使準確性、安全性提高。


解決方案:

C6064:缺少“scanf_s”的整型參數(shù)(對應于轉換說明符“2”

?修改完后,運行結果如下圖:

C6064:缺少“scanf_s”的整型參數(shù)(對應于轉換說明符“2”

-------------------------------------分------------割-----------線---------------------------------------------------------

補充內(nèi)容:在有些時候并不需要傳入字符串長度的參數(shù)

像scanf_s()函數(shù)要求輸入的類型是%c(單個字符)、要求輸入的類型是%d(十進制整數(shù))、要求輸入的類型為%f(浮點型).....等等。換句話,只有當函數(shù)要求傳入的類型是%s(字符串)時,才要需要傳入字符串長度的參數(shù)

像下面的這段代碼:

#include <stdio.h>
int main(void) /* 函數(shù)原型,主函數(shù) */
{
	char zifu; /* 聲明字符類型變量名為zifu */
	printf("請輸入你想輸入的字符:");
	scanf_s("%c", &zifu); 
	printf("你輸入的字符是: %c,它的代碼編號是:%d", zifu, zifu); /* ①打印字符②打印十進制整數(shù) */
	return 0;
}

到此,問題已經(jīng)解決,歡迎在評論區(qū)交流,若有不對地方,請指正,共勉

另外,如果分不清scanf()和scanf_s(),請看鏈接,博主也有些地方引用其中內(nèi)容

http://t.csdn.cn/3JxhK文章來源地址http://www.zghlxwxcb.cn/news/detail-505825.html

到了這里,關于C6064:缺少“scanf_s”的整型參數(shù)(對應于轉換說明符“2”的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包