簡體   English   中英

scanf_s 為格式字符串傳遞的參數不足(Visual Studio)

[英]scanf_s not enough arguments passed for format string(Visual Studio)

程序顯示錯誤為標題。 scanf_s 函數有什么問題? 任何想法? 提前致謝。

int main()
    {
        struct Students
        {
            char name[10];
            int  snum;
            float  point;
        }st[5];

int i;
for(i=0;i<5;i++)
{
    printf("-- Student Info --\n-");

    printf("Enter Your Name: ");
    scanf_s("%s",st[i].name);

    printf("\nEnter Your Number: ");
    scanf_s("%d",&st[i].snum);
}

return 0;
}

當編譯器檢測到滿足格式字符串中占位符所需的參數數量與提供的參數數量不匹配時,通常會出現這種類型的錯誤。

這是 Visual Studio 2015 及更高版本中提供的新警告。 因此,要使您的代碼正常工作,您需要提供兩個參數,一個是地址,第二個是額外的 sizeof(variable) placeholder。

scanf_s("%s", &string, sizeof(string));

這將使代碼正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM