Przekazywanie tablicy 2D między funkcjami

0

Cześć wszystkim,
Mam pytanie dotyczące przekazywania tablicy dwuwymiarowej między funkcjami.
Czy jest możliwość przekazania tablicy dwuwymiarowej typu char między funkcjami? I realizowanie w funkcjach pewnych operacji na niej?

Jeśli jest taka możliwość to proszę o jakieś wskazówki, jak to zrobić.
Z góry serdeczne dzięki, pozdrawiam i wesołych świąt życzę ;)

0

No dobra, dzięki, przekazywanie tablicy 2D już działa.
Mam teraz problem z wczytywaniem zawartości pliku. Potrzebuję wczytywać z pliku linijkę po linijce i wykonywać operacje.
Przykładowy plik tekstowy:

dodaj 7
nic
odejmij 4
dodaj 3
nic
dodaj 2

No i zrobiłem strukturę składającą się z 2 pól, a mianowicie: komenda typu char[10] i liczba typu int.
I chcę wczytać linijkę po linijce.
Nie wiem jak wczytać ilość linijek, najpierw zrobiłem tak, że w pierwszej linii wpisałem ilość linijek w pliku i wtedy wczytuję od 0 do wczytanej liczby i jest dobrze. Ale muszę zrobić tak, żeby plik tekstowy wyglądał jak ten powyżej.
No i teraz drugi problem.
Wczytuję w pętli 2 wartości: typu tablicowego char i typu całkowitego.
Jak wczyta mi "nic" (nie ma nic robić) to potem coś wczytuje i już efekt programu jest tak, że w wyjściowym pliku tekstowym jest czysto. Najwidoczniej wczytując liczbę wczytuje już coś z kolejnej linii i jest problem. Jak to załatwić?

1
typedef void exec(long long &value);
int read() { int x; cin>>x; return x; }
void nic(long long &value) {}
void dodaj(long long &value) { value+=read(); }
void odejmij(long long &value) { value-=read(); }
bool doit(long long &value)
  {
   static struct { const char *txt; exec *doit; } Tb[]={{"nic",&nic},{"dodaj",&dodaj},{"odejmij",&odejmij}};
   static char buf[256];
   cin>>setw(255)>>buf;
   for(unsigned i=0;i<sizeof(Tb)/sizeof(*Tb);++i) if(!strcmp(buf,Tb[i].txt)) Tb[i].doit(value);
   return cin;
  }

http://ideone.com/IcQhIE

0

Okej dzięki.
Ale jeśli chciałbym dalej kontynuować swoim sposobem?
Zrobiłem tak, że jeśli wczyta "nic" to już wartości nie czyta tylko wykonuje funkcję i idzie dalej, jeśli nie wczyta "nic" to wczytuje nazwę komendy ("dodaj", "odejmij") i wartość.
Wczytuję wszystko za pomocą "cin". Chciałbym to wczytać za pomocą getline(), ale nie wiem z czym to się je. Wiem, że instrukcja ta wczytuje linijkę po linijce z pliku, ale jak potem powiedzmy rozdzielić tą linię i zapisać "dodaj, odejmij, nic" to zmiennej typu tablicowego char a wartość do zmiennej typu int?

0

Dla tych którzy na wszystko mają swoi sposoby polecam jakiś kurs oraz google

0

Uporałem się z tym. Użyłem pętli iteracyjnej, w której użyłem getline i po prostu czytałem wartości jak poprzednio.Niby nic wielkiego, ale zawsze kilka linijek mniej.
Dziękuję za wszelką pomoc. Zdrowych i wesołych świąt życzę. Pozdrawiam.

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