C++ 如何将一个文件里的数据写入到另一个文件里?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 如何将一个文件里的数据写入到另一个文件里?相关的知识,希望对你有一定的参考价值。

打个比方(文件内容如下)
学号 姓名 成绩
123 aa 90
124 bb 90
125 cc 90
如何将这个文件的内容写入到另外一个文件,并且在执行操作时将数据输出到显示屏上。
说下思路和所需要用到的函数就行
谢谢啦

C++ 实现文件复制的方法为:

    文件操作需要用到头函数fstream

    用ifstream打开源文件,备读

    用ofstream打开目标文件,备写

    循环读取源文件

      用getline()函数,逐行读取源文件到字符串中

      用cout输出字符串到标准输出(屏幕)

      把读到的字符输出到目标文件

      若读文件结束,结束循环

    关闭源文件和目标文件

参考代码:

#include<iostream> //输入输出流
#include<fstream> //文件流头文件
using namespace std;
int main()

ifstream in("src.txt"); //源文件读
ofstream out( "obj.txt" ); //目标文件写
if (!in)
cout <<"open source file error!"<<endl;
return -1;

while( !in.eof() ) //文件未结束,循环

char str[1024];
in.getline(str,sizeof(str),'\\n'); //读一行
cout << str << endl; //输出到屏幕
out<< str <<endl; //输出到文件

in.close();
out.close();
return 0;

参考技术A #include <IOSTREAM.H>
#include <FSTREAM.H>
class information

public:
int number;
char name[10];
int score;
;
void main()

information a[2];
for(int i=0;i<2;i++)

cout<<"姓名:"<<endl;
cin>>a[i].name;
cout<<"学号:"<<endl;
cin>>a[i].number;
cout<<"成绩:"<<endl;
cin>>a[i].score;


//文件写入
fstream finout;
finout.open("stu_info.txt",ios::out|ios::app);

finout<<"姓名\t"<<"学号\t"<<"成绩\t"<<endl;

for(i=0;i<2;i++)

finout<<a[i].name<<"\t"<<a[i].number<<"\t"<<a[i].score<<endl;

finout.close();
// 文件读取
char c;
fstream read1;
read1.open("stu_info.txt",ios::in);
while(!read1.eof())

c=read1.get();
cout<<(char)c;

read1.close();
本回答被提问者采纳
参考技术B #include <iostream>
#include <fstream>
using namespace std;

int main()

ofstream fout("新文件.txt");
ifstream fin("旧文件.txt");
char ch;
while((ch = fin.get()) && (ch != EOF))

cout << ch;
fout << ch;

return 0;

将一个目录里的所有目录和文件复制到另一个文件夹

package com.io.datain;

import java.io.*;

public class TestCopay1 {

	public static void main(String[] args) throws IOException {

		File file = new File("D:/Java/20160516-day1");

		File file1 = new File("D:/Java/20160516-day102");
		copyFileDir(file, file1);
	}

	/**
	 * 拷贝目录
	 * 
	 * @param file
	 * @param file1
	 */
	private static void copyFileDir(File file, File file1) {
		if (file.isDirectory()) {
			if (!file1.exists()) {
				file1.mkdirs();
			}

			File[] files = file.listFiles();
			for (File item : files) {
				if (item.isDirectory()) {
					copyFileDir(
							new File(file.getAbsolutePath(), item.getName()),
							new File(file1.getAbsolutePath(), item.getName()));
				} else {
					
					copyFile(new File(file.getAbsolutePath(), item.getName()),
							new File(file1.getAbsolutePath(), item.getName()));
				}
			}
		} else {
			copyFile(file, new File(file1.getAbsolutePath() + file.getName()));
		}
	}

	/**
	 * 拷贝文件
	 * 
	 * @param file
	 * @param file1
	 * @return
	 */
	private static boolean copyFile(File file, File file1) {

		// 创建读取文件的输入流,输出流
		// 输入流,对于程序来说,是向程序中输入数据,input
		FileInputStream fis = null;
		// 输出流,对于程序来说,是程序向程序外输出数据,output
		FileOutputStream fos = null;
		try {
			fis = new FileInputStream(file);
			fos = new FileOutputStream(file1);
			byte[] by = new byte[1024];
			int a = 0;
			a = fis.read(by);// 将读取到的数据放入字节数组by中,并获取放入到字节数组中的字节长度a
			while (a != -1) {
				/* 读取多个数据 */
				fos.write(by, 0, a);// 将数据写入b文件中
				a = fis.read(by);// 继续读取下一次
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				fis.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				fos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return true;
	}
}

 

以上是关于C++ 如何将一个文件里的数据写入到另一个文件里?的主要内容,如果未能解决你的问题,请参考以下文章

c++工程里一个文件怎么调用另外一个文件里的函数

怎样吧Java创建的文件里的数据写入到数组里,

把一个文件夹里的文件全部移动到另一个文件夹的bat命令?

在电脑上如何把一个文件夹里的东西复制到另一个文件夹?

C++如何逐行读取txt文件,并将读取出来的数据进行运算导入到另一个文件中。

将一个目录里的所有目录和文件复制到另一个文件夹