如何重置scanf()
如何重置如何重置scanf(),c,scanf,C,Scanf,如何重置scanf()以在不使用fopen或fclose的情况下读取文本的开头 我有一个阶段1,读取文本文件的一半,阶段2要求我将scanf()重置为文本的开头,并一直读取。 任何提示或指导都将不胜感激。 你们是最棒的 编辑:文本中只有数字,文件通过/myprogram打开。您可以使用fseek()或倒带() 或 可以使用倒带(FILE*fp)将位置重置为文件开头。不能简单地将fseek()放入stdin,而scanf()隐式使用。您肯定是指fscanf(),并且使用的是文件*fp而不是stdi
scanf()
以在不使用fopen
或fclose
的情况下读取文本的开头
我有一个阶段1,读取文本文件的一半,阶段2要求我将scanf()
重置为文本的开头,并一直读取。
任何提示或指导都将不胜感激。
你们是最棒的
编辑:文本中只有数字,文件通过/myprogram打开。您可以使用fseek()
或倒带()
或
可以使用倒带(FILE*fp)
将位置重置为文件开头。不能简单地将fseek()
放入stdin
,而scanf()
隐式使用。您肯定是指fscanf()
,并且使用的是文件*fp
而不是stdin
?在本例中,fseek(fp,0,SEEK_SET)
倒带到流的开头,较短的倒带(fp)
也倒带到流的开头。文件只是数字。对不起,我说的模棱两可!这也是一项要求我不要使用任何与字符相关的命令的作业。也许我误解了这个问题。如果文本由于重定向而通过stdin
,例如/myprogram@user3386109是,就是这样!它只是数字。我只是想让它回到起点,或者假装它做到了……好吧,在我的机器上,如果通过重定向将stdin
连接到文件,那么倒带(stdin)
似乎可以工作,但我不确定它的可移植性如何。
rewind(fp);
fseek(fp, 0, SEEK_SET);