gpt4 book ai didi

c - 将 unsigned long 数据类型写入二进制文件

转载 作者:行者123 更新时间:2023-11-30 21:05:22 25 4
gpt4 key购买 nike

我无法弄清楚如何将无符号长变量(在本例中为电话号码)写入二进制文件。

我有这个

int main()
{
char useInput[100];
unsigned long *phoneNum;
FILE *fp = fopen("test.bin", "wb");


while (strncmp(useInput,"exit",4)){

printf("Phone #: ");
scanf("%lu",phoneNum);
fwrite(&phoneNum, sizeof(phoneNum), 1, fp);

printf("Fname: ");
fgets(useInput,100,stdin);
useInput[strlen(useInput)-1]='\0';
fwrite(&useInput, strlen(useInput), 1,fp);

}

fclose(fp);
return 0;

}

使用 -ansi 和 -Wall 标志一切都可以正常编译。当我运行它时,它允许我输入电话号码,但是当我输入完电话号码后按回车键时,它显示段错误。

我不知道该去哪里。

最佳答案

您的代码有多个问题。我评论了这些问题。

int main()
{
char useInput[100];
unsigned long *phoneNum;
FILE *fp = fopen("test.bin", "wb");


while (strncmp(useInput,"exit",4)){ // useInput is not initialized for the first iteration

printf("Phone #: ");
scanf("%lu",phoneNum); // phoneNum is not initialized
fwrite(&phoneNum, sizeof(phoneNum), 1, fp);

printf("Fname: ");
fgets(useInput,100,stdin);
useInput[strlen(useInput)-1]='\0';
fwrite(&useInput, strlen(useInput), 1,fp);

} // this closing curly bracket is missing

fclose(fp);
return 0;

}

A live test of your code ,您可以修复这些问题并再次测试。

关于c - 将 unsigned long 数据类型写入二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55083357/

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