2009-10-18 20 views
16

C++ 'daki cinsten güncel pozisyondan yeni satır karakterine kadar bir ipte okumak istiyorum. Okunacak karakterler boşluk içerebilir. İlk uzay durur çünkü benim ilk geçiş başarısız:Beyaz çizgi ile yeni çizgi karakterine kadar nasıl okunur?

string result; 

cin >> result; 

cin verilirse:

(cd /my/dir; doSometing)\n 

değişken sonuç yalnızca alır:

(cd 

ben olmalı düşünürdüm Bunu gerçekleştirmek için akış manipülatörlerini kullanabiliyorlar, ancak atlamak, boşlukları ve sekmeleriyle birlikte satırbaşı iadelerini atmak için oldukça haklı değildi, bunun yanı sıra, boşlukların atlanmasının önünü açmak için olduğu gibi geliyor.

Belki de böyle bir şey streambuf kullanmalıyım? (Sadece bu kadar yandı beri)

streambuf buf; 

cin >> buf; 

cevap

21
std::string str; 
std::getline(std::cin, str); 
+3

Not: AIX 5.1 ile çalışmak için görünmez. Stdio.h dosyasında tanımlanan 'fgets' kullanmak zorundaydım. – Pete