gpt4 book ai didi

c - 分数存储在文件: program crashes on run in c中

转载 作者:行者123 更新时间:2023-11-30 19:56:27 26 4
gpt4 key购买 nike

我想使用 C 创建一个文本文件,每次运行代码时都会继续添加分数,而不删除最后一条记录。不幸的是,当我运行代码时,它所做的只是运行 printf 语句并创建一个文件 score.txt,但不会向其中写入任何内容,而只是崩溃。

代码如下:

int main()    
{
FILE *score;
score = fopen("score.txt", "w");
fclose(score);
int s;
char n;
printf("You got a high score!\nPlease enter score: ");
scanf("%d", &s);
printf("\nPlease enter your name: ");
scanf("%s", &n);
fprintf(score,"%d", s);
fprintf(score,"%d", n);
printf("\nData Stored into score.txt\n");
return 0;
}

最佳答案

这里有多个问题。

  1. fclose(score);之后,您尝试使用fprintf(score,"%d", s);。为什么?也许您想将 fclose(score); 移到 return 0;

  2. 之前
  3. 始终对 fopen() 的返回值进行成功检查。另外,根据您的要求,每次运行代码时都继续添加分数,而不删除最后一条记录您需要在appendfopen() > 模式。查看有关模式及其用法的更多信息 here .

  4. scanf("%s", &n); 是错误的。这里你想要的是一个数组,而不是一个char。考虑将 char n; 更改为 char n[32]; 或其他内容。 [注意:一旦 n 为数组,请将 scanf() 更改为 scanf("%s", n);]

  5. fprintf(score,"%d", n); 是错误的。不要使用不兼容的格式说明符。对于字符串,它应该是%s[即使在您的情况下,n 也是 char。格式说明符不可能是 %d。]

关于c - 分数存储在文件: program crashes on run in c中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27688047/

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