Odczyt r (carriage return) vs n (newline) z konsoli z getc?
Piszę funkcję, która zasadniczo czeka, aż użytkownik kliknie „enter”, a następnie coś zrobi. Co znalazłem, działa, gdy testowanie jest następujące:
<code>#include <stdio.h> int main() { int x = getc(stdin); if (x == '\n') { printf("carriage return"); printf("\n"); } else { printf("missed it"); printf("\n"); } } </code>
Pytanie, które mam, i na początku próbowałem:if (x == '\r')
ale w testach program nie przyłapał mnie na wejściu. The'\n'
Wydaje się, że odpowiada mi uderzenie z konsoli. Czy ktoś może wyjaśnić różnicę? Ponadto, aby zweryfikować, zapisz go jakoif... == "\n"
oznaczałoby literał ciągu znaków? tj. użytkownik dosłownie musiałby wejść"\n"
z konsoli, prawda?