gpt4 book ai didi

c - 在 C 中执行文件操作时,数字被 append 而不是被添加到 int 变量中

转载 作者:行者123 更新时间:2023-11-30 19:33:38 25 4
gpt4 key购买 nike

我正在尝试将员工 ID 和他们完成的文件数量存储在文本文件中。还将文件数添加到totalFiles变量中。但是,当我输出 TotalFiles 的值时,我看到我提供的所有 append 输入都存储在文件内,而不是添加预期值。为什么会这样?

这是代码:

#include <stdio.h>

int main(void) {
int n, i, numFiles;
char empid[10];
int totalfiles = 0;
printf("Enter the number of employees\n");
scanf("%d", &n);
FILE *fp;
fp = fopen("employee.txt", "w");
if (fp == NULL) {
printf("Error");
return 0;
}
for (i = 0; i < n; i++) {
printf("For employee %d\n", i + 1);
printf("Enter the employee id\n");
scanf("%s", empid);
fputs(empid, fp);
printf("Enter the number of files done\n");
scanf("%d", &numFiles);
totalfiles += numFiles;
fprintf(fp, "%d", numFiles);
}
fclose(fp);
printf("Total number of files done by all employees : %d", totalfiles);
}

我得到的输出是这样的:

Enter the number of employees
2
For employee 1
Enter the employee id
33
Enter the number of files done
8
For employee 2
Enter the employee id
20
Enter the number of files done
6
Total number of files done by all employees : 14338206

如果您看到输出,您会注意到输出什么也没有,只是我提供的输入只是彼此相邻 append 。请让我知道我的代码中的错误。提前致谢!

最佳答案

您的最终 printf 语句没有换行符,其输出不会与进一步的输出分开。 14 确实显示为输出,但紧接着是一些其他输出,可能是 employee.txt 文件的内容,该文件可能作为命令文件的一部分输出。

更改代码以输出每条信息的换行符:

#include <stdio.h>

int main(void) {
int n, i, numFiles;
char empid[10];
int totalfiles = 0;
printf("Enter the number of employees\n");
if (scanf("%d", &n) != 1)
return 1;
FILE *fp;
fp = fopen("employee.txt", "w");
if (fp == NULL) {
printf("Error");
return 0;
}
for (i = 0; i < n; i++) {
printf("For employee %d\n", i + 1);
printf("Enter the employee id\n");
if (scanf("%s", empid) != 1)
return 1;
fprintf(fp, "%s\n", empid);
printf("Enter the number of files done\n");
if (scanf("%d", &numFiles) != 1)
return 1;
totalfiles += numFiles;
fprintf(fp, "%d\n", numFiles);
}
fclose(fp);
printf("Total number of files done by all employees : %d\n", totalfiles);
return 0;
}

关于c - 在 C 中执行文件操作时,数字被 append 而不是被添加到 int 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45162601/

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