在下面的数组中,我存储了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++){
;}
答案 0 :(得分:1)
有几个问题,如未初始化的变量(例如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]);
}