funkcja get w C++

0

Dlaczego funkcja get nie wczytuje mi znaków w poniższym kodzie? Tablice i ine dane są poustawaine poprawnie. Nie ma błędów kompilacji.

{
cout &lt&lt"\nPodaj imię: ";
cin.get(imie, 30);
cout&lt&lt"\nPodaj nazwisko: ";
cin.get(nazwisko, 30);
cout &lt&lt"\nPodaj telefon: ";
cin.get(telefon, 15);
}

0

ZieSzy napisał:
Dlaczego funkcja get nie wczytuje mi znaków w poniższym kodzie? Tablice i ine dane są poustawaine poprawnie. Nie ma błędów kompilacji.
&gt
&gt{
&gt cout &lt&lt"\nPodaj imię: ";
&gt cin.get(imie, 30);
&gt cout&lt&lt"\nPodaj nazwisko: ";
&gt cin.get(nazwisko, 30);
&gt cout &lt&lt"\nPodaj telefon: ";
&gt cin.get(telefon, 15);
&gt}

nie znam się zbytnio na c++, ale mając doświadczenia z podobnymi składniowo językami :) i pierwsza rzecz jaka rzuca mi się w oczy to '\n' na początku stringu.

Po pierwsze - w windzie, znakiem nowej linii nie jest \n, tylko \n\r (\n jest w unixach, a \r w MacOs), ale moze to jakiś super wymóg w cpp, nie wiem, nie znam sie na tym :). Wracajac do tematu, to jeśli '\n' rzeczywiście deklaruje nową linię, to f-cja get wczytuje w tym wypadku tylko znak nowej linii, mimo ze ma wczytywac np. 30 znaków. Tak mi się zdaje. {browar} {hello} --- - -
Roszi

0

tak teraz patrzę na swój post i malo można było z niego zrozumieć :). Chodzi mi o to, że get wczytuje znaki do momentu napotkania znaku nowej linii (przynajmniej tak mi się zdaje, bo tak jest np. w php). Jeśli znak nowej linii jest na samym początku zmiennej (a tak jest w przykładach jakie podałeś), to wczyta tylko znak nowej linii (zapomnialem dodać ze wczytuje do napotkania tego znaku, ale z nim włącznie - często trzeba go usuwać, np. f-cją chop() w php).--- - -
Roszi

0

Ja troche programuje w c++ i zamiast cin.get używam po prostu cin
{
cout &lt&lt"Podaj imię: " &lt&lt endl;;
cin &lt&lt imie;
cout&lt&lt"Podaj nazwisko: " &lt&lt endl;
cin &gt&gt nazwisko;
cout &lt&lt"Podaj telefon: " &lt&lt endl;
cin &gt&gt telefon;
}
Jeżeli nie zrobiłem jakiejś literówki to będzie działało.

0

nie wiem, czy juz znasz odpowiedź, ale uzyj czegoś takiego
string a,b;

cout << "Podaj imi\251 i nazwisko\n";
getline(cin, a);

cout << "Podaj miejscowo\230\206 \n";
getline(cin, b);

0

Po dziewięciu latach pewnie zna odpowiedź

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