【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();
}
请各位高手指教! 展开
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();
}
请各位高手指教! 展开
6个回答
展开全部
用rewind函数
函数名: rewind
功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头
注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。
用 法: void rewind(FILE *stream);
头文件: stdio.h
返回值:无
函数名: rewind
功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头
注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。
用 法: void rewind(FILE *stream);
头文件: stdio.h
返回值:无
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后来你发现你的程序错在哪里了??我也出现相同的问题是用seekg根本就回不到文件的开头
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
移动文件指针,
在c语言里使用fseek(流,偏移量,偏移类型);
c++里输入输出seekp(偏移量,便宜方式)seekg(偏移量,偏移方式)。
在c语言里使用fseek(流,偏移量,偏移类型);
c++里输入输出seekp(偏移量,便宜方式)seekg(偏移量,偏移方式)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询