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 16:44 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.18. Díky 174 přispěvatelům.

    Ladislav Hagara | Komentářů: 2
    včera 15:11 | IT novinky

    Miliardy korun na digitalizaci služeb státu nestačily. Stát do ní v letech 2020 až 2024 vložil víc než 50 miliard korun, ale původní cíl se nepodařilo splnit. Od loňského února měly být služby státu plně digitalizované a občané měli mít právo komunikovat se státem digitálně. Do tohoto data se povedlo plně digitalizovat 18 procent agendových služeb státu. Dnes to uvedl Nejvyšší kontrolní úřad (NKÚ) v souhrnné zprávě o stavu digitalizace v Česku. Zpráva vychází z výsledků víc než 50 kontrol, které NKÚ v posledních pěti letech v tomto oboru uskutečnil.

    Ladislav Hagara | Komentářů: 7
    včera 13:55 | IT novinky

    Nadace Wikimedia, která je provozovatelem internetové encyklopedie Wikipedia, oznámila u příležitosti 25. výročí vzniku encyklopedie nové licenční dohody s firmami vyvíjejícími umělou inteligenci (AI). Mezi partnery encyklopedie tak nově patří Microsoft, Amazon a Meta Platforms, ale také start-up Perplexity a francouzská společnost Mistral AI. Wikimedia má podobnou dohodu od roku 2022 také se společností Google ze skupiny

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 02:22 | Nová verze

    D7VK byl vydán ve verzi 1.2. Jedná se o fork DXVK implementující překlad volání Direct3D 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

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

    Byla vydána verze 12.0.0 knihovny libvirt (Wikipedie) zastřešující různé virtualizační technologie a vytvářející jednotné rozhraní pro správu virtuálních strojů. Současně byl ve verzi 12.0.0 vydán související modul pro Python libvirt-python. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    15.1. 19:22 | Humor

    CreepyLink.com je nový zkracovač URL adres, 'díky kterému budou vaše odkazy vypadat tak podezřele, jak je to jen možné'. Například odkaz na abclinuxu.cz tento zkracovač převádí do podoby 'https://netflix.web-safe.link/logger_8oIlgs_free_money.php'. Dle prohlášení autora je CreepyLink alternativou ke zkracovači ShadyURL (repozitář na githubu), který dnes již bohužel není v provozu.

    NUKE GAZA! 🎆 | Komentářů: 3
    15.1. 12:33 | IT novinky

    Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.

    Ladislav Hagara | Komentářů: 3
    15.1. 12:11 | Komunita

    Wikipedie slaví 25. výročí svého založení. Vznikla 15. ledna 2001 jako doplňkový projekt k dnes již neexistující encyklopedii Nupedia. Doména wikipedia.org byla zaregistrována 12. ledna 2001. Zítra proběhne v Praze Večer svobodné kultury, který pořádá spolek Wikimedia ČR.

    Ladislav Hagara | Komentářů: 1
    15.1. 04:44 | Nová verze

    Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 2
    15.1. 02:22 | Nová verze

    Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (5%)
     (0%)
     (9%)
     (19%)
     (3%)
     (6%)
     (3%)
     (11%)
     (42%)
    Celkem 462 hlasů
     Komentářů: 12, poslední 14.1. 21:12
    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: 465×

    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.