» Poradna » Hardware

C++

Odpovědět  |  Zobrazit bez stromu  |  Upozornit redakci  |  nových odpovědí: 6/6
 |   |   |  [195.113.97.---]

//mam program v c++.Potrebuji nacist obrazek s libovolnym nazvem.
//ted to mam delane tak ze ve zdrojaku se musi zadat na pevno jmeno souboru
//prosim jak napsat funkci abz mohl uzivatel zadat sam nazev souboru??DEKUJI

Odpovědi na otázku

 |   |   |  [146.102.120.---]

neznám C++, ale snad tam je nějaký Reader z konzole nebo ne?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [86.49.63.---]

int main(int argc, char **argv)
{
/*
argc je pocet argumentu z prikazove radky (1. je jmeno spusteneho souboru, pak nasleduji parametry)
argv je pole ukazatelu na retezce, posledni ukazatel je NULL
*/

// ...
}

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [85.132.180.---]

to moc nechapu prosim te mohl by jste mi to rozepsat vic?prosim

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [86.49.63.---]

tohle je jednoduchy zpusob zadani z prikazoveho radku pri spousteni programu... C/C++

#include

char *nazev_souboru;

int main(int argc, char **argv)
{
if (argc < 2) // bez parametru
nazev_souboru = "defaultni_soubor";
else if (argc == 2) // jeden parametr
nazev_souboru = argv[1];
else { // vic nez jeden parametr
printf("Usage: program [filename]\n");
return 1;
}

// ...

return 0;
}

--------------------

nebo kdybys to chtel zadavat uvnitr programu... predpokladem je klasicky program bezici v terminalu, zadny okynka... opet pro C i C++:

#include

char nazev_souboru[256];

int main(void)
{
printf("Zadej nazev souboru: ");
gets(nazev_souboru); // pozor! nepritel by moh zadat prilis dlouhy retezec -> zapis mimo vyhrazenou pamet

// ...

return 0;
}

-----------

O neco chytrejsi varianta:

#include
#include

char nazev_souboru[256];

void read_string(char *s; int max) // kam chceme retezec ulozit; maximalni delka
{
/* slozitejsi, nez by bylo treba...
vetsina kodu osetruje nehezky pripad, kdyz nepritel zada hodne dlouhy retezec...
retezec ukladame do pevne velkeho pole, tak at se tam vejde */
int i;
char dummy[256];
fgets(nazev_souboru, max, stdin);
i = strlen(nazev_souboru) - 1;
if (nazev_souboru[i] == '\n')
nazev_soubory[i] = 0;
else
do
{
fgets(dummy, 256, stdin);
} while (dummy[strlen(dummy) - 1] != '\n');
}

int main(void)
{
printf("Zadej nazev souboru: ");
read_string(nazev_souboru, 256);

// ...

return 0;
}


PS: ani jsem to po sobe necet, mozna tam jsou chyby

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [86.49.63.---]

jako treba pozrani includu v tomhle foru vsude je stdin.h, dole navic string.h

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [86.49.63.---]

pardon, stdin = stdio

Souhlasím  |  Nesouhlasím  |  Odpovědět



Určitě si přečtěte


Čína vyvíjí ohromná hejna tisícovek malých dronů

Čína vyvíjí ohromná hejna tisícovek malých dronů

** Vývoj hejnové inteligence pro drony v Číně nabírá na rychlosti ** Velká hejna dronů mají podle odborníků značný potenciál pro vojenské využití i pro bezpečnostní aplikace ** Číňané se navíc s drony neomezuje jenom na zemský povrch a okolí, ale poohlížejí se i po vesmíru

11.  1.  2018 | Stanislav Mihulka | 3

Genetika a příjmení: Unikátní možnost získat test Y-DNA zdarma a dozvědět se o svých předcích

Genetika a příjmení: Unikátní možnost získat test Y-DNA zdarma a dozvědět se o svých předcích

** Projekt Genetika a příjmení hledá shody mezi osobami se stejným příjmením ** Využívá k tomu testování DNA na chromozomu Y ** Výsledky testu můžete účastí v projektu získat zdarma

11.  1.  2018 | Marek Lutonský | 2


Aktuální číslo časopisu Computer

Zachraňte nefunkční Windows

Jak nakupovat a prodávat kryptoměny

Otestovali jsme konvertibilní notebooky

Velký test 14 herních myší