【发布时间】:2013-12-04 05:46:35
【问题描述】:
我正在编写一个程序来快速编写我的 html 文件。当我开始编写页面内容时,我遇到了问题。
#include<stdio.h>
int main()
{
int track;
int question_no;
printf("\nHow many questions?\t");
scanf("%d",&question_no);
char question[question_no][100];
for(track=1;track<=question_no;track++)
{
printf("\n<div class=\"question\">%d. ",track);
printf("\nQuestion number %d.\t",track);
fgets(question[track-1],sizeof(question[track-1]),stdin);
printf("\n\n\tQ%d. %s </div>",track,question[track-1]);
}
}
在这个程序中,我正在编写一些问题及其答案(在 html 文件中)。当我测试运行这个程序时,我将question_no 的值输入为3。但是当我输入我的第一个问题时,它没有进入question[0],因此第一个问题没有输出。其余问题输入没有问题。
我在 stackoverflow 上搜索了一些问题,发现 fgets() 查找最后一个 \0 字符,而 \0 将其停止。
我还发现我应该使用 buffer 通过fgets() 很好地输入,所以我使用了:setvbuf 和setbuf,但这也没有用(我可能编码错误)。在我的第一个和最后一个(以及)scanf 语句之后,我还使用了fflush(stdin) 从标准输入中删除任何\0 字符,但这也不起作用。
有什么方法可以接受fgets() 的第一个输入吗?
我现在使用标准输入和标准输出。我没有访问、读取或写入任何文件。
【问题讨论】:
-
@interjay 不!这是真的。 :D 这只是我的。
-
什么?我只是说这个问题与链接的问题基本相同。我没有说你复制它或类似的东西。它只是一个自动生成的评论,当有人投票关闭一个问题作为另一个问题的副本时创建。
-
@AshishTomer;是的,我们知道这是你的:)。 @interjay 只是想说这种类型的问题以前已经被问过了。
-
好的! :D :D 哈哈哈