使用 for 循环逐行打印,然后在 c 中扫描到另一个循环



在下面的数组中,我存储了 11 个问题。我希望每个问题都一个接一个地问,然后将答案复制到arrray ans1。目前,while 循环同时打印整个文件。有人可以阐明如何使用 while 循环下方的 for 循环来完成此操作吗?

  typedef struct{
  char q[40][250];
  char a[40][250];
  } qa;
  int main()
  {   
     char *b [40][250];
     int w, e, r, t, k, l;
     char a1[40][250];
     FILE *fp;
     fp = fopen("quest.txt", "r");
     while (fgets(b, sizeof(b), fp)) {
           printf("%s", b);
           scanf("%s",a1[1+]);
     }
     for(l>=0;l<=40;l++){
     ;}

有几个问题,例如未初始化的变量(例如 el(,读入错误的数据结构(fgets(b,...而不是fgets(b[x],...(。

请参阅以下代码片段,它可能会帮助您更进一步。请注意,我在答案中使用了fgets来阅读;与scanf("%s")相反,这允许您输入多个单词作为答案(即直到您按"Enter"(:

希望对您有所帮助。

 char b [40][250];
 char a1[40][250];
 FILE *fp;
 fp = fopen("quest.txt", "r");
int nrOfQuestions = 0;
while (nrOfQuestions < 40 && fgets(b[nrOfQuestions], sizeof(b[0]), fp)) {
    printf("%s", b[nrOfQuestions]);
    fgets(a1[nrOfQuestions],sizeof(b[0]), stdin);
    nrOfQuestions++;
}
for (int i=0;  i<nrOfQuestions; i++) {
    printf("q:%s a:%sn", b[i], a1[i]);
}

最新更新