Język C: Znak nowej linii

0

Chcę stworzyć funkcję, która pobiera n znaków włącznie ze znakami odstępu, tabulatora i znaku nowej linii.
Problem polega na tym, że po wpisaniu tekstu i wciśnięciu <enter> tekst jest przesyłany i wyświetlany na ekranie. Chcę aby został wyświetlony dopiero po wpisaniu #, natomiast wciśnięcie <enter> powinno powodować tylko wyświetlenie nowej linii, a nie przesłanie danych.

1

Ale w sensie że jak dokładnie?
Bo jeśli chcesz aby enter przestał być enterem, tj. naciśnięcie jego nie będzie powodowało potwierdzenia że dane można odebrać, to bez systemowego API sie nie da tego w C zrobić (podaj system).

1

chyba da się za pomocą winapi ale jest tu duuuużo roboty... Możesz zrobić pobieranie klawiszy z klawiatury+wyświetlanie tekstu do konsoli dzięki czemu będziesz miał chciany rezultat. Ew możesz inaczej wyświetlać tekst ale wczytywać musisz znak po znaku a nie ciągiem

0

@arekszczepanowicz3 @Niikelion da sie duzo prosciej i na pewno nie trzeba winapi do tego

wystarczy cin.getline ;)
http://en.cppreference.com/w/cpp/io/basic_istream/getline</del>

niewazne, poranne zawirowanie ;)

0

API potrzeba do tego, aby w konsoli nie wyświetlał się wpisany tekst (jak przy wpisywaniu hasła). Na *nixach to jest trywialne. Na windowsach też wydaje się proste: http://stackoverflow.com/questions/6899025/hide-user-input-on-password-prompt

Wyłączasz echo, pobierasz dowolnym sposobem znaki aż do '#', włączasz echo, (a jeśli chcesz wyświetlić to co user wpisał: musisz to zrobić explicite).

1 użytkowników online, w tym zalogowanych: 0, gości: 1