设文件number.dat中存放了一组整数,请用c语言编程统计出文件中正数,0和负数的个数。使用fscanf和fprintf
时间: 2023-06-01 09:03:44 浏览: 94
#include <stdio.h>
int main() {
FILE *fp;
int num, count_pos = 0, count_zero = 0, count_neg = 0;
fp = fopen("number.dat", "r"); // 打开文件
if (fp == NULL) { // 如果打开失败
printf("Error: file not found.\n");
return 0;
}
while (fscanf(fp, "%d", &num) != EOF) { // 读取整数,直到文件结束
if (num > 0) {
count_pos++; // 统计正数个数
} else if (num == 0) {
count_zero++; // 统计0个数
} else {
count_neg++; // 统计负数个数
}
}
fclose(fp); // 关闭文件
// 输出结果
printf("Positive numbers: %d\n", count_pos);
printf("Zero numbers: %d\n", count_zero);
printf("Negative numbers: %d\n", count_neg);
fp = fopen("result.dat", "w"); // 打开结果文件
if (fp == NULL) { // 如果打开失败
printf("Error: cannot create result file.\n");
return 0;
}
// 将结果写入文件
fprintf(fp, "Positive numbers: %d\n", count_pos);
fprintf(fp, "Zero numbers: %d\n", count_zero);
fprintf(fp, "Negative numbers: %d\n", count_neg);
fclose(fp); // 关闭文件
return 0;
}