//这是主程序
char myanswer[10];
fscanf(fq,"%s %s %s",&sel[i].question,&sel[i].questionxuanxiang,&sel[i].selanswer);
fclose (fq);
printf("%s %s %s",sel[i].question,sel[i].questionxuanxiang,sel[i].selanswer);
scanf("%s",myanswer);
if(myanswer=='a')
count++;
//这是存储程序
for (i=1;i<=2;i++)
{
printf("please input the question:");
gets(sel[i].question);
printf("%s",sel[i].question);
printf("please input your selection:");
gets(sel[i]. questionxuanxiang);
printf("%s",sel[i]. questionxuanxiang);
printf("input answer selection:");
gets(sel[i].selanswer);
fprintf(fp, "%s %s %s",sel[i].question,sel[i].questionxuanxiang,sel[i].selanswer);
fputc('\n', fp);
}
进文件看也是对的,出来的结果怎么就这样了??
这里文件读取的应该是1.What's your name??
为什么只有sel.[i].question对应的是1.what's
sel.[i].questionxuanxiang对应的是your
,sel[i].selanswer对应的是name?
我要问的不是这个,我截了图,你帮我看看
追答已经回答了你的提问了, scanf和fscanf都是以空格为分隔符的输入.
而正好你的"1.what's your name ?", 第一个空格符在1.what's后面, 所以就得到你的这样结果了
fopen有的,我截了图,你看看是怎么回事
追答你的读语句与要读的内容格式不配套。%s 读到空白就不读了。
char s[30];
fscanf(fq,"%[^?]", s); 内容 1.what's your name ? 可以读到问号,不包括问号。
比较简单的办法是建文件时一个字符串 内容放一行,含空白。
读时,用fgets 读一行。
fgets怎么用啊,求教
追答char mystring[80];
fgets (mystring , 80 , fq); --- 读一行,允许含空白,标点,直到 "\n" 为止,含"\n".