c++ fstream流seekg()重定位问题

c++ fstream流seekg()重定位问题  在看c++中fstream时,突然想到一个问题。当读取完整个文件之后如果再想读取一遍该如何去写?首先想到seekg()函数把读指针重定位到文件开头。但是我试了一下发现指针并没有移动,后来才搞清楚原来是当读指针指到EOF后就没办法再进行指针的控制了。#include<iostream>#include<fstream>#include<string&g…

大家好,又见面了,我是你们的朋友全栈君。

    在看c++中fstream时,突然想到一个问题。当读取完整个文件之后如果再想读取一遍该如何去写?首先想到seekg()函数把读指针重定位到文件开头。但是我试了一下发现指针并没有移动,后来才搞清楚原来是当读指针指到EOF后就没办法再进行指针的控制了。

#include<iostream>
#include<fstream>
#include<string>
using namespace std;

int main()
{
	fstream outFile("test.txt");
	if(!outFile.is_open())
	{
		exit(EXIT_FAILURE);
	}

	string str;
	int x = 3;
	while (x--)
	{
		cin >> str;
		str += "\r\n";
		outFile.write(str.c_str(), str.length());
	}
	outFile.close();

	fstream inFile;
	inFile.open("test.txt");
	if (!inFile.is_open())
	{
		cout << "open infile error" << endl;
	}
	
	char buffer[32];
	int size = sizeof(buffer);
	while (inFile.getline(buffer, size))
	{
		cout << buffer << endl;
	}

	cout << "second" << endl;
	inFile.clear();
	inFile.seekg(0, ios::beg);
	string read_line;
	while (getline(inFile, str))
	{
		cout << str << endl;
	}

	inFile.close();

	system("pause");
	return 0;
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132945.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • iis无法启动万维网发布服务W3SVC「建议收藏」

    iis无法启动万维网发布服务W3SVC「建议收藏」启动iis时提示无法启动万维网发布服务W3SVC,方法:Win+R,输入service.msc,找到WindowsProcessActivationService服务,将该服务启动;再找到WorldWideWebPublishingService服务,将该服务改为启动,如果提示“错误1068:依赖服务或组无法启动”,就尝试这两种方法:1、打开控制面板,程序,程序和功能,启用或关闭windows功能,找到windowsprocessactivationservice,全部勾选,重启电

    2025年6月5日
    3
  • Python数据类型有哪些,哪些是可变类型,哪些是不可变类型?

    Python数据类型有哪些,哪些是可变类型,哪些是不可变类型?Python数据类型有哪些,哪些是可变类型,哪些是不可变类型?类型:整数int字符串str浮点数float布尔型bool列表list字典dict集合set元组tuple可变类型:就是这个数据类型的值在不改变这一块内存空间,而去改变这个数据类型的值。1.列表2.字典3.集合不可变类型:当改变值得时候,会申请一块新的内存空间,不再是原来的那一块内存空间了。整数字符串浮点数布尔型元组…

    2022年6月10日
    34
  • fedora详细安装教程_oracle查看数据库磁盘

    fedora详细安装教程_oracle查看数据库磁盘via:http://www.helpsworld.org/blog/?p=391Fedora12发布有几天了,增加的的新功能还有一系列的改进非常的有吸引力。由于最近没有充分的时间折腾,所以还没有进行安装。不过今天还是在虚拟机上安装了这个新系统。其实也是为了先熟悉一下,为过几天真正安装做些准备。1.安装条件:1.1 VirtualBox虚拟机,8G虚拟磁盘已安装Fed

    2022年9月20日
    2
  • 集群软件都有哪些_cpu集群

    集群软件都有哪些_cpu集群TableofContents一、集群简介二、集群的七大优点三、集群的分类四、常用的集群软硬件及选型介绍一、集群简介集群就是一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序、系统资源和数据。二、集群的七大…

    2022年10月15日
    4
  • Mysql字符串截取[通俗易懂]

    Mysql字符串截取[通俗易懂]Mysql字符串截取函数

    2022年5月7日
    48
  • 那是什么进程 —— jusched.exe是什么? 它为何运行?「建议收藏」

    那是什么进程 —— jusched.exe是什么? 它为何运行?「建议收藏」       如果你曾经看到任务管理器里有个jusched.exe并很疑惑它究竟是什么,如果你将它关了,那么你很幸运,因为这个进程是负责Java更新的程序,它每个月检查一次Java是否有新的更新,并且一直在那儿浪费内存.       在Windows系统中有个调度任务的功能,由于这个进程每个月才被调度一次,显而易见不是什么重要更新,我不能理解这个进程为什么需要浪费我的内…

    2025年8月8日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号