c++ - C++中文件的输入/输出

标签 c++

   #include <iostream>
   #include <fstream>
   #include <string>
   using namespace std;

   // Main Routine

   void main() { 
      char in;
      string s,m;
      fstream f;

   // Open file
      cout << "Positive Filter Program\n"<< endl;
      cout << "Input file name: ";
      cin >> s;
      cout << "Output file name: ";
      cin >> m;
      f.open(s.data(),ios::in);
      f.open(m.data(),ios::out);

    // Loop through file

    if(f.is_open())
    {  
        while(f.good())
        {
            f.get(in);
            f<<in;
            cout << "\nFinished!"<< endl;
        }
    }
    else cout << "Could not open file";

    // Close file
    f.close();

    }

我不确定我在这里做错了什么。在这个程序中,我试图 cin 将输入的文件名,然后输出到您输入的文件名。

最佳答案

正在重用相同的 fstream 对象:

f.open(s.data(),ios::in);
f.open(m.data(),ios::out);

它永远不会读取输入文件。更改为:

std::ifstream in(s.data());
std::ofstream out(m.data());

while 循环不正确,应在读取后立即检查读取尝试的结果:

char ch;
while(in.get(ch))
{
    out << ch;
}
cout << "\nFinished!"<< endl; // Moved this to outside the while

关于c++ - C++中文件的输入/输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10086999/

相关文章:

c++ - 成员初始化中表达式的求值是否相对于彼此排序?

c++ - 检测扩展桌面是在左边还是右边

c++ - 如何限制第 3 方流程必须完成的时间?

c# - 用于在 Linux 中编程的工具

c++ - 将编译器开关添加到 Eclipse CDT 内置编译器设置生成?

c++ - C++中迭代器值的垃圾值

c++ - 这个for循环的时间复杂度是多少(和 `n`有关)?

c++ - 逆变类型和可扩展性

具有可变通用引用和复制构造函数的 c++11 构造函数

c++ - 当我将 Char 指针设置为 Int 值时 QT 崩溃