C++新行失败鉴别测试?

C++新行失败鉴别测试?,c++,formatting,output,diff,newline,C++,Formatting,Output,Diff,Newline,所以我有两个程序,我比较输出。每当它执行换行时,它都会使用diff实用程序说明我的输出是不同的。 我试过使用: std::cout << endl; 及 但它仍然说我们的输出是不同的。我在同一台机器上运行这两个可执行文件。以二进制模式读取文件,并检查换行符的字节值 其中一个可能是ASCII码为10的字符 另一个是10和13 流式传输std::endl相当于流式传输'\n',然后是std::flush,所以,不,您不会看到任何差异。您的工具更可能希望找到Windows样式的行结尾,即

所以我有两个程序,我比较输出。每当它执行换行时,它都会使用diff实用程序说明我的输出是不同的。 我试过使用:

std::cout << endl;


但它仍然说我们的输出是不同的。我在同一台机器上运行这两个可执行文件。

以二进制模式读取文件,并检查换行符的字节值

其中一个可能是ASCII码为10的字符

另一个是10和13

流式传输std::endl相当于流式传输'\n',然后是std::flush,所以,不,您不会看到任何差异。您的工具更可能希望找到Windows样式的行结尾,即CRLF,而不仅仅是LF

std::cout << "\r\n" << std::flush;

但是,与猜测不同,您只需在十六进制编辑器中打开比较数据,亲自查看所需的字符。

@πάνταῥεῖ: windows上通常有文本模式转换。我试过了,但结果很奇怪。它不仅改变了我的输出,而且另一个程序的输出在换行符上有奇怪的格式问题。知道为什么吗?@scorxcho:太模糊了,没有细节。你能解释一下如何在十六进制编辑器中打开比较数据,这样我就能看到预期结果吗?@scorxcho:不确定如何读取文件的教学是否在这个问题的范围内。只需说一句,无论您用于编程的编辑器是什么,都应该能够精确地显示任何给定文本或二进制文件中的内容。记事本++?
std::cout << "\r\n" << std::flush;