Portál AbcLinuxu, 11. května 2025 01:09
Dobry den, ucim sa C++ a potreboval by som nakopnut spravnym smerom. Konretne by som
potreboval poradit akym sposobom z text suboru v ktorom bude premmena=hodnota nacitat
vsetky premmen a vyuzivat ich v programe a ako dokazem overit v linuxe ci je pripojeny disk na
/dev/sdb.
Vsetkym dakujem
Řešení dotazu:
potreboval poradit akym sposobom z text suboru v ktorom bude premmena=hodnota nacitat vsetky premmen a vyuzivat ich v programeC++ nie je skriptovací jazyk. Mená premenných po skompilovaní prestávajú mať význam. Kompiláciou sa použitia premenných v programe nahradia prácou s ich adresou. Chcem povedať, že nemôžeš mať premennú foo a po načítaní reťazca "foo" do programu očakávať, že nejak vydoluješ hodnotu premennej, ktorá sa v zdrojákoch volala
foo
. To čo potrebuješ môžeš riešiť tak, že si vyrobíš napr. zoznam párov stringov, kde jedna položka v tom zozname bude mať jeden string - ktorý budeš plniť tým čo je na jednom riadku v súbore pred znakom = a druhý string tým čo je za znakom =. Keď budeš potrebovať "hodnotu premenej" tak ako je definovaná v tom vstupnom súbore, tak prelezieš ten zoznam a nájdeš položku kde prvý string je zhodný s "menom premennej", ktorú poznáš. Druhý string z tej položky bude "hodnota premennej".
a ako dokazem overit v linuxe ci je pripojeny disk na /dev/sdbOtázkou je, čo to znamená "pripojený". /dev/sdb reprezentuje disk (i.e. nie partíciu na idsk) v systéme. Potom môžeme debatovať o tom, ako zistíš, či je to blokové zariadenie (stat(2) a S_ISBLK), aké má minor a major čísla (minor(), major()), či je na ňom filesystém, či je primountovaný (/proc/mounts), aké má partície (/proc/partitions) atď
map< string, double> prommenneZeSouboru; prommenneZeSouboru["nazevpromenne"] = hodnota;Pak jen přistupuješ přes prommenneZeSouboru["nazevpromenne"]
int i=1234;
string str="i";
tak nie je možné do premennej i dostať hodnotu napr. 5678 pomocou obsahu premennej str inak než
if (str=="i")
i=5678;
čo je dosť neflexibilné a ako dokazem overit v linuxe ci je pripojeny disk na /dev/sdb
potrebujem len zistit ci je pripojeny cez usb a potom ak ano nasledne formatovat a nahrat potrebne subory
test $(cat /sys/class/block/sdb/size) -gt 0 && mkfs.ext3 /dev/sdb(pomijim ze takhle vynechavat parition tabuli je prasarna)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.