Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    101

    [C]format string o similar...

    ciao raga, da poco mi sono messo a programmare per PSP e ho un problemuccio:

    ho questo:
    codice:
    pb[1] = oslLoadImageFile("data/pb1.png", OSL_IN_RAM, OSL_PF_5551);
    pb[2] = oslLoadImageFile("data/pb2.png", OSL_IN_RAM, OSL_PF_5551);
    pb[3] = oslLoadImageFile("data/pb3.png", OSL_IN_RAM, OSL_PF_5551);
    pb[4] = oslLoadImageFile("data/pb4.png", OSL_IN_RAM, OSL_PF_5551);
    ...
    vorrei semplificare il tutto mettendo un ciclo

    codice:
    for(i=0;i<8;i++){
    pb[i] = oslLoadImageFile("data/pb1.png", OSL_IN_RAM, OSL_PF_5551);
    }
    così funziona, ma mi stampa tutte le img uguali, ora ho bisogno di formattare la stringa "data/pb1.png" in modo da avere "data/pb2.png", "data/pb3.png", "data/pb4.png" ecc...

    provando a fare

    codice:
    for(i=0;i<8;i++){
    char string = "data/pb1.png";
    pb[i] = oslLoadImageFile(string, OSL_IN_RAM, OSL_PF_5551);
    }
    nn va, crasha l'applicazione, quindi è da escludere un format string... cos'altro potrei usare?

  2. #2
    Guarda che string, per come l'hai dichiarato, è un singolo carattere, e non una stringa, che è un array di caratteri...
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: [C]format string o similar...

    Infatti ... devi usare un array di caratteri ... ad esempio, senza scomodare altre funzioni ...

    codice:
    char string[13];
    strcpy(string, "data/pb?.png");
    for(i=0;i<8;i++)
    {
       string[7]=(char)(i+'0');
       pb[i] = oslLoadImageFile(string, OSL_IN_RAM, OSL_PF_5551);
    }
    ... ma fai attenzione perche' cosi' le stringhe generate partono da 0 e non da 1 ...
    Del resto questo fatto non e' chiaro da quanto dici, perche' fai l'esempio con la stringa che parte da 1 ma il for lo fai partire da 0 ...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    101
    codice:
    char s1[11];
    strcpy(s1, "data/px.png");
    for(i=1;i<9;i++)
    {
              s1[7]=(char)(i);
    	  p[i] = oslLoadImageFile(s1, OSL_IN_RAM, OSL_PF_5551);
              b[i] = oslLoadImageFile("data/block.png", OSL_IN_RAM, OSL_PF_5551);
    }
    allora, crasha sempre...

  5. #5
    Originariamente inviato da Baly23
    codice:
    char s1[11];
    strcpy(s1, "data/px.png");
    for(i=1;i<9;i++)
    {
              s1[7]=(char)(i+0x30);
    	  p[i] = oslLoadImageFile(s1, OSL_IN_RAM, OSL_PF_5551);
              b[i] = oslLoadImageFile("data/block.png", OSL_IN_RAM, OSL_PF_5551);
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Baly23
    codice:
    char s1[11];
    strcpy(s1, "data/px.png");
    for(i=1;i<9;i++)
    {
              s1[7]=(char)(i);
    	  p[i] = oslLoadImageFile(s1, OSL_IN_RAM, OSL_PF_5551);
              b[i] = oslLoadImageFile("data/block.png", OSL_IN_RAM, OSL_PF_5551);
    }
    allora, crasha sempre...
    No ... questo tuo codice crasha ... quello che ti avevo fornito no ... e' uguale a quello mio?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    101
    niente... ancora nn funziona....

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    La stringa di cui avevamo parlato e' questa

    strcpy(string, "data/pb?.png");

    Perche' l'hai cambiata in questa?

    strcpy(s1, "data/px.png");

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    101
    il mio "niente, ancora nn funziona", era riferito a Mitaly tu hai risposto subito prima, cmq ora provo e ti faccio sapere...

    EDIT: nn funziona comunque, ho provato a mettere sotto commento la parte della sostituzione di parte della stringa, ma crasha in ogni caso...
    ho aggiornato il ciclo, visto che ora anche gli altri, nn li cerca + come p[0]...p[7] ma p[1]...p[8]

    codice:
    char string[13];
    strcpy(string, "data/pb1.png");
    for(i=1;i<9;i++)
    {
    //   string[7]=(char)(i+'0');
       pb[i] = oslLoadImageFile(string, OSL_IN_RAM, OSL_PF_5551);
    }
    questo è il codice senza la sostituzione, cmq come ho gia detto, crasha ugualmente...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    101
    nn mi faceva editare + il post... cmq sono riuscito a farlo funzionare, praticamente crashava xkè nn trovava altri files... quindi.... potete anche chiudere

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.