Tôi đang cố gắng để viết một chuỗi đầu vào ở nơi khác và không biết làm thế nào để làm đi với dòng mới xuất hiện như là một phần của chuỗi này mà tôi có được với stdin và fgets.Làm thế nào tôi có thể nhận được một chuỗi từ đầu vào mà không bao gồm một dòng mới bằng cách sử dụng fgets?
char buffer[100];
memset(buffer, 0, 100);
fgets(buffer, 100, stdin);
printf("buffer is: %s\n stop",buffer);
Tôi đã cố gắng giới hạn lượng dữ liệu bị lãng phí cũng như giới hạn số lượng dữ liệu được ghi nhưng dòng mới vẫn còn. Làm thế nào tôi có thể đơn giản nhận được chuỗi đầu vào lên đến ký tự cuối cùng được viết với không có gì khác?
'scanf ("% 99 [^ \ n]% * c", đệm); ' – BLUEPIXY
@ BLUEPIXY 'scanf ("% 99 [^ \ n]% * c ", bộ đệm)' sẽ không đọc bất cứ thứ gì vào 'buffer' nếu' char' đầu tiên là ''\ n''. '' \ N'' vẫn còn trong 'stdin'. – chux
Bạn có muốn đọc một dòng và để ''\ n'' trong luồng đầu vào hay bạn muốn đọc một dòng bao gồm'' \ n'' và sau đó loại bỏ ''\ n''? (Điều này sẽ ảnh hưởng đến thao tác nhập tiếp theo, sẽ hoặc sẽ không nhìn thấy ''\ n'' đang chờ nó.) –