【发布时间】:2021-07-05 17:37:19
【问题描述】:
我想获取结构的三个不同变量的输入,但每次都会跳过一个或另一个用户输入。我是编程新手,不知道发生了什么。请帮助我理解这里的问题。 我试图寻找解决此问题的方法,但我自己无法弄清楚。
#include <stdio.h>
#include <string.h>
struct details
{
char name[50];
char license[30];
char route[120];
int km;
} driver1, driver2, driver3;
int main()
{
printf("Driver 1\n");
printf("Name: ");
scanf("%s", &driver1.name);
printf("License Number: ");
scanf("%s", &driver1.license);
printf("Route: ");
scanf("%s", &driver1.route);
printf("Approx km driven: ");
scanf("%d", &driver1.km);
printf("\n");
printf("Driver 2\n");
printf("Name: ");
scanf("%s", &driver2.name);
printf("License Number: ");
scanf("%s", &driver2.license);
printf("Route: ");
scanf("%s", &driver2.route);
printf("Approx km driven: ");
scanf("%d", &driver2.km);
printf("\n");
printf("Driver 3\n");
printf("Name: ");
scanf("%s", &driver3.name);
printf("License Number: ");
scanf("%s", &driver3.license);
printf("Route: ");
scanf("%s", &driver3.route);
printf("Approx km driven: ");
scanf("%d", &driver3.km);
printf("\n");
printf("Driver 1 details:\n");
printf(" Name: %s\n", driver1.name);
printf(" License number: %s\n", driver1.license);
printf(" Route: %s\n", driver1.route);
printf(" Apprrox km driven: %d", driver1.km);
printf("\n");
printf("Driver 2 details:\n");
printf(" Name: %s\n", driver2.name);
printf(" License number: %s\n", driver2.license);
printf(" Route: %s\n", driver2.route);
printf(" Apprrox km driven: %d", driver2.km);
printf("\n");
printf("Driver 3 details:\n");
printf(" Name: %s\n", driver3.name);
printf(" License number: %s\n", driver3.license);
printf(" Route: %s\n", driver3.route);
printf(" Apprrox km driven: %d", driver3.km);
printf("\n");
return 0;
}
【问题讨论】:
-
你能发布一个显示问题的会话的输入和输出吗?你输入的公里数是整数吗?
-
"%s"在第一个空白字符处停止,因此如果“名称”作为名字和姓氏给出,则只有名字将存储在driver.name中,姓氏将是存储在driver.license。换句话说,你应该edit这个问题并向我们展示给程序的输入,以及从程序接收到的输出。