Tablice znaków, getline()

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ź.

#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;
}
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"

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

1
#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;
}
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ę?

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