abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

včera 11:33 | Pozvánky

Konference LinuxDays 2017 proběhne o víkendu 7. a 8. října v Praze v Dejvicích v prostorách FIT ČVUT. Konference OpenAlt 2017 proběhne o víkendu 4. a 5. listopadu na FIT VUT v Brně. Organizátoři konferencí vyhlásili CFP (LinuxDays, OpenAlt). Přihlaste svou přednášku nebo doporučte konference známým.

Ladislav Hagara | Komentářů: 0
včera 06:00 | Nová verze

Byla vydána verze 1.3.0 odlehčeného desktopového prostředí Lumina (Wikipedie, GitHub) postaveného nad toolkitem Qt. Z novinek lze zmínit nový motiv ikon nahrazující Oxygen (material-design-[light/dark]) nebo vlastní multimediální přehrávač (lumina-mediaplayer).

Ladislav Hagara | Komentářů: 2
26.6. 17:33 | Bezpečnostní upozornění

Před šesti týdny byly publikovány výsledky bezpečnostního auditu zdrojových kódů OpenVPN a nalezené bezpečnostní chyby byly opraveny ve verzi OpenVPN 2.4.2. Guido Vranken minulý týden oznámil, že v OpenVPN nalezl další čtyři bezpečnostní chyby (CVE-2017-7520, CVE-2017-7521, CVE-2017-7522 a CVE-2017-7508). Nejzávažnější z nich se týká způsobu, jakým aplikace zachází s SSL certifikáty. Vzdálený útočník může pomocí speciálně

… více »
Ladislav Hagara | Komentářů: 1
26.6. 06:55 | Zajímavý projekt

V Edici CZ.NIC vyšla kniha Průvodce labyrintem algoritmů. Kniha je ke stažení zcela zdarma (pdf) nebo lze objednat tištěnou verzi za 339 Kč (připojení přes IPv4) nebo 289 Kč (připojení přes IPv6).

Ladislav Hagara | Komentářů: 6
26.6. 06:33 | Zajímavý software

Byla vydána verze 2.2.0 svobodného správce hesel KeePassXC (Wikipedie). Jedná se o komunitní fork správce hesel KeePassX s řadou vylepšení.

Ladislav Hagara | Komentářů: 0
26.6. 06:11 | IT novinky

Vývojář Debianu Henrique de Moraes Holschuh upozorňuje v diskusním listu debian-devel na chybu v Hyper-Threadingu v procesorech Skylake a Kaby Lake od Intelu. Za určitých okolností může chyba způsobit nepředvídatelné chování systému. Doporučuje se aktualizace mikrokódu CPU nebo vypnutí Hyper-Threadingu v BIOSu nebo UEFI [reddit].

Ladislav Hagara | Komentářů: 0
24.6. 01:23 | Komunita

Phoronix spustil 2017 Linux Laptop Survey. Tento dotazník s otázkami zaměřenými na parametry ideálního notebooku s Linuxem lze vyplnit do 6. července.

Ladislav Hagara | Komentářů: 3
23.6. 22:44 | Nová verze

Po třech měsících vývoje od vydání verze 5.5.0 byla vydána verze 5.6.0 správce digitálních fotografií digiKam (digiKam Software Collection). Do digiKamu se mimo jiné vrátila HTML galerie a nástroj pro vytváření videa z fotografií. V Bugzille bylo uzavřeno více než 81 záznamů.

Ladislav Hagara | Komentářů: 1
23.6. 17:44 | Nová verze

Byla vydána verze 9.3 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 3
23.6. 13:53 | Nová verze

Simon Long představil na blogu Raspberry Pi novou verzi 2017-06-21 linuxové distribuce Raspbian určené především pro jednodeskové miniaturní počítače Raspberry Pi. Společně s Raspbianem byl aktualizován také instalační nástroj NOOBS (New Out Of the Box Software). Z novinek lze zdůraznit IDE Thonny pro vývoj v programovacím jazyce Python a především offline verzi Scratche 2.0. Ten bylo dosud možné používat pouze online. Offline bylo možné používat pouze Scratch ve verzi 1.4. Z nového Scratchu lze ovládat také GPIO piny. Scratch 2.0 vyžaduje Flash.

Ladislav Hagara | Komentářů: 2
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (31%)
 (1%)
 (9%)
 (44%)
 (9%)
