在下面的数组中,我存储了 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++){
;}
有几个问题,例如未初始化的变量(例如 e
,l
(,读入错误的数据结构(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]);
}