请求高手帮助!如何用c++文件流实现从一个文件中读取数据,完成操作后把新的数据写入同一个文件中去??要求覆盖原来旧的数据,最好有代码范例,谢谢了!
关键是程序运行后文件里的内容在读入之前就清空了,导致没有数据输入,不知道为什么。。。
追答你别直接把输入流和输出流一起用,
先用输入流把数据存起来。存在一个合适的地方,比如数组、容器什么的。
处理之后再用输出流。
比如说文件里面的是一些数字,需要把它们排序之后再存放,可以这样处理:
freopen("路径", "rt", stdin);
int num;
vector nums;
cin >> num;
nums.push_back(num);
sort(nums.begin(), nums.end());
freopen("路径", "wt", stdout);
for(vector ::iterator iter = nums.begin(); iter != nums.end(); iter ++)
cout << *iter << " ";
上面这段代码是把文件中的数字进行排序。我用的是容器。当然数组是一样的。
关键是思路:先把文件里面的数据用临时变量存起来,处理之后再放入。
不知道你明白了没~~~
c++文件的读取和写入
在C++中,可以使用文件流对象进行文件的读取和写入操作。主要包括 `ifstream`和 `ofstream`两个类。详细解释:1. 文件流的引入:C++中,为了操作文件,引入了文件流的概念。通过文件流,程序可以与文件进行通信,实现数据的读取和写入。2. 读取文件:当需要从一个文件中读取数据时,可以创建一个`ifstream...
C++如何在文件中读取数据,然后保存在一个数组中
using namespace std;void main(){ int s[5][2];ifstream fin("a.txt");int x;fin>>x;for(int i=1;i<x;i++){ for(int j=1;j<2;j++){ fin>>s[i][j];} } ofstream fout("input.txt");fout<<x;for(int k=1;k<k;k++){ for(int t=1;t<2;t++){ fout<...
C++中如何利用<fstream>从txt文件中读入和输出完整的一句话?
从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。 在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件...
c++中怎样读取磁盘文本文档中的文件,然后经过修改后再输出到一个新的...
按行读取,然后按照自己的要求对读取的每一行进行修改。
用vc++逐行读取文本文件txt里面的数据,并且复制给数组
include<stdlib.h> define MAX 20000 char *srcfile = "data.txt";\/\/文件名 int data[MAX][8];int main(){ FILE *src = fopen(src,"r");int i,j;for(i = 0;i < MAX;i++){ fscanf(srcfile,"%d,%d,%d,%d,%d,%d,%d,%d",&data[i][0],&data[i][1],&data[i][2],&...
怎么用C++在文本中读取一行或多行指定的数据?
1、fgets函数:原型:char * fgets(char * buf, int bufsize, FILE * stream);功能:从文件结构体指针stream中读取数据,每次读取一行;说明:读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋值为\\0)。如果该行不足bufsize个字符,则读完该行就结束,如果该行...
c++中fopen函数读文件怎么用文件数据?
\\x0d\\x0a一、C文件操作:\\x0d\\x0a C语言中,文件的操作都是通过一个FILE类型的文件指针进行,也就是说只有通过文件指针,才能调用相应的文件。FILE是一个由系统定义的结构体(定义在stdio.h中),可以存放文件的相关信息。\\x0d\\x0a文件的打开(fopen函数)\\x0d\\x0a 文件的操作过程一般...
寻c++编程高手 关于读二进制文件操作 (解决了再多加分)
void main(){ long i,j,k,m;signed char *bin;char name[20];FILE *fp[5];bin=NULL;for(i=1;i<1000;i+=5){ for(j=0;j<5;j++){ sprintf(name,"d:\\\\a\\\\%d.bin",j+i);fp[j]=fopen(name,"r+");} m=_filelength(fp[0]->_file);if(bin==NULL) bin=new signed ...
读取文本文件后的传值问题
建议你使用c++的ifstream读取文件,用peek检测下一个字符,如果是空格就结束读取一个数字,准备下一个数字;如果是0-9就把它加到已读到的数字的10倍上;如果是‘s’就暂停等待continue 具体实现你参考下ifstream的帮助文档。
...编程高手请进来帮帮看看这个程序,关于文件操作的,在线等待……_百度...
打开文件的时候要指定是打开输出和读入。file.open("my_daling.txt", ios::in | ios:: out | ios::app | ios::binary);