【发布时间】:2015-10-21 13:44:22
【问题描述】:
#include <stdio.h>
struct book
{
char name[1000];
int price;
};
int main()
{
struct book ct1[5];
int i;
for (i = 0; i < 5; i++)
{
printf("Please Enter %d Number Book Name: ",i+1);
gets(ct1[i].name);
printf("Price: ");
scanf("%d", &ct1[i].price);
}
for (i = 0; i < 5; i++)
{
printf("%d Nuumber Book's name and price : \n",i+1);
printf("%s = %d\n", ct1[i].name, ct1[i].price);
}
return 0;
}
我编写这段代码是为了获取书名和价格并打印出来。
喜欢
输入: 请输入 1 个号码簿名称:Sherlock
价格:100
.......
.......
输出:
号码簿的名称和价格: 夏洛克 = 100
..................
.......
但它接受这样的输入 请输入 1 个号码簿名称:sherlock holmes
价格:100
请输入 2 号码簿名称:价格:........
第一次是正确的,但从第二次开始出现问题。请帮帮我。
【问题讨论】:
-
究竟“出了什么问题”?不要使用
gets,而是使用fgets! -
scanf("%d"-->scanf("%d%*c" -
它停止使用字符串
标签: c