首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

文件流tellg/tellp和gcc-4.6这是一个bug吗?

这个问题涉及到文件流的操作和编译器的版本,我们可以从以下几个方面来回答:

  1. 文件流tellg/tellp的使用

文件流是C++中用于处理文件的一种方式,tellg和tellp是文件流的成员函数,分别用于获取输入流和输出流的当前位置。tellg返回输入流的当前位置,而tellp返回输出流的当前位置。它们的使用方式如下:

代码语言:c++
复制
#include<iostream>
#include <fstream>

using namespace std;

int main() {
    ifstream infile("example.txt");
    ofstream outfile("output.txt");

    // 获取输入流的当前位置
    streampos input_pos = infile.tellg();
    // 获取输出流的当前位置
    streampos output_pos = outfile.tellp();

    // 使用tellg和tellp进行文件操作
    // ...

    return 0;
}
  1. gcc-4.6是否存在bug

gcc-4.6是GNU Compiler Collection的一个版本,它包含了C、C++、Objective-C、Fortran等多种编程语言的编译器。gcc-4.6是一个较早的版本,已经过时,目前的最新版本是gcc-10。gcc-4.6可能存在一些已知的bug,但是很难确定具体的问题是否是由于这个bug导致的。如果你遇到了问题,建议升级到最新版本的gcc进行尝试。

  1. 是否是一个bug

根据提供的信息,无法确定这是否是一个bug。如果你在使用文件流时遇到了问题,可以检查代码是否正确使用了tellg和tellp,或者尝试升级gcc的版本。如果问题仍然存在,可以尝试在相关的开发者社区或者论坛中寻求帮助,或者提交一个bug报告。

总之,文件流tellg/tellp和gcc-4.6都是编程中常用的工具,如果你在使用它们时遇到了问题,可以通过检查代码、升级工具版本或者寻求帮助的方式来解决。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

文件IO操作之文件指针

