Wczytywanie danych

Wczytywanie danych
ulxoriffh Sdfv
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Hej,
Chcę zrobić program który wczyta od użytkownika nieokreślona liczbę znaków. Wiem jak zapisać te znaki do tablicy.
Dam przykład
wejście
1 linijka fdkdfj to zapisuje do pierwszej tablicy
2 linijka fdsfdsfds kolejną linijkę do drugiej tablicy
Mój problem polega na tym ,że nie wiem jak oddzielić dwie tablice. Myślałem nad pętlami ale nie znam ilości znaków w pierwszym wierszu. Czy istnieje jakieś rozwiązanie do tego problemu. Być może dostałem nie poprawne zadanie ale wole się upewnić.

DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1135
0

Korzystaj z kolekcji np. std::vector https://en.cppreference.com/w/cpp/container/vector

BTW. Pokaż kod, który do tej pory napisales

ulxoriffh Sdfv
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Szczerze mówiąc programuje od trzech tygodni. I w liceum nie mieliśmy jeszcze kolekcji vector, ale coś już z nią robiłem. Tylko powinno się dać to zrobić bez tego, ale chętnie się nauczę tej kolekcji. Mniej więcej wiem jak zrobić ten program. Tylko mam problem z tym wczytywaniem. Cały program ma wczytywać od użytkownika na wejściu wzór np efde
a potem wczytać ciąg znaków eddeffee
i wypisać ile znaków ze wzorca się powtórzyło czyli zrobiłbym to pętle for i jeśli element by się powtarzał do bym dodawał do zmiennej powtórzenia za każdym razem jedynkę.
Tylko mam problem z tym wczytaniem. Co myślisz o funkcji while(!cin.eof)? Może ona by podziałała.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
string a,b;
getline(cin,a);
getline(cin,b);
ulxoriffh Sdfv
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Zrobiłem coś takiego. Mimo to nadal nie działa. Wydaje mi się że problem leży po stronie tego że za rozmiar przyjąłem 1000. Jak uzależnić rozmiar tablicy od ilości znaków w wierszu.

ulxoriffh Sdfv
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

#include <iostream>
using namespace std;

int main()
{

char arr[1000];
char tab[1000];
int licznik=0;

cin.getline(arr,1000);
cin.getline(tab,1000);
for(int i=0;i<100;i++)
	for (int j = 0; j < 100; j++)
	{
		if (arr[i] == tab[j])
			licznik++;
	}
cout << licznik;

}

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5023
0

Czemu nie Zrobisz tak jak w linku, który podesłałem; MAsz dwa stringi wejściowe w wektorach i dalej coś z nimi Robisz.

Kopiuj
#include<vector>
#include<sstream>
#include<iostream>
using namespace std;

int main(int argc, char **argv){	
	string line;
	string line1;
	getline(cin, line);
	getline(cin, line1);
	istringstream iss(line);
	istringstream iss1(line1);
	vector<string> strVec;
	vector<string> strVec1;
	for (string s; iss >> s; strVec.push_back(s));
	for (string s; iss1 >> s; strVec1.push_back(s));
	for (auto &e : strVec) {
		cout << e << " ";
	}
	cout << "\n";
	for (auto &e : strVec1) {
		cout << e << " ";
	}

	cout << "\n";
	return 0;
}

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.