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
scanf("%[^\n]",buf);
Niby program kompiluje sie poprawnie, jest jeden Warning, ale zmienna do ktorej cos wpisalem jest pusta i nic nie wyswietla na ekranie
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.
hmm jaki warning i podaj kod to to uzycie scanf powinno dzialac bez problemu
[code]
char asdf[ 1234 ];
fgets( asdf, 1234, stdin );
puts( asdf );
[/code]
#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
...'
char buf[20];
cin.getline(buf, 20);
cout << buf;
#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 typestruct std::string' through
...'
Lol, funkcja scanf to ansi-c wiec nie mozesz podac jej zmiennej string tylko zwykly ciag char....
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
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;
}
Dzięki o to właśnie chodziło :)
EOT
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]