【问题标题】:C++- Code not working to alternate lines when writing on a text fileC ++ - 在文本文件上写入时代码无法交替行
【发布时间】:2016-01-30 04:18:41
【问题描述】:

我需要创建一个程序,从两个不同的文件中读取字符串并将这些字符串写入一个新文件。问题是,它必须交替两个文件,这意味着它应该从一个文件写入一行,然后从另一个文件写入一行,依此类推。

我的代码有问题,它写入第一个文件的第一行,然后写入第二个文件的所有行。 有谁知道如何解决这个问题?

do {

    getline(archivo1, sLinea);
    archivoS << sLinea << endl;
    getline(archivo2, sLinea2);
    archivoS << sLinea2 << endl;

   } while (!archivo1.eof() && !archivo2.eof());

【问题讨论】:

标签: c++ string file text


【解决方案1】:

代码看起来正确,在正常情况下应该可以工作。这可能是第二个文件的编码问题,换行符在您的平台上无法识别,这可能导致整个第二个文件被 C++ 标准库解释为单行。

Windows (CR+LF)、Unix/Linux (LF) 和 Mac (CR) 都有不同的换行约定。跨平台搜索回车符和换行符以了解有关此主题的更多信息。

要确定这是否是问题所在,请尝试在第一个文件的两个单独副本上运行代码,看看它是否产生预期的输出?

如果换行编码是您的问题,您需要将第二个文件转换为使用您平台的换行编码(您可以使用 Notepad++ 之类的工具轻松完成此操作),或者将控制此操作的逻辑合并到您的程序中。

【讨论】:

    【解决方案2】:

    检查您的第二个文件。它很可能不包含每行的行分隔符 "\n" 。最后可能只有一个

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2012-05-30
      • 2021-12-30
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      相关资源
      最近更新 更多