Нет. Еще и в Dos.
Но, на самом деле, проблема встречается куда шире. Например, многие коммуникационные протоколы позволяют использовать, CR, LF, или CR/LF в качестве разделителя строки. При передаче по каналу CR может быть получен, но отработка LF может оказаться блокирующим вызовом. Поэтому правильный способ отработки — распозновать строку по CR, и взводить флажок (чтобы, если последует LF, его пропустить молча).
Я встречал в некоторых файлах Adobe CR CR в качестве ограничителя строки. До сих пор гадаю, где такая конвенция...
А пример программы… Я обычно делал что-либо в таком духе, но это все — совсем не posix.
Код:
#include <stdio.h>
#include <conio.h>
int main(int argc, char** argv)
{
int ch;
do {
ch = _getch();
printf(" %02X", ch);
} while (ch != 0x1B && ch != -1);
}
Сейчас, правда, погонял ее — грехов не видно. А может я и попутал чего.
Дурной это тон, гонять scanf из файла. Проблем не оберешься.