c - 如何访问结构内的数据?
问题描述
我正在尝试访问帐号、姓名和地址并将其打印在函数 void printAllRecords 中,但是在我使用函数 addRecord 添加新记录后,它仍然不会打印保存的数据。他们不让我发布我的代码,所以我只添加了 2 个函数。任何帮助都会很棒。多谢你们。假设我从 main 调用函数。
struct record
{
int accountno;
char name[25];
char address[80];
struct record *next;
};
/*print all the records in the database */
void printAllRecords (struct record *start)
{
while (start != NULL)
{
printf ("%d\n%s\n%s\n", start->accountno, start->name, start->address);
}
}
解决方案
我不明白为什么 start 是双指针,也不明白为什么要为结构的每个成员传入一个 arg。但这将向您展示如何将 scanf 与您的结构一起使用。
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
struct record
{
int account;
char name[25];
char address[80];
struct record *next;
};
int addRecord (struct record *rec)
{
printf ("Enter your account number:\n");
scanf ("%d", &(rec->account));
while (rec->account < 0)
{
printf ("Error: Enter a valid account number.\n");
scanf ("%d", &(rec->account));
}
//emptyStdin (); /*function to clean the buffer*/
printf ("Enter your name:\n");
scanf("%s", rec->name);
//fgets ((rec->name), 25, stdin);
printf ("Enter your residential address:\n");
//getaddress (address, 80); /*function to get multiple lines of input from the user*/
return 1;
}
int main()
{
struct record rec;
addRecord(&rec);
printf("%d %s, %s", rec.account, rec.name, rec.address);
return 0;
}
推荐阅读
- powerbi - Power BI 中的默认切片器选择(最新日期)
- python - 我如何处理在 Telethon 中从组到超级组的迁移?
- c# - 无法从 ASP.Net 核心剃须刀页面检索表行
- java - 如何将此 Kotlin 代码(包含一些方法和一些类)转换为 java
- pine-script - 日历年至财政年
- wso2 - 无法使用 WSO2 apictl 工具登录环境
- c# - 在 Windows 窗体 C# .NET Core 中使用 [DataDirectory] 时无法连接到 localdb
- android - 在 Kotlin MultiPlatform 项目中未解决 iOS 依赖项
- javascript - 就像下面的 React 代码一样,JavaScript 不能直接放在 JSX 中,但是为什么 JSX 可以放在 JavaScript 中呢?
- tensorflow - 错误:无法导入名称“squeeze_or_expand_dimensions”