gpt4 book ai didi

c - 获取用户输入无法正常工作

转载 作者:行者123 更新时间:2023-11-30 14:55:50 25 4
gpt4 key购买 nike

我正在使用结构体用 C 语言编写一个简单的程序。用户需要为结构输入一些值 - 姓名和年龄。第一次输入数据后,第二次程序只是跳过其中一个字段,只希望我输入数据的第二个字段。我不知道出了什么问题。

    struct Person {

char name[20];
int age;
};

void main(){

struct Person pArray[10];
for (int i = 0; i < 10; i++) {
printf("Please enter a name and age:\n");
printf("Name: ");
fgets(pArray[i].name, 20, stdin);
printf("Age: ");
scanf("%d", &pArray[i].age);
}
}

正如您所看到的,在第一次输入 Jonathan 和 45 后,第二次它跳过了姓名,只需要年龄。为什么会发生这种情况? enter image description here

最佳答案

我尽量不混合格式化和未格式化的输入(例如,fgetsscanf)。这是仅使用 fgets 作为输入的程序:

#include <stdio.h>

struct Person {
char name[20];
int age;
};

int main(){
struct Person pArray[10];
char numberBuffer[20];
for (int i = 0; i < 10; i++) {
printf("Please enter a name and age:\n");
printf("Name: ");
fgets(pArray[i].name, 20, stdin);
printf("Age: ");
fgets(numberBuffer, 20, stdin);
sscanf(numberBuffer, "%d", &pArray[i].age);
}
}

关于c - 获取用户输入无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45377459/

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