Tablica i plik.

0

Witam miałem 3 zadania
Pierwsze napisać funkcje odczytującą z pliku do tablicy.
Drugie funkcja zapisująca z tablicy do pliku
Trzecie łączy dwie pierwsze funkcje,bo pobieram z jednego pliku dane do tablicy powiedzmy,że mnoże je razy dwa i zapisuje do innego pliku.

Plik wyglądał np tak:
2 3
2 4 5
2 1 3
Czyli dwie pierwsze liczby to ilośc wierszy i kolumn.Wiem jeszcze,że ilość wierszy i kolumn nigdy nie bedzie wieksza od zmiennej W i K(Nie wiem po co jest to dane)
Pierwsze zadanie zrobiłem tak,że odczytałem dwie pierwsze liczby i wtedy wiedziałem ile liczb mam zapisać do tablicy.(Wiem,że dane w pliku są podane prawidłowo)
Ale z drugim mam juz problem.Bo skąd mam wiedzieć jakie wymiary ma ta tablica,albo co ma tam zapisane?Musiałbym tej funkcji przekazać tablice i jej rozmiary tak?Ale tu pojawia się problem,bo jak mam z pierwszej funkcji zapamietać rozmiary,żeby je przekazać w zadaniu 3?Jeszcze z treści trzeciego zadania wynika,że mam użyć dwóch funkcji czyli w pierwszej też mam nie robić nowej tablicy bo potem muszę ją zwrócić..Juz mi się to pomieszało to może ktos ma jakiś pomysł jak się za to zabrac

3

W C++ aby poznać wielkość kontenera (w tym tablicy) użyj std::size.

int arr[3] = {1,2,3};
static_assert(std::size(arr) == 3);
0

No to sie przyda,ale czy funkcja może zwrócić tablice?Bo np jakbym w pierwszej funkcji zrobił tablice,potem bym ją zwrócił w trzeciej funkcji zrobił jakieś obliczenia na niej to by się tak dało?Np zwrócic w pierwszej funkcji adres tablicy,albo adres na zerowy element czy wtedy mógłbym w innej funkcji dostać rozmiar tej tablicy?Bo nie mam innego pomysłu jak w pierwszej funkcji zwrócić adres tej tablicy,żeby w innej funkcji na niej działać.

0

C-tablicy nie. Możesz ją ewentualnie opakować w jakiegoś structa (albo użyć std::array). Ale jeśli chcesz zwracać tablicę z funkcji to przyjrzyj się std::vector.

0

A masz może pomysł inny jak to zrobić?Tzn czy da się to zrobić na samych tablicach? Bo ja z treści polecenia czyli,że ma być najpierw napisana wczytująca tablice,potem zapisująca tablice a trzecia wykorzystuje obie funkcje to nie widze innej opcji niż w pierwszej funkcji zrobić nową tablice,ogólnie nie widze planu jak to zrobić głownie przez to,że musze z pierwszej funkcji dużo rzeczy zapamietać,bo musze z pierwszej funkcji zapamiętać całą tablice jej rozmiary,bo w 3 funkcji musze to wczytać i potem na tej tablicy działać.

1

W takim razie trzymaj tablicę w main() i przekazuj ją do pozostałych funkcji. Nie da się w C++ zwrócić tablicy bezpośrednio (t.j. bez opakowywania jej w struct jak np. std::array).

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