我们之前在C++语言中也提到了文件指针的这个概念 这里再来复习一下可以说是 文件指针可以理解为文件内部记录读取或者写入的当前位置 每次程序在读写文件时,磁盘中的文件指针就会向后移动一个字节 文件提供以下成员函数来读取或配置文件指针...: tellg()      返回读取文件指针的当前位置 tellp()      返回写入文件指针的当前位置 seekg(指针偏移量)      将读取文件指针移到指定位置 seekg(指针偏移量...运行截图 tellp会返回当前写入文件的指针位置 也就是24 写文件写入的话会从24的位置继续写入 我们现在设置一下写入文件文件指针 通过seekp成员函数 可以看到我们将写入文件的指针设置为...0 则下一次写入文件的操作将会从文件0的位置开始写入 可以看到 我们将标志改到尾部 然后设置偏移量为0 表示从尾部加入 现在我们开始读文件 我们发现在使用>>进行读文件时 遇到空格回车会自动停止读取...下次再读取的时候 即是从文件头部0偏移的位置开始读取 具体变化可以看变量tellg

26430
  • c++ 文件操作详解

    eof() 如果读文件到达文件末尾,返回true。 good() 这是最通用的:如果调用以上任何一个函数返回true 的话,此函数返回 false 。...fstream, 类似 iostream, 同时继承了get put 我们可以通过使用以下成员函数来读出或配置这些指向中读写位置的指针: tellg() tellp() 这两个成员函数不用传入参数...,返回pos_type 类型的值(根据ANSI-C++ 标准) ,就是一个整数,代表当前get 指针的位置 (用tellg) 或 put 指针的位置(用tellp). seekg() seekp(...要求传入的参数类型与函数 tellg tellp 的返回值类型相同。...由于这个原因,建议对以文本文件模式打开的文件总是使用seekg seekp的第一种原型,而且不要对tellgtellp 的返回值进行修改。

    1.9K60

    vs中没有vc_vs中的控件

    获得设置指针 所有输入/输出对象都有至少一个指针: ifstream,类似istream,有一个被称为get pointer的指针,指向下一个将被读取的元素。...可以使用以下成员函数来读取或配置指针: tellg()tellp() 这两个函数不用传入参数,返回pos_type类型的值,即一个整数,代表当前get指针的位置(用tellg)或put指针的位置...要求传入的参数类型与函数 tellg tellp 的返回值类型相同。...由于这个原因,建议对以文本文件模式打开的文件总是使用seekg seekp的第一种原型,而且不要对tellgtellp 的返回值进行修改。...文件包括两个为顺序读写数据特殊设计的成员函数:write read。第一个函数 (write) 是ostream 的一个成员函数,都是被ofstream所继承。

    75120

    c++读写文件的几种方法_include有什么用

    eof() 如果读文件到达文件末尾,返回true。 good() 这是最通用的:如果调用以上任何一个函数返回true 的话,此函数返回 false 。...fstream, 类似 iostream, 同时继承了get put 我们可以通过使用以下成员函数来读出或配置这些指向中读写位置的指针: tellg() tellp() 这两个成员函数不用传入参数...,返回pos_type 类型的值(根据ANSI-C++ 标准) ,就是一个整数,代表当前get 指针的位置 (用tellg) 或 put 指针的位置(用tellp)....要求传入的参数类型与函数 tellg tellp 的返回值类型相同。...由于这个原因,建议对以文本文件模式打开的文件总是使用seekg seekp的第一种原型,而且不要对tellgtellp 的返回值进行修改。

    1.1K20

    从零开始学C++之IO类库(三):文件的读写、二进制文件的读写、文件随机读写

    三、文件随机读写 (一)、当前文件活动指针 文件指针用以跟踪发生 I/O 操作的位置 每当从中读取或写入一个字符,当前活动指针就会向前移动 当打开方式中不含有ios::ate或ios::app...(二)、文件的随机读写 seekpseekg seekp seekg 类似与C库的fseek, linux系统调用的lseek。...end}; 每个枚举常量的含义: ios::beg:文件的起始位置 ios::cur:文件的当前位置 ios::end:文件的结束位置 tellp tellg 类似C库的ftell...,,linux 系统调用的lseek(fd, 0, SEEK_CUR); 函数功能 tellp:获得输出的文件指针的当前位置,以字节为单位 tellg:获得输入的文件指针的当前位置,以字节为单位...函数原型: streampos tellp(); streampos tellg(); 函数返回值:实际上是一个long类型 #include  #include

    3.1K10

    C++ IO库介绍及使用方式

    stream 可以读写给定的文件。 如何使用文件? 第一步:创建一个文件 定义一个文件对象,并将对象和文件关联起来。...指向中读写位置的指针 我们还可以通过使用以下成员函数来读出或配置这些指向中读写位置的指针: tellg() tellp() 这两个成员函数不用传入参数,返回pos_type 类型的值(根据ANSI-C...代表当前get 指针的位置 (用tellg) 或 put 指针的位置(用tellp). seekg() seekp()这对函数分别用来改变指针get put的位置。...要求传入的参数类型与函数 tellg tellp 的返回值类型相同。...由于这个原因,建议对以文本文件模式打开的文件总是使用seekg seekp的第一种原型,而且不要对tellgtellp 的返回值进行修改。

    1.9K20

    C++标准输入输出_seekg函数详解

    文件输入输出的操作函数主要有 1/seekg()tellg() //对输入流的操作(也就是读) 2/seekp()tellp() //对输出的操作(也就是写) 1.seekg()是对输入文件定位...,它有两个参数:第一个参数是偏移量,第二个参数是基地址。...对于第一个参数,可以是正负数值,正的表示向后偏移,负的表示向前偏移。...而第二个参数可以是: ios::beg:表示输入流的开始位置 ios::cur:表示输入流的当前位置 ios::end:表示输入流的结束位置 2.tellg()函数不需要带参数...同理,第二组的两个函数也是类似的用法,只不过是应用于输出的操作; 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141968.html原文链接:https:/

    92320

    seekg()与tellg()用法详解

    对输入流操作:seekg()与tellg() 对输出操作:seekp()与tellp() 下面以输入流函数为例介绍用法: seekg()是对输入文件定位,它有两个参数:第一个参数是偏移量,第二个参数是基地址...对于第一个参数,可以是正负数值,正的表示向后偏移,负的表示向前偏移。...而第二个参数可以是: ios::beg:表示输入流的开始位置 ios::cur:表示输入流的当前位置 ios::end:表示输入流的结束位置 tellg()函数不需要带参数,它返回当前定位指针的位置,也代表着输入流的大小...,偏移地址为0,于是指针定位在文件结束处 streampos sp=in.tellg(); //sp为定位指针,因为它在文件结束处,所以也就是文件的大小 cout<<"file size...in.tellg(); cout<<"from file to point:"<<endl<<sp2<<endl; in.seekg(0,ios::beg); //基地址为文件

    64920

    CC++开发基础——IO操作与文件

    在C++编程中,的使用步骤如下: 1.实例化一个对象。 2.将对象关联到实际的外部设备(键盘,控制台,文件,网络等)。 3.调用对象中提供的成员函数,完成数据的转换、传输等操作。...putback():unget()一样支持回退,但是putback()可以指定放回的字符。 (3).预览 peek():预览调用get()后返回的下一个值。...peek:预览下一个字符。 unget:读取期间,回退一个字符。 tellg:返回流中的当前操作位置。 seekg:移动到中的指定位置。 sync:与存储设备同步。...peek:预览下一个字符。 unget:读取期间,回退一个字符。 tellg:返回流中的当前操作位置。 seekg:移动到中的指定位置。 sync:与存储设备同步。...文件输出的操作: operator<<:格式化输出。 put:写入单个字符。 write:写入字符数组。 tellp:返回流中的当前操作位置。 seekp:移动到中的指定位置。

    23530

    seekg()seekp()与tellg()tellp()的用法详解

    对输入流操作:seekg()与tellg() 对输出操作:seekp()与tellp() 下面以输入流函数为例介绍用法: seekg()是对输入文件定位,它有两个参数:第一个参数是偏移量,第二个参数是基地址...,偏移地址为0,于是指针定位在文件结束处 streampos sp=in.tellg(); //sp为定位指针,因为它在文件结束处,所以也就是文件的大小 cout<<“filesize...name:hehonghua date:20090902 date:20090902 四、C++文件检测EOF 成员函数eof()用来检测是否到达文件尾,如果到达文件尾返回非0值,否则返回0。...; 五、C++文件文件定位 C的文件操作方式不同的是,C++ I/O系统管理两个与一个文件相联系的指针。一个是读指针,它说明输入操作在文件中的位置;另一个是写指针,它下次写操作的位置。...所以,C++的文件定位分为读位置写位置的定位,对应的成员函数是 seekg() seekp(),seekg()是设置读位置,seekp是设置写位置。它们最通用的形式如下: 1.

    66110

    C plus plus 控制格式

    在以fixed(固定小数位数)形式scientific(指数)形式输出时,n为小数位数。 setw(n) 设置字段宽度为n位。...2.用对象的成员控制输出格式 成员函数 与之作用相同的控制符 作用 precision(n) setprecision(n) 设置实 数的精度为n位。...0 ios::uppercase 在以科学计数法输出E十六进制输出字母X时,以大写表示 ios::showpos 输出正数时,给出“+”号。...setw()、setfill()、setbase()、setprecision()、tellp... inline SMANIP(long) resetiosflags(long _l) { return...()函数与tellg()函数 tellp()函数用来获取“输出指针”的当前位置(从文件首到当前位置的字节数); tellg()函数用来获取“读入指针”的当前位置(从文件首到当前位置的字节数)。

    1.1K40

    C++ fstream详解

    C语言文件操作 函数 fopen()将一个文件一个关联起来,并初始化一个类型为 FILE 的对象,该对象包含了控制该的所有信息。...每个用于打开文件的函数(也就是 fopen()、freopen() tmpfile())都会返回一个指向 FILE 对象的指针,该 FILE 对象包含与被打开文件相关联的。...,你可以使用成员函数clear(),没有参数 获得设置指针 - 对于所有的输入输出都有至少一个指针,指向下一个要操作的位置 ofstream put_point ifstream get_point...fstream put_pointget_point - 获取指针位置 tellg(): 返回输入流指针的位置(返回类型long) tellp(): 返回输出指针的位置(返回类型long) -...ifstream fin("test.txt",ios::in); cout << fin.tellg();//输出0,置针指向文本中的第一个字符,类似于数组的下标0 char c; fin >>

    1.8K41

    《C++Primer》第十七章 标准库特殊设施

    对于这些我们可以调用seektell函数,但在运行时会出错,将置于一个无效状态。...3.1 seektell函数 tellg()tellp():返回一个输入流中(tellg)或输出中(tellp)标记的当前位置 seekg(pos)seekp(pos):在一个输入流或输出中将标记重定位到给定的绝对地址...,pos通常是前一个tellgtellp返回的值 seekp(off, from)seekg(off, from):在一个输入流或者输出中将标记定位到from之前或之后off个字符,from可以是下列值之一...: beg:偏移量相对于开始位置 cur:偏移量相对于流当前位置 end:偏移量相对于结束位置 3.2 重定位标记 seek函数有两个版本:一个移动到文件中的“绝对”地址,另一个移动到给定位置的指定偏移量...tellp返回一个pos_type值,表示的当前位置。

    74830

    文件的输入输出

    读取一个字符放入ch 【注:当输入输出对象过期(如程序终止)时,到文件的连接将自动关闭。...状态检查 C++文件类从ios_base类那里继承了一个状态成员。...因此该语句将写入位置设置为编号为112的字节,也就是文件中的第113个字节 【注:如果要检查文件指针的当前位置,则对于输入流,可以使用tellg()方法,对于输出,可以使用tellp()方法。...它们都返回一个表示当前位置的streampos值(以字节为单位,从文件开始处算起)。】 seekg()seekp()函数提供对文件的随机存取。...这些类方法使得能够将文件指针放置到相对于文件开头、文件当前位置的某个位置。tellg()tellp()方法报告当前的文件位置。

    1.5K30

    C++读写文件操作(fstream、ifstream、ofstream、seekg、seekp、tellgtellp用法)

    本文主要总结用C++的fstream、ifstream、ofstream方法读写文件,然后用seekg()、seekp()函数定位输入、输出文件指针位置,用tellg()、tellp()获取当前文件指针位置...一、核心类函数功能讲解 fstream:文件输入输出类。表示文件级输入输出(字节流); ifstream:文件输入类。表示从文件内容输入,也就是读文件; ofstream:文件输出类。...表示文件输出,即文件写。 seekg():输入文件指针跳转函数。表示将输入文件指针跳转到指定字节位置‘ seekp():输出文件指针跳转函数。表示将输出文件指针跳转到指定位置。...下面将通过总结一个读写*.txt文件来演示上述输入输出类和文件跳转函数用法。...out | ios_base::binary); //二进制读写 if (!

    3K20

    STL之流迭代器

    std::istream_iterator end_iter; int sum {}; //第一个循环会求出所有用输入流迭代器读入的值的...第一个循环以常规方式输出迭代器符号, //在解引用后递增它,并复制 word 的当前值到 out_iter1 的解引用的结果中。循环后面的语句会在中写一个新行。...表示文件的类模板: ifstream:表示文件的输出; ofstream:是为输出定义的文件; fstream:定义了可以读写的文件; 用下面这些定义在 ios_base 类中的常量的组合来指定它们的打开状态...对于ifstreamfstream来说,这是默认的。 out:打开文件来写。对于ostreamfstream来说,这是默认的。 trunc:将当前存在的文件长度截断为0。.../file_copy.txt"}; std::ofstream out {file_out}; //为了确保能够用迭代器准确地复制原文件,必须一个字符一个字符地读文件

    57410

    IO

    目录 IO使用cout进行输出cout格式化调整字节宽度以及填充字符setf()相关字符串流文件 IO C++兼容C,所以C中的输入输出函数依然可以在C++中使用,但是直接把C的那套输入输出搬到...ss2 << num << ch << str; cout << ss2.str() << endl; return 0; } 输出: 100 192 168 0 1 . 3.14159 文件...头文件: #include 文件常用函 描述 open 打开文件 is_open 文件是否被打开 close 关闭文件 getline 读取一行 read 输入(读)到对象 write...输出(写)到文件 flush 将缓冲区的数据写出到文件,再清空它 tellg 输入(读)文件指针位置 tellp 输出(写)文件指针位置 seekg 设置输入(读)文件指针位置 seekp 设置输出(...写)文件指针位置 eof 是否到了尾部 C++ C的文件打开模式 C++模式 C模式 描述 ios_base::in "r" 打开以读取 ios_base::out "w" 等价于ios_base

    65260

    C++ fstream文件读写文件操作详解

    要求: 掌握文本文件读写的方法 了解二进制文件的读写方法C++文件: fstream  // 文件 ifstream  // 输入文件 ofstream  // 输出文件 //创建一个文本文件并写入信息...可改变指针的位置,常in、out联合使用 ios::app    = 0x08, //供写,文件不存在则创建,若文件已存在则在原文件内容后写入新的内容,指针位置总在最后 ios::trunc  ... //文件存在时产生错误,常out联合使用 ios::binary  = 0x80  //二进制格式文件 文件保护方式选择项: filebuf::openprot;   //默认的兼容共享方式...seekg(绝对位置);      //绝对移动,    //输入流操作 seekg(相对位置,参照位置);  //相对操作 tellg();          //返回当前指针位置 seekp(...绝对位置);      //绝对移动,    //输出操作 seekp(相对位置,参照位置);  //相对操作  tellp();          //返回当前指针位置 参照位置: ios:

    2.7K20
    领券