Celkem 852 hlasů
 Komentářů: 65, poslední 1.6. 19:16
    Rozcestník

    Dotaz: c++ - CLI parameter z argv a strcat

    28.10.2010 16:20 PeterS. | skóre: 10
    c++ - CLI parameter z argv a strcat
    Přečteno: 375×

    Ahoj

    potrebujem dostať parameter programu, odovzdať ho funkcii a spojiť ho s iným stringom. Je to vlastne názov pôvodného súboru ku ktorému sa ma pripojiť koncovka a pod týmto menom sa ma uložiť nový obrázok.

    Mám toto:

    int main(int argc, char** argv)
    {
    int poc_obr=argc-1;
    char* filename;
    for (n=0;n<poc_obr;n++) {

    //opening image
    filename = argv[n+1];
    CImg<unsigned char> srcimg(filename) ;   // toto funguje


    savemask (,,,*filename);            // tu ten názov predávam
    }
    }


    void savemask (,,,char filename) {

    char finalname[20];                          // finalny nazov obrazka
    strcat(finalname,  const char* filename);    // =riadok 124
    strcat(finalname, "_mask.jpg");


    mask_img.save(finalname);
    }

    kompilacia:
    cphix-0h.cpp: In function ‘void savemask(mydata&, int*, int, char)’:
    cphix-0h.cpp:124: error: expected primary-expression before ‘const’

     

    Hľadal som už aj na nete, skušal som už veľa možností, ale zjavne mi chýba hlbšie pochopenie...

    Vďaka za pomoc...

     

    Odpovědi

    28.10.2010 17:39 mato
    Rozbalit Rozbalit vše Re: c++ - CLI parameter z argv a strcat
    Příloha:
    hm, dost nebezpecne slepo kopirovat user data bez osetrenia (filename[20] ako buffer).
    prilozil som subor ako by som to robil ja (opat moznosti je viac):
    
    mato@foxi:(~/lair/filename)$ ./atest picture picture02
    DEBUG: working on picture
    DEBUG: new file: picture_mask.jpg
    
    DEBUG: working on picture02
    DEBUG: new file: picture02_mask.jpg
    
    mato@foxi:(~/lair/filename)$
    
    
    osobne by som ti ale odporucil prejst nejaku C/C++ ucebnicu; aspon zbezne
    28.10.2010 23:52 PeterS. | skóre: 10
    Rozbalit Rozbalit vše Re: c++ - CLI parameter z argv a strcat
    Ahoj, študujem tvoj súbor a mám otázku. Nie je jednoduchšie previesť argv[a] na string a tak s nim dalej narábať? Viď:

    string filename,newfilename;

    while ( a < argc) {

    filename =argv[a]; newfilename=filename+"_mask.jpg"; ...... }

    Nemam tu teraz ten môj rozpracovaný program, ale urobil som si skúšobný program a funguje to. Aj ked dosť dlho som sa s tým cez den mordoval a nezdá sa mi že som prehliadol takéto triviálne riešenie... Overim to zajtra...
    29.10.2010 01:03 mato
    Rozbalit Rozbalit vše Re: c++ - CLI parameter z argv a strcat
    pravda je, ze ja som ti ukazal C-ckovsky pristup k problemu, C++ ma na to svoje nastroje, ktorymi by sa to dalo spravit - pozri google, najde ti ukazky manipulacie so stringom (string/std::string , etc.)

    string ako taky v C nie je definovany a teda neexistuje operator + v takom vyzname, ako si ho pouzil ty

    nevidim ti do kodu a problemu co riesis, na tvoju otazku som ti teda odpovedal v C

    ale nemyslim si, ze by to bolo nejak zlozite .. i ten operator + v C++ je zadef. tak, ze musi vytvorit space pre novovzniknuty string - niekde sa ta sprava pamati musi udiat .. v C++ ju vsak v tomto pripade nevidis

    29.10.2010 07:32 PeterS. | skóre: 10
    Rozbalit Rozbalit vše Re: c++ - CLI parameter z argv a strcat

    problem je že funkcia ktorú potrebujem:

    CImg<unsigned char> srcimg(filename) ;

    neberie filename ak je definované ako string, stažuje sa:

    /usr/include/CImg.h:6992: note: candidates are: cimg_library::CImg<T>::CImg(const T*, unsigned int, unsigned int, unsigned int, unsigned int, bool) [with T = unsigned char]

    preto som filename mal definované ako :

    char* filename;

    ale potom mám problem to prenášať medzi funkciami. Mne by vyhovovalo narábať s filename ako so stringom, kvôli upravam, ale potom to potrebujem predať CImg<unsigned char>  ako char....

    29.10.2010 07:55 PeterS. | skóre: 10
    Rozbalit Rozbalit vše Re: c++ - CLI parameter z argv a strcat
    Myslim že som to vyriešil:
    char *char_filename=new char[filename.size()+1]  ;
    char_filename[filename.size()]=0; 		
    memcpy(char_filename,filename.c_str(),filename.size()); 
    Tak ako som to popísal výššie, pre CImg to budem konvertovať na char a inak to bude string.

    Teda tu konverziu som samozrejme našiel na nete. V každom prípade vďaka za pomoc...
    29.10.2010 11:04 ludo
    Rozbalit Rozbalit vše Re: c++ - CLI parameter z argv a strcat
    konvertovat medzi stringom a char* nemusis... string je jenom obal nad char* polom, ktory sa stara o alokaciu a pridava bezne operatory a funkcie... k polu ktore potrebujes mozes pristupovat cez .c_str() ako to tam aj mas, ale kopirovat ho nemusis...

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.