gpt4 book ai didi

c - 在结构变量中获取字符串和整数

转载 作者:行者123 更新时间:2023-11-30 15:16:03 26 4
gpt4 key购买 nike

#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 本号码簿名称:夏洛克·福尔摩斯

价格:100

请输入2号簿名称:价格:........

第一次是正确的,但从第二次开始就出了问题。请帮助我。

最佳答案

首先停止使用gets,改用fgets -

fgets(ct1[i].name,sizeof ct1[i].name,stdin );

scanf 之后,您可以执行此操作 -

while((c=getchar())!=EOF && c!='\n');       

for 循环之前将 c 声明为 int

这是从 stdin 中删除 '\n',它在每次迭代中的 scanf 之后保留并导致 fgets 返回。

关于c - 在结构变量中获取字符串和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33261009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com