cin, getline(cin,buf); konsola

0

witam,
pisze sobie programik na konsole (mały edytor tekstu) ale problem mam z dostarczeniem mu danych tz.

ma działac tak:

./pr.exe -d abc < text.txt // i to na przykład usuwa wszystkie a,b,c z tekstu

staram się pobrać ze standardowego wejścia dane

int main(int argc, char* argv[]){

// coś
string buf;
cin>>buf; // to wczyta tylko pierwsze słowo
getline(cin,buf); // a to tylko pierwszą linię tekstu

próbowałem w pętle to wrzucić ale nadal nic się nie zmienia.

To co chcę osiągnąc:

  1. wczytać do stringa cały tekst po lini
    i to mi wystarczy.

ps. nie chcę wczytywać z pliku.

jak ktoś wie jak to zrobić pls o pomoc.

0

nie rozumiem o co ci chodzi! Wygląda na to, że podążasz właściwą drogą.

string buf;
while(getline(cin,buf)) {
      // przetwarzanie kolejnych linii
      ...
      cout << buf << endl;
}
0

przepraszam zamotałem się przy warunku pętli, ale już mam jasność dzieki :)
ostateczna wersja tego co chciałem:

#include <iostream>
#include <string>

using namespace std;

int main(){
	string buf,text;
	while(getline(cin,buf)){
		text+=buf+"\n";
		//cout<<buf;
	}
	cout<<text;
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1