使用C++将文件内容复制到另一个文件

File content copy to another file using C++

我是 C++ 编程的新手。我的objective是将一个文件的内容复制到另一个文件中

我的代码如下:

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<fstream.h>

int main(){
    ifstream file1;
    ofstream file2;
    char ch;
    char sfile[10], tfile[10];
    cout<<"\nEnter the source filename: ";
    cin>>sfile;
    cout<<"\nEnter the target filename: ";
    cin>>tfile;

    file2.open(sfile);
    file2<<"hello world";
    file2.close();

    file1.open(sfile);
    file2.open(tfile);

    while(!file1.eof()){
        file1.get(ch);
        cout<<ch;
        if(file1.get(ch) == " "){
            continue;
        }
    file2<<ch;
    }
    file1.close();
    file2.close();
    return 0;
}

但是我在输出文件中没有得到正确的结果。它应该是 helloworld 但我在输出文件中得到 el olÿ

不确定我在这里做错了什么。谁能帮我解决这个问题?

这里有几个问题:

  1. Don't use std::ifstream::eof() as loop condition.

  2. 不要将字符与字符串文字进行比较。对字符文字使用单引号。

  3. 不要调用get()两次,你会丢失一半的字符。

将循环更改为:

while (file1.get(ch)) {
    cout << ch;
    if (ch == ' ') {
        continue;
    }
    file2 << ch;
}

如果您的代码是正确的,则 tfile 中有 "helloworld"。但是直接打开是不会显示的。您可以使用上面的代码显示数据来检查 tfile 的内容。