Cała linia

0

Witam! Mam takie pytanie jak do zmiennej typu string czytać calą linie tekstu (razem ze spacjami) z wpisanej z klawiatury?
cin wczytuje tylko do momentu wystapienia pierwszej spacji
cin.get i cin.getline napotyka na jakieś błędy

0

scanf("%[^\n]",buf);

0

Niby program kompiluje sie poprawnie, jest jeden Warning, ale zmienna do ktorej cos wpisalem jest pusta i nic nie wyswietla na ekranie

0

Jeszcze raz ponawiam pytanie czy ktoś wiej jak wczytać całą linie z klawiatury (ze spacjami) do zmiennej string? No chyba że jest to niemożliwe w co raczej wątpie.

0

hmm jaki warning i podaj kod to to uzycie scanf powinno dzialac bez problemu

0

[code]
char asdf[ 1234 ];
fgets( asdf, 1234, stdin );
puts( asdf );
[/code]

0

#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
int main() {
string a;
cout << "Podaj dowolny lancuch:\n";
scanf("%[^\n]",a);
cout << a;
return 0;
}

i warning który zwraca przy kompilacji
E:/Programy/c++/program1.cpp warning: cannot pass objects of non-POD type struct std::string' through...'

0
        char buf[20];
        cin.getline(buf, 20);
        cout << buf;
0

#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
int main() {
string a;
cout << "Podaj dowolny lancuch:\n";
scanf("%[^\n]",a);
cout << a;
return 0;
}

i warning który zwraca przy kompilacji
E:/Programy/c++/program1.cpp warning: cannot pass objects of non-POD type struct std::string' through...'

Lol, funkcja scanf to ansi-c wiec nie mozesz podac jej zmiennej string tylko zwykly ciag char....

0

No to więc właśnie pytam jak do stringa wczytać całą linie bo do char wiem jak i z tym nie ma problemu, ale nie wiem jak wczytać do zmiennej string. Samo cin wczytuje do momentu wystąpienia spacji, a get() i getline() generują błędy

0

Witam.
Klasa string ma funkcje wlasna funkcje getline oto przyklad:

# include <iostream>
# include <string>

using namespace std;

void main()
{
	string tekst;

	cout << "Podaj jakis tekst: " << endl;
	getline(cin, tekst);

	cout << tekst << endl;
}

http://www.keywords.prv.pl

0

Dzięki o to właśnie chodziło :)

EOT

0

Dziala jak trzeba, ale mam pytanie: dlaczego nie wywoluje sie tej funkcji jak innych metod (z kropka lub ->) tylko podaje samo getline??

Na pierwszy rzut oka widać, że getline() nie jest metodą, tylko wolną funkcją. [mf]

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