在 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
广告