一个关于C++读写文件的问题,难度真的不小!

来源:百度知道 编辑:UC知道 时间:2024/06/23 15:04:14
有人让我用C++编10个选择题,然后通过控制台让用户输入ABCD来选择答案。于是我新建了一个TXT文档放到C盘根目录,然后在里面写了一些文字。内容如下:
请问1+1等于多少?请问5×5-5×7等于多少?请问中国有多少个省?请问中国有多少个民族?请问李白是哪个朝代的人?请问C语言和C++语言有没有区别?请问男人多大算成年?请问一天有多少小时?请问一年有多少天?请问全球最大的手机厂商是?ABCD,2345,-10'10'20'30,31'32'33'34,55'56'57'58,唐朝'宋朝'明朝'清朝,有'没有,18'28'38'48,20'21'22'24,360'365'366'不确定,诺基亚'摩托罗拉'索尼爱立信'三星。
前面有10个问题,每个问题后面一个问号,题目后面是ABCD四个字母,后面的是每道题的答案,每道题有4个备选答案分别对应ABCD。
我的思路是先将个TXT文件里面的内容放入一个字符数组中,实现代码如下:#include "stdio.h"
int main()
{
char str[2000];
FILE *fp=fopen("C:\\a.txt","r");
fscanf(fp,"%s",str);
fclose(fp);
}
这样文件里面的东西就复制到str数组中了,但是接下来很麻烦了,我想把10道题一道一道的显示给用户,用户每答完一道题后进入下一道题,知道题目都答完为止。这样就必须要再声明一个字符串temp来做临时变量,将str中的内容截取其中的相对应的题目以及ABCD选项和备选答案,但是我找遍了函数库,就是找不到功能类似的函数,后面的工作就无法进行了!
如果有高手能解决的话,加分鼓励!谢谢了!

基本实现了(纯c,看你用的也差不多是c,其实原理差不多(对于这题))
将问题和备选答案分别放进数组里。
但文本里面的全角“,”和“?”和“‘”必须为半角,不然处理不了。
#include "stdio.h"
#include "string.h"
int findanswer(char str[2000]);
int main()
{
char str[2000], question[10][100], answer[10][4][50];
int i, j = 0, mm, i1 = 0, i2 = 0;
FILE *fp=fopen("C:\\a.txt","r");
if(fp == NULL) return 1;
fscanf(fp,"%s",str);
fclose(fp);
mm = findanswer(str);
for (i = 0; i < strlen(str); i ++)
{
question[i1][j] = str[i];
j++;
if (str[i] == '?')
{
question[i1][j+1] = '\0';

j = 0;
i1++;
}
}
j = 0;
i1 = 0;
for (i = mm; i < strlen(str); i ++)
{
answer[i1][i2][j] = str[i];
j++;
if