Stránka 1 z 1

nacitani obrazků v C

Napsal: 26 bře 2011 11:04
od kamikaze.suicide
zdravim,
nejsem zkuseny programator, tak se omlouvam pokud je to blbost...
mam 100 obrazků, ktere chci nacist.
obrazky maji jmeno "vlna001.png, vlna002.png, vlna003.png ... az vlna100.png"
tak me napadlo jestli nejak jde udelat aby misto toho cisla na konci nazvu dat promenou "i" ve ktera se bude postupne pricitat jednicka ve for cyklu, abych nemusel nacitat kazdy obrazek zvlast...
tak jestli byste mi mohli napsat kus zdrojaku, ktery to dokaze provest... :blush:
pouzivam SDL knihovny...

nebo proste jestli ma nekdo lepsi napad jak nacist naraz vsech 100 obrazku.. tak sem s nim.. :bigups:

diky moc...

Re: nacitani obrazků v C

Napsal: 26 bře 2011 11:39
od General
Pokud sem dobře pochopil tak chceš:

Kód: Vybrat vše

for (int i = 1; i < 100; i++)
{
    std::string s = ""; //to bdue strign z cestou
    std::ostringstream oss; //pro převod int na string
    oss << i;
    s.append("vlna").append(oss.str()).append(".png"); //s bude číslo proměnný i a novej řádek
    cout << s << endl; //teď to vypíšeme, ty proměnnou "s" použiješ jako cestu
}

Je to C++.

Re: nacitani obrazků v C

Napsal: 26 bře 2011 12:03
od kamikaze.suicide
jsem zacatecnik, tak tohle uz je na me trochu slozitejsi.. :D
takze treba takto?

Kód: Vybrat vše

for (int i = 1; i < 100; i++)
{
    string s = "C:\Users\Kamikaze\Documents\test";
    std::ostringstream oss;
    oss << i;
    s.append("vlna").append(oss.str()).append(".png");
    cout << s << endl;
}

ten posledni radek jsem moc nepochopil..

Re: nacitani obrazků v C

Napsal: 26 bře 2011 12:17
od General
Mno já sem taky začátečník. Sorry, okomentoval sem to a ten kód pak předělal takže to neni dobře popsaný :-D Ještě musíš escapovat

Kód: Vybrat vše

string s = "C:\\Users\\Kamikaze\Documents\\test\\";

Cout vypíše proměnnou "s", ty tam ten výpis nebudeš mít ale jak načítáš teď tak do tý funkce jako cestu dosadíš proměnnou "s".

Re: nacitani obrazků v C

Napsal: 26 bře 2011 19:30
od faraon
Podle nadpisu bych hádal že to chceš v C, ale příklad je v C++, tak přikládám ještě Céčkovou verzi:

Kód: Vybrat vše

# include <stdio.h>
# include <string.h>

int main (void)
    {
    char zacatek[]={"C:\\Users\\Kamikaze\\Documents\\test\\vlna"},
         cislo[4],
         konec[]={".png"},
         komplet[256];
    int i;

    for (i=1;i<=100;++i)
        {
        sprintf(cislo,"%03d",i);
        komplet[0]='\0';
        strcat(komplet,zacatek);
        strcat(komplet,cislo);
        strcat(komplet,konec);
        /* teď můžeš pracovat s kompletním řetězcem v proměnné komplet */
        printf("%s\n",komplet);    /* například ho vypsat na obrazovku */
        }


    return 0 ;
    }


Ten řádek
s.append("vlna").append(oss.str()).append(".png");
mi připomíná jak se to dělalo v BASICu:
s$=s$+"vlna"+str$(i)+".png"
:-D
Akorát si říkám, nemělo tam být oss.str(i), a nebude to vypisovat jen samotné číslo bez nul před ním? Místo vlna001.png by tam bylo vlna1.png! C++ neovládám, takže nevím jestli tam jde zadat parametr jako je to %03d v Céčku.