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

时间:2018-04-18 06:35:17

标签: c arrays loops for-loop

在下面的数组中,我存储了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++){
     ;}

1 个答案:

答案 0 :(得分:1)

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

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

希望它有所帮助。

 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:%s\n", b[i], a1[i]);
}