Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用for循环逐行打印,然后在c中扫描到另一行_C_Arrays_Loops_For Loop - Fatal编程技术网

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

使用for循环逐行打印,然后在c中扫描到另一行,c,arrays,loops,for-loop,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; cha

在下面的数组中,我存储了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++){
     ;}
typedef结构{
char q[40][250];
字符a[40][250];
}质量保证;
int main()
{   
char*b[40][250];
int w,e,r,t,k,l;
字符a1[40][250];
文件*fp;
fp=fopen(“quest.txt”、“r”);
while(fgets(b,sizeof(b),fp)){
printf(“%s”,b);
scanf(“%s”,a1[1+]);
}

对于(l>=0;l存在一些问题,如未初始化变量(例如,
e
l
),读入错误的数据结构(
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]);
}
charb[40][250];
字符a1[40][250];
文件*fp;
fp=fopen(“quest.txt”、“r”);
int-nrof问题=0;
while(nrOfQuestions<40&&fgets(b[nrOfQuestions],sizeof(b[0]),fp)){
printf(“%s”,b[nrof问题]);
fgets(a1[nrof问题]、sizeof(b[0])、stdin);
nrof问题++;
}

for(int i=0;i检查输入函数调用的返回值
scanf()
。一个好的编译器应该用该代码向您发出警告甚至错误。该函数需要指向字符数组第一个元素的指针作为第一个参数,而不是指向字符数组的指针。此外,
e
的初始值是多少?提示:您不知道,因为它是不确定的(而且似乎是随机的)。因此,将其用作数组索引将导致,这使得任何关于行为的讨论或猜测都是无用的。请升级到a。最后,一个由
40
元素组成的数组的有效索引范围是什么?顶部索引不是
40
。如果要使用,则会导致第二个循环中的循环条件错误ode>l
作为任何数组的索引。请注意,
l
的初始化不是初始化任何内容。也许你应该买一些初学者书籍,从头开始?