在 C 語言中使用 scanf() 語句時出現的常見錯誤是什麼?


問題

在 C 語言中,使用 scanf() 函式讀取字串和數值資料時出現的常見錯誤是什麼?

解決方案

scanf() 函式用於讀取來自 C 語言 stdin 的格式化輸入。它返回寫入其中的字元的總數,否則返回負值。

通常在使用 scanf() 函式從使用者讀取整數後讀取字串值時,我們會經常遇到錯誤。

示例

以下是一個讀取班號(整數值)和學生姓名(字串)的 C 程式 −

 動態演示

#include <stdio.h>
struct student {
   char name[10];
   int roll;
} s;
int main(){
   printf("Enter information of students:
");    printf("
Enter roll number: ");    scanf("%d", &s.roll);    printf("
Enter name: ");    gets(s.name);    printf("
Displaying Information of students:
");    printf("
Roll number: %d\t", s.roll);    printf("
name:%s\t", s.name);    return 0; }

輸出

在上面的示例中,班號已由編譯器讀取,此後編譯器無法讀取姓名,並轉到 printf("Roll Number is: %d\t, s.roll);

and the output is "Roll number: 3
name: "

這是在 C 語言中使用 scanf() 函式讀取字串和數值資料時出現的常見錯誤。

Enter information of students:
Enter roll number: 3
Enter name: //error
Displaying Information of students:
Roll number: 3
name: //error

更新於: 09-Mar-2021

894 次瀏覽

開始您的 職業

透過完成課程獲得認證

入門
廣告