gpt4 book ai didi

c - 将 char 传递给函数 var 列表不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 00:47:55 24 4
gpt4 key购买 nike

我需要帮助将 char 传递给函数的 var 列表。这是代码:

#include <stdio.h>
#include <stdlib.h> /* for the exit command */
#pragma warning (disable :4996)

void AddCustomer(char phone, char firstname, char lastname, char creditcard)
{
FILE *f;
f = fopen("Subscribers.dat", "wb");
if (f == NULL)
{
printf("Error in opening file");
exit(1);
}
fwrite(&phone, sizeof(char), 10, f);
fwrite(" ", sizeof(char), 1, f);
fwrite(&firstname, sizeof(char), 4, f);
fwrite(" ", sizeof(char), 1, f);
fwrite(&lastname, sizeof(char), 4, f);
fwrite(" ", sizeof(char), 1, f);
fwrite(&creditcard, sizeof(char), 10, f);
fwrite("\n", sizeof(char), 2, f);
fclose(f);
}

void main()
{
char phone = "050000000";
char firstname = "Name";
char lastname = "Name";
char creditcard = "0123456789";
AddCustomer(phone, firstname, lastname, creditcard);
}

当我运行这段代码时,它正在写入 Subscribers.dat:

hXŒX X ŒX X  X|X |X

它应该写成050000000 Name Name 0123456789

最佳答案

更改代码

第 1 点

  char phone = "050000000";

 char phone[ ] = "050000000";

因为,您需要一个数组来保存字符

其他人也是如此。

第 2 点

void AddCustomer(char phone, char firstname, char lastname, char creditcard)

void AddCustomer(char *phone, char *firstname, char *lastname, char *creditcard)

因为,您需要传递数组,而不是单个 char

第 3 点

fwrite(&phone, sizeof(char), 10, f);

fwrite(phone, sizeof(char), 10, f);

现在数据类型已经改变,这里不需要&

其他人也是如此。

注意:main()的推荐签名是int main(void)

关于c - 将 char 传递给函数 var 列表不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30004241/

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