C ++ - 在文本文件上写入时代码无法交替行
Posted
技术标签:
【中文标题】C ++ - 在文本文件上写入时代码无法交替行【英文标题】:C++- Code not working to alternate lines when writing on a text file 【发布时间】:2016-01-30 04:18:41 【问题描述】:我需要创建一个程序,从两个不同的文件中读取字符串并将这些字符串写入一个新文件。问题是,它必须交替两个文件,这意味着它应该从一个文件写入一行,然后从另一个文件写入一行,依此类推。
我的代码有问题,它写入第一个文件的第一行,然后写入第二个文件的所有行。 有谁知道如何解决这个问题?
do
getline(archivo1, sLinea);
archivoS << sLinea << endl;
getline(archivo2, sLinea2);
archivoS << sLinea2 << endl;
while (!archivo1.eof() && !archivo2.eof());
【问题讨论】:
无法复制。 Works for me 【参考方案1】:代码看起来正确,在正常情况下应该可以工作。这可能是第二个文件的编码问题,换行符在您的平台上无法识别,这可能导致整个第二个文件被 C++ 标准库解释为单行。
Windows (CR+LF)、Unix/Linux (LF) 和 Mac (CR) 都有不同的换行约定。跨平台搜索回车符和换行符以了解有关此主题的更多信息。
要确定这是否是问题所在,请尝试在第一个文件的两个单独副本上运行代码,看看它是否产生预期的输出?
如果换行编码是您的问题,您需要将第二个文件转换为使用您平台的换行编码(您可以使用 Notepad++ 之类的工具轻松完成此操作),或者将控制此操作的逻辑合并到您的程序中。
【讨论】:
【参考方案2】:检查您的第二个文件。它很可能不包含每行的行分隔符 "\n" 。最后可能只有一个
【讨论】:
以上是关于C ++ - 在文本文件上写入时代码无法交替行的主要内容,如果未能解决你的问题,请参考以下文章
Android 12.0 Toast消息框上限为两行文本(超出显示省略号)并且在文本左边显示应用图标
Android 12.0 Toast消息框上限为两行文本(超出显示省略号)并且在文本左边显示应用图标
Android 12.0 Toast消息框上限为两行文本(超出显示省略号)并且在文本左边显示应用图标
在Objective c中两行文本的末尾添加一个链接/ UI按钮