gpt4 book ai didi

c - 为什么 scanf 不接受用户输入的结构?

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:48 25 4
gpt4 key购买 nike

我有一个包含两个函数的代码用于学校作业。我们刚刚了解了结构。这两个函数都必须将指向结构的指针作为参数。一个函数应该接收用户输入以更改结构中的值,另一个函数应该打印出结构的内容。 Scanf 或 gets() 在我的第一个函数中对我不起作用。我已经查阅了书中的章节和类笔记,但没有运气。这是我的代码:

#include<stdio.h>
#include<stdlib.h>

struct Traveller {
int Ticket_ID;
char Destination;
float Price;
};

void CreateTicket(struct Traveller*);
void PrintTicket(struct Traveller*);

main() {

struct Traveller * str;

CreateTicket(str);
PrintTicket(str);

system("PAUSE");
return 0;

}

void CreateTicket(struct Traveller* ptr) {

printf("Please enter your ticket ID.\n");
scanf("%d", &ptr->Ticket_ID);
printf("\n\nPlease enter your destination.\n");
gets(ptr->Destination);
printf("\n\nPlease enter the price.\n");
scanf("%f", &ptr->Price);

}

void PrintTicket(struct Traveller* ptr) {
printf("\n\n%s\n", ptr->Ticket_ID);
printf("%s\n", ptr->Destination);
printf("%.2s\n", ptr->Price);
}

最佳答案

首先,您需要 main 的返回值 - int main ()。如果在将结构传递给函数之前将结构初始化为 NULL ,这将有所帮助。在 gets() 中,您需要将地址 (&) 提供给您的结构变量。

希望对您有所帮助!我在代码中发现了一些其他问题,但我认为您最好自己解决这些问题 :)

关于c - 为什么 scanf 不接受用户输入的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20139832/

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