Skip to content

IO 类输出时的行末空行问题 #152

@weilycoder

Description

@weilycoder

IO 类直接输出是默认 '\n' 的,但是使用 output_gen 函数时,由于答案文件由用户程序生成,要求用户编写的 std 输出时自行处理换行符问题。后者明显增加了用户的工作量。


以下为原始内容,与实际情况不相符。

这应该是一个比较无语的问题,众所周知,根据操作系统的不同,换行符可能是 '\r''\n''\r\n';大部分评测系统是 Linux 系统('\n'),而大部分出题人的电脑是 Windows 系统('\r\n')。

正常来说,在同一系统下,使用非二进制模式读取文件得到的换行符均被自动处理为一个字符,但跨系统数据生成时情况有所不同。

这导致了臭名昭著的换行符问题,即,选手可能被迫在手动处理换行符时进行特判;而数据的换行符可能是三者中的任何一种甚至混用。

由于项目的 IO 类并未使用二进制模式输入输出,其生成文件的换行符依赖系统环境。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions