在 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 次浏览

开始您的 职业

通过完成课程获得认证

入门
广告