gpt4 book ai didi

c - 在 C 中不打印任何内容

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

我正在开发一个 C 程序,可以存储您需要执行的任务。现在我正在尝试制作一个分组系统,将您需要执行的任务分组。

程序读取“input.txt”文件。您必须首先写下要输入的任务数量,然后接下来的行就是这种格式。 {YYYYMMDD HHMM(重要性 1~10)(组 0~4)(标题)(副标题)}。例如这样:20181101 0530 5 1 计算机编码。

但问题是,现在我需要以这种格式列出每个组中有多少个任务。 {(组 0 中的任务)(组 1)(组 2)(组 3)(组 4)}。因此,当第 0 组中有 4 个任务、第 2 组中有 2 个任务、第 4 组中有 1 个任务时,它会打印出“4” 0 2 0 1 ”。

我正在编写的代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct Tasks{
int date;
int time;
int i;
int group;
char title[127];
char sub[127];
};

struct Groups{
int gr0;
int gr1;
int gr2;
int gr3;
int gr4;
};
int main(){
FILE *file;
int num;
int j;
struct Tasks task[num];
struct Groups group;

file = fopen("input.txt", "r+");

fscanf(file, "%d", &num);

rewind(file);

for(j=0;j<num;j++){
fscanf(file, "%d %d %d %d %s %s\n",
&task[j].date, &task[j].time, &task[j].i, &task[j].group,
&task[j].title, &task[j].sub);
}

for(j=0;j<num;j++){
switch(task[j].group){
case 0:
group.gr0 = group.gr0 + 1;
break;
case 1:
group.gr1 = group.gr1 + 1;
break;
case 2:
group.gr2 = group.gr2 + 1;
break;
case 3:
group.gr3 = group.gr3 + 1;
break;
case 4:
group.gr4 = group.gr4 + 1;
break;
}
}
printf("%d %d %d %d %d",
group.gr0, group.gr1, group.gr2,
group.gr3, group.gr4);
return 0;
}

最佳答案

您正在将文件中的第一个数字读入num,然后尝试读取输入次数。对我来说,这看起来就像您的输入以存在的项目数开始,然后列出每个项目。

但是,您在读取 ​​num 的值后调用 rewind(),然后继续读取输入。您可能知道,rewind() 将您带回到文件的开头。这意味着,在您尝试读取第一项时,您实际上正在读取项数以及第一项,并且您的输入处理将偏离正轨。

您可能需要删除 rewind() 调用。

关于c - 在 C 中不打印任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53139179/

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