Próbuję napisać wprowadzony ciąg w innym miejscu i nie wiem, jak zlikwidować nową linię, która pojawia się jako część tego ciągu, który uzyskuję ze stdin i fgets.Jak mogę uzyskać ciąg znaków z danych wejściowych bez dodawania nowej linii za pomocą fgets?
char buffer[100];
memset(buffer, 0, 100);
fgets(buffer, 100, stdin);
printf("buffer is: %s\n stop",buffer);
Starałem się ograniczyć ilość danych, które fgets dostaje jak również ograniczenie, ile danych jest napisane, ale nowa linia pozostaje. Jak mogę po prostu wprowadzić wprowadzony ciąg do ostatniego znaku napisanego z niczym więcej?
'scanf ("% 99 [^ \ n%] * c" bufor);' – BLUEPIXY
@ BLUEPIXY 'scanf ("% 99 [^ \ n]% * c ", bufor)' nie odczytuje niczego w 'buforze' jeśli pierwszy' char' jest ''\ n''. '' \ N'' pozostaje w 'stdin'. – chux
Czy chcesz przeczytać linię i pozostawić '\ n'' w strumieniu wejściowym, czy chcesz przeczytać wiersz zawierający' \ n'', a następnie odrzucić '\ n''? (Wpłynie to na następną operację wejścia, która będzie lub nie będzie czekała na niego ''\ n''.) –