【C++】 文件指针回到开头

请问C++中当文件指针到达末尾时如何重新回到开头?seekg(0),seekg(ios::beg)等都没效果,代码如下:template<typenameT>voidin... 请问C++中当文件指针到达末尾时如何重新回到开头?seekg(0),seekg(ios::beg)等都没效果,代码如下:
template<typename T>
void input(const char* fname, vector<T> &a)
{
ifstream ifile(fname);
int count(0), i(0);
T tmp;

while (!ifile.eof())
{
ifile >> tmp;
count ++;
}

a.resize(count);
ifile.seekg(ios::beg);//写了这个也还是回不去

while (!ifile.eof())
ifile >> a[i++];

ifile.close();
}
请各位高手指教!
展开
 我来答
百度网友96ffcf7
2015-08-15 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118724
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
在定位前对流状态标志进行清除就可以了:
inf.clear();
inf.seekg(0,ios::beg);
还有一种解决办法是
inf.close();
inf.open(file1,ios::in|ios::binary); 关闭文件,然后再打开该文件
passion_wu128
2011-04-03 · TA获得超过1168个赞
知道小有建树答主
回答量:370
采纳率:0%
帮助的人:546万
展开全部
用rewind函数
函数名: rewind
功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头
注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。
用 法: void rewind(FILE *stream);
头文件: stdio.h
返回值:无
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
308102458x
2012-10-19 · TA获得超过194个赞
知道答主
回答量:26
采纳率:0%
帮助的人:11.1万
展开全部
后来你发现你的程序错在哪里了??我也出现相同的问题是用seekg根本就回不到文件的开头
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老树这名好
2019-08-29 · 超过14用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:11.9万
展开全部
移动文件指针,
在c语言里使用fseek(流,偏移量,偏移类型);
c++里输入输出seekp(偏移量,便宜方式)seekg(偏移量,偏移方式)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jitzingleaa
2012-06-01
知道答主
回答量:1
采纳率:0%
帮助的人:1617
展开全部
在什么地方?我也遇到这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式