C++中怎么从文件中直接读出某一行或写某一行

比如有个文本文件,我现在想读出它的第5行,或者重写它的第5行,该怎么办呢?求指导,谢谢。

读出方法1:以ios::in即文本流方式打开,用getline就可以顺次读到第5行,注意中间使用的缓冲区要大一些,防止到'\n'时溢出
读出方法2:以ios::binary|ios::in即二进制流输入方式打开,依次判断是否'\n',同样也可以读出指定的第几行
但是,如果想输出的话,即使用fstream方式打开,如果写入的第5行数据与原始第5行字节不同怎样办?肯定不能原文件内输出了,还是需要用一个新文件,这边读,那边写才行
另外,C语言用的是fgets,也是读到'\n'停止,可以按文本文件方式一行行读入
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-31
读出第5行倒是可以,用fgets,读5次后就读到了
要重写的话比较麻烦, 首先你要确定原来的第5行有多长,然后构造一个相同长度的字符串,可以有空格,但长度一定要一样,不然不能完全覆盖
然后把文件读到第5行的位置,fputs就行了(记得打开文件的时候采用读写方式)
第2个回答  2010-12-31
没有能读一行的吧,如果能用C语言实现你的要求,加分的话我给你做。先注:要求文件名必须和程序里写的一样,否则打开会失败输入格式如:name sex

C++中怎么从文件中直接读出某一行或写某一行
读出方法1:以ios::in即文本流方式打开,用getline就可以顺次读到第5行,注意中间使用的缓冲区要大一些,防止到'\\n'时溢出 读出方法2:以ios::binary|ios::in即二进制流输入方式打开,依次判断是否'\\n',同样也可以读出指定的第几行 但是,如果想输出的话,即使用fstream方式打开,如果写入的第5行...

怎么用C++在文本中读取一行或多行指定的数据?
使用fgets函数即可。1、fgets函数:原型:char * fgets(char * buf, int bufsize, FILE * stream);功能:从文件结构体指针stream中读取数据,每次读取一行;说明:读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋值为\\0)。如果该行不足bufsize个字符,则读完该...

C++怎么读取txt文件指定的一行或计算出某一行的偏移量。谢谢大家了,这...
void** 就是一个万能的指针的指针,可以存放任何一个类型的指针变量,跟你举 个例子 void ** Rll(int size){ void *p;p=malloc(size);return &p;} 运用的时候: *(*(int**)(Rll(4))=54;这个函数可以申请指定大小,任意类型的 对象空间,并只需要传个大小过去就行了.2维指针在VC++的com技...

c++的文件输入输出流中,能够从文件中读取数据的方法有哪些?
1.get()方法:get()方法是文件输入流中最基本的读取字符的方法。通过get()方法可以读取一个字符并将其放入字符变量中。语法:int get()2. getline()方法:getline()方法可以从文件输入流中读取一行数据,并将其存储在字符串变量中。语法:istream& getline(char* str, streamsize n)3. read()方法...

C++怎么在txt文件读取中一行一行的读内容
\/\/在工程下面建立一个文件 xiaojiba.txt include <iostream> include<string> include<fstream> using namespace std;int main(){ cout<<"input the filename:"<<endl;string filename;cin>>filename;ifstream infile(filename.c_str());string temp;while(getline(infile,temp)){ cout<<temp<<...

c++中如何读取指定文件中任意行的内容
ifstream inFile; inFile.open("c:\/\/test.txt"); \/\/ 打开文件 string str; \/\/ 字符串 getline(inFile, str, '\\n'); \/\/ 读取第一行内容,存入存str中 getline(inFile, str, '\\n'); \/\/ 读取第二次,第二行内容,存入存str中 getline(inFile, str, '\\n'); \/\/ 读取...

c\/c++中txt文件读写换行怎么实现
一、C语言。在C语言中,以fopen打开文件,返回值为文件指针FILE*型。可以以如下方式读写换行:1、 fgetc\/fputc 该组函数功能为读写单个字符,如ch=fgetc(fp); fputc(ch, fp);2 fscanf\/fprintf 格式化输入输出函数。 以%c格式时,可以读写换行。如 fscanf(fp, "%c",&ch);fprintf(fp,"%c",...

c++如何读取txt的数据(一行一行的读,从第一行读到最后一行)要详细代 ...
1、使用C++提供输入输出流的getline函数可以实现整行读取;完整代码如下:include<iostream>#include<fstream>using namespace std;int main(){ \/\/ 定义输入文件流类对象infileifstream infile("test.txt",ios::in);if(!infile){ \/\/ 判断文件是否存在 cerr<<"open error."<<endl; exit(1); ...

C++文件读取中,怎样从文件中读取一种类型的数据
使用文件操作函数fscanf读取某一种数据。1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件...

详解下C++中对文本文件的读写操作
可以用“或”或者“+”把以上属性连接起来 ,如3或1|2就是以只读和隐含属性打开文件。 例如:以二进制输入方式打开文件c:\\config.sys fstream file1;file1.open(" c:\\\\config.sys" ,ios::binary|ios::in,0); 如果open函数只有文件名一个参数,则是以读\/写普通文件打开,即:file1.open(" ...

相似回答