Tablice znaków, getline()

Tablice znaków, getline()
ZY
  • Rejestracja:ponad 2 lata
  • Ostatnio:ponad 2 lata
  • Postów:6
0

Cześć Pytanie dotyczy pętli i funkcji cin.getline(tablica,bufor) chce wpisać dane podawane przez użytkownika do tablicy znaków za pomocą funkcji wpisanej powyżej. Następnie po kolei je wypisać.
Z góry dzięki za odpowiedź.

Kopiuj
#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    char tab[100];

     for(int i=0;i<3;i++) {
       
        cout<<"Podaj imie i nazwisko: "<<endl;
        cin.getline(tab,1000);

        // jak zadeklarować i w tablicy????
        
     }

    cout<<"Dane osobowe: "<<i+1<<": "<< ?? <<endl;
    
    return 0;
}
edytowany 1x, ostatnio: Riddle
BG
  • Rejestracja:prawie 6 lat
  • Ostatnio:8 dni
  • Postów:289
3

Wpisz po prostu nazwę tablicy, ale...

  1. popraw 1000 --> 100 w wierszu 13
    Ta liczba określa rozmiar bufora i zabezpiecza Cię przed zapisem danych poza obszarem przydzielonym dla tablicy.

https://cplusplus.com/reference/istream/istream/getline/

  1. zastanów się, czy na pewno chcesz się męczyć z tablicami znaków
  • rozważ użycie std::string zamiast tablicy char
  • do wczytywania danych użyj std::getline(std::cin, str);
  1. z kodu wynika, że chciałbyś mieć tu wczytanych kilka napisów - jedna tablica znakowa Ci nie wystarczy

Dowiedz się czym jest std::vector i stwórz sobie "wektor napisów"

Kopiuj
std::vector<std::string> napisy;

_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:18 dni
1
Kopiuj
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
     vector<string> tab;
     for(string str;(cout<<"Podaj imie i nazwisko: ")&&(getline(cin,str))&&(str.size()>0);)
     {
        tab.push_back(str);
     }
    for(string str:tab) cout<<str<<endl;
    return 0;
}

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
ZD
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
3
Zygwryd napisał(a):

Cześć Pytanie dotyczy pętli i funkcji cin.getline(tablica,bufor) chce wpisać dane podawane przez użytkownika do tablicy znaków za pomocą funkcji wpisanej powyżej.

Albowiem ponieważ?

Dziwny (mówiąc niedelikatnie: chory) pomysł na naukę C++. Jakiś kurs cię prowadzi w taką - jednak chorą - stronę?


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.