• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przetwarzanie komend.

0 głosów
73 wizyt
pytanie zadane 12 czerwca 2018 w C i C++ przez Munvik Dyskutant (9,350 p.)

Pisze arkusz kalkulacyjny tekstowy i mam do przetworzenia std::string'a (komende). Oto kawałek kodu, który mam

std::string cmd = "";
	char ch = 1;

	while (ch != char(ESC))
	{
		system("cls");
		ch = 1;

		std::cout << "Commands: " << std::endl << std::endl << std::endl;
		std::cout << "Delete cell         Example: DEL A8" << std::endl;
		std::cout << "Write cell          Example: A3 = 1140" << std::endl;
		std::cout << "Calculate cells     Example: C6 = G9 + F2" << std::endl;
		std::cout << "Read cell           Example: B1" << std::endl;
		std::cout << "List cell           Example: ls" << std::endl;
		std::cout << "Exit                Example: Rly ? U cant leave the console proggram ? " 
			<< std::endl 
			<< std::endl;

		while (ch != ENTER)
		{
				ch = getchar();
				cmd += ch;
		}

		std::cout << cmd;
		translateCmd(cmd, values);

		getchar();
	}

Values to std::vector<std::vector<int>>. 

Tu moje pytanie. Jak takie przetwarzanie zrobić ? Co tu zastosować, multum ifów sprawdzajacych czy komenda jest dostepna i poprawna ? Oraz, czy przekazywać ten vector Values do tej komendy ? A może funkcja translateCmd(...) niech coś zwraca ? Nie wiem jak się do tego zabrać..

Dodam, że istnieje osobna funkcja dla każdej komendy.

komentarz 12 czerwca 2018 przez Bondrusiek Maniak (60,670 p.)
Witam,

wydaje mi się że zastanów sie nad reprezentacją danych. Być może powinieneś stworzyć własną klasę do tego zadania. Jeśli przekazujesz vector do funkcji to najlepiej przez referencje. Zamiast wielu ifów możesz zastosować instrukcje switch() która jest czytelniejsza.
komentarz 12 czerwca 2018 przez Munvik Dyskutant (9,350 p.)
Właśnie chodzi o to, że nie można używać klas :/ A ze switchem to oczywiście

1 odpowiedź

0 głosów
odpowiedź 12 czerwca 2018 przez Chess Szeryf (75,030 p.)

Utwórz może tablicę z tymi poleceniami i przeleć pętlą po niej.

Nie za bardzo rozumiem w czym rzecz, ale chyba oto Ci chodzi:

// PSEUDO-CODE

<?php
$arr = ['CALC','CHARMAP','CMD'];

for($i=0;$i<2;$i++) {
   // std::string $arr[$i] = "";

   // while (ch != char(ESC)) {
   // ...
   // }
}
?>

 

Podobne pytania

+1 głos
1 odpowiedź 70 wizyt
0 głosów
1 odpowiedź 74 wizyt
pytanie zadane 27 kwietnia 2020 w JavaScript przez chakip Nowicjusz (210 p.)
0 głosów
0 odpowiedzi 30 wizyt
pytanie zadane 12 listopada 2019 w Rozwój zawodowy, nauka, szkoła, praca przez kamilvvv Początkujący (430 p.)

85,774 zapytań

134,555 odpowiedzi

298,695 komentarzy

56,666 pasjonatów

Advent of Code 2021

Top 15 użytkowników

  1. 64p. - nidomika
  2. 62p. - ScriptyChris
  3. 60p. - Whistleroosh
  4. 57p. - adrian17
  5. 55p. - CC PL
  6. 55p. - B4mbus
  7. 53p. - Klaudia
  8. 50p. - WhiskeyTaster
  9. 47p. - rucin93
  10. 45p. - tokox
  11. 44p. - Adrian Rębisz
  12. 43p. - Michał Tartanus
  13. 41p. - Jarosław Roszyk
  14. 38p. - Argeento
  15. 18p. - Marcin Harasimowicz
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...