Başka yerde girilmiş bir dize yazmaya çalışıyorum ve stdin ve fgets ile aldığım bu dizenin bir parçası olarak görünen yeni çizgiyle nasıl başedeceğimi bilmiyorum. Fgets kullanarak yeni bir satır eklemeden girişten nasıl bir dize alabilirim?
char buffer[100];
memset(buffer, 0, 100);
fgets(buffer, 100, stdin);
printf("buffer is: %s\n stop",buffer);
Ben fgets yazılı ancak yeni hat kalır ne verilerin çoğunu sınırlayıcı yanı sıra alır veri miktarını sınırlamak için çalıştı. Girilen dizgiyi, başka hiçbir şeyle yazılan son karaktere kadar nasıl alabilirim? linux adam sayfalarından
'scanf ("% 99 [^ \ n]% * c" tampon) benzerleri;' – BLUEPIXY
@ BLUEPIXY 'scanf ("% 99 [^ \ n]% * c ", buffer)' 'char'' '\ n'' ise 'buffer' içine bir şey okumayacaktır. ''\ N'' stdin'de kalır. – chux
Bir satırı okumak ve giriş akışında '\ n'' bırakmak mı yoksa' \ n'' de dahil olmak üzere bir satır okumak ve ardından '' \ n'' iptal etmek ister misiniz? (Bu, '\ n'' için bekleyen bir sonraki giriş işlemini etkileyecektir.) –