Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Komenneltava ohjelma?

CoolC++ [01.11.2007 09:52:12]

#

Joo, kysäisisin, että kuinka voidaan ajaa omasta exestä komentoja erillisellä ohjelmalla?

Es: Minulla se sellainen ohjelma, jossa on sisään rakennettu konsoli komennont, ja jotka tekevät jotakin niiden koementojen hyväksymisen jälkeen. Eli jos vaikka kirjoitan konsoliini "HW" -niin ohjelma tulostaa "Hello Worldin" tosta lyhyeemmästä "HW" sanoista. En tosin tiedä pitäisikö noiden komentojen ja toimintojen olla jossakin tietyssä muussa tiedosto muodossa, josta voisi kustua komentoja erillisellä ohjelmalla, es. jos haluaisia ajaa bat:shin komentoja tai exe -tiedostoja käyttäen omaa konsolin komentoja käyttäen näin es.:

Konsolin ohjelman sisältö es.

...
cout << "hw\";

Erillinen ohjelma jotakin tälläistä, jonka pitäisi ajaa hw:n:

<tiedosto.exe> HW

En tiedä ymmärsikö joku, mutta en ihan itekään tiedä pitäisikö komentojen ja toimintojen olla jossakin muussa muodossa, josta homman voisi ajaa erillisillä ohjelmilla.

Metabolix [01.11.2007 12:29:06]

#

Tuon Hello World -kohdan jälkeen kävit melkoisen sekavaksi, mutta toivottavasti tämä auttaa:

void tulkki()
{
	string komento;
	cout << "<konsoli>: ";
	cin >> komento;
	if (komento == "HW") {
		aja_hw();
	} else if (komento == "ohjelma") {
		aja_ohjelma();
	} else if //...
}

void aja_hw()
{
	cout << "Hello, world!\n";
}

void aja_ohjelma()
{
	system("ohjelma.exe ja parametrit mukaan");
}

Tietenkään mitään ei tarvitse laittaa erillisiksi ohjelmiksi (kuten ei tuota HW:täkään).

Blaze [01.11.2007 12:29:53]

#

CoolC++ kirjoitti:

En tiedä ymmärsikö joku

Not really.
Onko tuo sitä, mitä haet: https://www.ohjelmointiputka.net/koodivinkit/25040-cpp-skriptituki ?

CoolC++ [01.11.2007 13:21:56]

#

Joo, toi on suunnilleen sinne päin, mutta jos haluaa erillisen ohjelman, joka käyttää tota omaa tulkkiani. es:

Tulkki.exe <-Sisältää komentoja es. "HW"

Avaa_hw.bat <-Sisältää ainoastaan "HW:n"/tulkki.exe, josta komento haetaan. (tai muu tiedosto, es.: .dat/.cgf/.ini).

bat tiedosto sisältää vaikkapa jotakin tämän kaltaista:

@echo off
cls
echo.
rem Haetaan komento/funcito tulkki exesta.:
echo.
echo hw <tulkki.exe>                  //Jotakin tämän kaltaista tähän tai jotai.
echo.
pause >nul
exit

Metabolix [01.11.2007 13:39:30]

#

#include <iostream>

using namespace std;

int main(int argc, char **argv)
{
	int i;
	if (argc < 2) {
		cout << "Et komentanut mitään. Luepa ohjeet.\n";
		// tulosta_ohjeet();
		return -1;
	}
	for (i = 1; i < argc; ++i) {
		cout << i << ": " << argv[i] << endl;
		if (strcmp(argv[i], "HW") == 0) {
			cout << "Hello, world!\n";
		} else if (strcmp(argv[i], "MOI-AP") == 0) {
			cout << "No moi, Aku-Petteri!\n";
		} else {
			cout << "Tuntematon komento!\n";
		}
	}
	return 0;
}

$ tarkoittaa konsoliin syöttämääni komentoa.

$ ./tulkki
Et komentanut mitään. Luepa ohjeet.
$ ./tulkki HW
1: HW
Hello, world!
$ ./tulkki MOI-AP hw HW
1: MOI-AP
No moi, Aku-Petteri!
2: hw
Tuntematon komento!
3: HW
Hello, world!

CoolC++ [01.11.2007 21:31:34]

#

Pitääpä kokeilla joku kerta, että toimiiko toi niinkuin ajattelen, kiitos.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta