gpt4 book ai didi

c - 使用 fscanf() 和数组

转载 作者:行者123 更新时间:2023-11-30 18:58:14 26 4
gpt4 key购买 nike

我想从文件中获取输入并将其准确显示在屏幕上。

我正在从文件中获取输入,其中包含:

  1. 每学期的类(class)数量和最多允许的类(class)
  2. 所有类(class)名称(最多 5 个字母数字)
  3. 类(class)名称、开设学期、先修类(class)数量、先修类(class)。
  4. -1 和 -1 位于末尾。

input

Unexpected output

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

char garbage[12][6];
char courseIdentifier[12][6],prereqIdentifier[12][5][6];
char semOffered[12];
bool done[12];

int main(void)
{
FILE *fp;
fp = fopen("graduate.in","r");
int n,m,p[12];
int i,j,k;
fscanf(fp,"%d %d",&n,&m);// take n,m
while(n != -1)
{
for(i=0;i<n;i++) //the list of offered courses
{
fscanf(fp,"%s",garbage[i]);
}
for(i=0;i<n;i++)
{
fscanf(fp,"%s %c %d",courseIdentifier[i],&semOffered[i],&p[i] );//the name of course, sem,no. of prereqs
for(j=0; j < (p[i]) ;j++)
{
fscanf(fp,"%s ",prereqIdentifier[i][j]);
}
}
for(i=0;i<n;i++)
{
printf("%s %c %d ",courseIdentifier[i],semOffered[i],p[i]);
for(j=0; j < (p[i]) ; j++ )
{
printf("%s ",prereqIdentifier[i][j]);
}
printf("%s\n");
}
fscanf(fp,"%d %d",&n,&m);// take n,m
printf("\n\n");
}
fclose(fp);
return 1;
}

输出不正确。我在哪里做错了,使用数组还是fscanf()

最佳答案

这一行:

printf("%s\n");

将打印一些随机垃圾——基于特定寄存器中恰好存在的任何字符串。看起来在您的情况下,它始终打印 courseIdentifier[i]

的附加副本

关于c - 使用 fscanf() 和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17717682/

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