C++ 文件写入有关问题
C++ 文件写入问题

原有记事本只有一列1,2,3
如何在已有一列的记事本中追加写入第二列,效果如图所示,最好给个具体的实例。谢谢。
------解决方案--------------------
给个思路,懒得写代码
打开文件一行一行读取,每一行存到一个容器里面,把你要加的数据添加到容器的后面,记得加上\r\n换行,然后一个for循环把容器的每一个元素写进文件
可以用vector<string>来保存每一行的字符
------解决方案--------------------
------解决方案--------------------
新建文件,读一行,写一行,写的时候把第2列数据写进去,写完后,删除原文件!这是基本思路!
------解决方案--------------------
找一个支持列编辑的编辑器就好, 比如notepad++, vim
------解决方案--------------------
只能是重写文件内容的
------解决方案--------------------
如果你需要在一个文件中频繁的进行该操作,且使用的是linux系统,你可以使用以下接口:
void * mmap(void *start, size_t length, int prot , int flags, int fd, off_t offset);
int msync(const void *start, size_t length, int flags);
mmap将文件内容映射到内存start,然后修改start指向的内存;修改完之后使用msync将数据同步到文件中。
使用完后取消文件映射。
int munmap(void *start, size_t length);
window编程不熟悉,应该也会有类似的接口。
------解决方案--------------------
所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。
原有记事本只有一列1,2,3
如何在已有一列的记事本中追加写入第二列,效果如图所示,最好给个具体的实例。谢谢。
------解决方案--------------------
给个思路,懒得写代码
打开文件一行一行读取,每一行存到一个容器里面,把你要加的数据添加到容器的后面,记得加上\r\n换行,然后一个for循环把容器的每一个元素写进文件
可以用vector<string>来保存每一行的字符
------解决方案--------------------
/*
这是一个文件写入的例子,请根据一楼方法自己去写实现部分,
对你自己也是一个提升
*/
#include <iostream>
#include<fstream>
using namespace std;
int main(){
ofstream fout("D:\\test.txt",ios::out);//会自动创建D:\\test.txt
fout<<"1 25"<<endl;//将数据写入文件中
fout<<"2 35"<<endl;
fout<<"3 60"<<endl;
return 0;
}
------解决方案--------------------
新建文件,读一行,写一行,写的时候把第2列数据写进去,写完后,删除原文件!这是基本思路!
------解决方案--------------------
找一个支持列编辑的编辑器就好, 比如notepad++, vim
------解决方案--------------------
只能是重写文件内容的
------解决方案--------------------
如果你需要在一个文件中频繁的进行该操作,且使用的是linux系统,你可以使用以下接口:
void * mmap(void *start, size_t length, int prot , int flags, int fd, off_t offset);
int msync(const void *start, size_t length, int flags);
mmap将文件内容映射到内存start,然后修改start指向的内存;修改完之后使用msync将数据同步到文件中。
使用完后取消文件映射。
int munmap(void *start, size_t length);
window编程不熟悉,应该也会有类似的接口。
------解决方案--------------------
所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。