c - 从文本文件中读取一个小的正整数并递增时,结果收到一个大的负数

标签 c file-io

<分区>

我有一个名为 counts.txt 的文件。

此文件包含一个值:数字 1

我希望我的程序从文件中读取一个整数并递增它,但是当我运行该程序时,它正在读取 -28711 而不是 1

代码如下:

#include<stdio.h>
#include<conio.h>
void main(void)
{
    FILE *fptr;
    int count;
    fptr = fopen("counts.txt","w+");
    fscanf(fptr,"%d",&count);
    count++;
    fprintf(fptr,"%d",count);
    fclose(fptr);
}

最佳答案

如问题的评论中所述,您想使用“r+”(读写)而不是“w+”(截断读写)。

阅读后您需要在写入之前fseek 到文件的开头,否则您将只是追加数字。

关于c - 从文本文件中读取一个小的正整数并递增时,结果收到一个大的负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23085906/

相关文章:

c - 从 XCode 中的 C 程序到 SWI-Prolog 的接口(interface)

c++ - Windows 无缓冲 I/O 和 NCQ

c++ - 如何让 _rmdir 删除的目录在 Windows 资源管理器中立即更新?

c++ - 经典 C++ 中的数据文件处理(很像 C)

vb.net - windows XP中如何设置默认编码?

无法读取文件

c - 数组2D到1D的转换和混淆

C:减少优化运行时间

C 字符串 : Random characters appearing in memory after using strcpy and strcat

c - 错误 : ‘O_CREATE’ undeclared (first use in this function)