Sto provando a scrivere una stringa immessa altrove e non so come eliminare la nuova riga che appare come parte di questa stringa che acquisisco con stdin e fgets.Come posso ottenere una stringa dall'input senza includere una newline usando fgets?
char buffer[100];
memset(buffer, 0, 100);
fgets(buffer, 100, stdin);
printf("buffer is: %s\n stop",buffer);
ho cercato di limitare la quantità di dati che fgets ottiene oltre a limitare la quantità di dati è scritto, ma la nuova linea rimane. Come posso semplicemente ottenere la stringa immessa fino all'ultimo carattere scritto con nient'altro?
'scanf ("% 99 [^ \ n]% * c", buffer);' – BLUEPIXY
@ 'Scanf ("% 99 [^ \ n]% * c ", buffer)' non leggerà nulla in 'buffer' se il primo' char' è ''\ n''. Il ''\ n'' rimane in' stdin'. – chux
Vuoi leggere una riga e lasciare il ''\ n'' nel flusso di input, o vuoi leggere una riga che include'' \ n'' e poi scartare il ''\ n''? (Ciò influirà sulla prossima operazione di input, che vedrà o non vedrà il ''\ n'' in attesa di esso.) –