linux — преобразование стандартного ввода и вывода в C ++ между CR + LF и LF и CR

Хорошо, я планирую создать файл для хранения данных, которые я буду импортировать в программу. Эта программа должна быть скомпилирована для Linux, Windows и, возможно, Mac.

Теперь я действительно хочу знать, нужно ли мне, чтобы эти файлы данных немного отличались из-за символа новой строки в этих файлах, или stdin не требователен к тому, на какой системе я работаю?

Это будет проблемой или нет? Если да, то как правильно преодолеть эти проблемы? Также есть какие-то другие проблемы, которые я могу не заметить?

0

Решение

Если программа не предназначена для чтения пользователем, просто убедитесь, что вы выводите ее в той же форме, в которой она будет введена. В этом случае может быть проще использовать двоичный формат.

В любом случае, убедитесь, что вы указали двоичный поток, иначе Windows может развернуть \ n в \ r \ n для текстовых потоков.

С другой стороны, один из самых простых способов преодолеть эту проблему независимо от платформы для текстовых файлов, предназначенных для чтения пользователем, состоит в том, чтобы жадно потреблять все соседние символы \ r и \ n в конце одной строки, и вы выиграли ‘ не нужно беспокоиться о том, как вы выводите его.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]