begin process at 2012 05 29 22:20:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Probleme strcat et itoa :(


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme strcat et itoa :(

mercredi 14 mars 2007 à 11:14:00 | Probleme strcat et itoa :(

billut

Bonjour a tous,
voila je débute en C et j'ai quelques problemes avec la fonction itoa,
je vous explique vite fait : je souhaite charger des images les unes apres les autres et leur faire un traitement, pour cela j'utilise la boucle "for".
Voici mon code, vous comprendrez mieux :

[code]
for (i=1; i<=15; i++)
    {
    itoa(i, car, 10);
   
    image = strcat("image", car);
    total = strcat(image, ".jpg");

    imageDeFond = IMG_Load(total); 
   
    SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);

//--------------- Chargement et blittage de reproduc_interdites sur la scène ----------
    reproduc_interdites = IMG_Load("reproduc_interdites.bmp");
   
//--------------- On rend la couleur (255,255,255) transparente -----------------------
    SDL_SetColorKey(reproduc_interdites, SDL_SRCCOLORKEY, SDL_MapRGB(reproduc_interdites->format, 255, 255, 255));

//--------------- Transparence Alpha moyenne (128) ------------------------------------
    SDL_SetAlpha(reproduc_interdites, SDL_SRCALPHA, 150);
    SDL_BlitSurface(reproduc_interdites, NULL, ecran, &positionTransparence);

//--------------- On refresh le tout --------------------------------------------------   
    SDL_Flip(ecran);
   
    resultat = strcat("z", total);

//------------------ Enregistrement de l'image ----------------------------------------
    SDL_SaveBMP (ecran, resultat);
   
}

[/code]
mercredi 14 mars 2007 à 11:16:22 | Re : Probleme strcat et itoa :(

billut

oups, jai fais une mauvaise manip dsl...
Il n'y a pas d'onglet pour insérer du code ?

En tout cas Merci d'avance a tous...
mercredi 14 mars 2007 à 11:36:55 | Re : Probleme strcat et itoa :(

racpp

Administrateur CodeS-SourceS
Salut,
image = strcat("image", car);
resultat = strcat("z", total);

Attention: Le premier paramère de strcat() doit être un buffer ayant suffisamment de place pour contenir les caractères à ajouter avec le 0 final.
Dans ton code, on ne voit pas la déclaration de image et de car. Ca nous permettra de voir s'ils sont correctement déclarés.
mercredi 14 mars 2007 à 13:43:40 | Re : Probleme strcat et itoa :(

billut

Re bonjour, voici mon code au complet si ca peut vous aider, un buffer est un tableau c'est ca ?


#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <time.h>
#include <SDL/SDL_TTF.h>



int main(int argc, char *argv[])
{
    SDL_Surface *ecran = NULL, *imageDeFond = NULL, *reproduc_interdites = NULL;
    SDL_Rect positionFond, positionTransparence;

    positionFond.x = 0;
    positionFond.y = 0;
    positionTransparence.x = 10;
    positionTransparence.y = 425;

    SDL_Init(SDL_INIT_VIDEO);

    ecran = SDL_SetVideoMode(330, 480, 32, SDL_HWSURFACE);
    SDL_WM_SetCaption("Chargement d'images en SDL", NULL);

    int i = 1;
    char car[3];
    char image[12];
    char total[12];
    char resultat[12];

    for (i=1; i<=15; i++)
    {
   
    itoa(i, car, 10);
   
    image = strcat("image", car);
    total = strcat(image, ".jpg");

    imageDeFond = IMG_Load(total);
   
    SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);

//--------------- Chargement et blittage de reproduc_interdites sur la scène ----------
    reproduc_interdites = IMG_Load("reproduc_interdites.bmp");
   
//--------------- On rend la couleur (255,255,255) transparente -----------------------
  SDL_SetColorKey(reproduc_interdites, SDL_SRCCOLORKEY,  
  SDL_MapRGB(reproduc_interdites->format, 255, 255, 255));

//--------------- Transparence Alpha moyenne (128) ------------------------------------
    SDL_SetAlpha(reproduc_interdites, SDL_SRCALPHA, 150);
    SDL_BlitSurface(reproduc_interdites, NULL, ecran, &positionTransparence);

//--------------- On refresh le tout --------------------------------------------------   
    SDL_Flip(ecran);

    resultat = strcat("z", total);


//------------------ Enregistrement de l'image ----------------------------------------
    SDL_SaveBMP (ecran, resultat); 
}
   

//------------------ Pression de touche pour continuer ---------------------------------
    system("PAUSE");
      
    SDL_FreeSurface(imageDeFond);
    SDL_FreeSurface(reproduc_interdites);
    SDL_Quit();

    return EXIT_SUCCESS;
}



Merci bien...
mercredi 14 mars 2007 à 15:01:41 | Re : Probleme strcat et itoa :(

billut

L'erreur renvoyée est : "incompatible types in assignment of `char*' to `char[12]' "
je vois pas trop en fait ...
mercredi 14 mars 2007 à 18:07:49 | Re : Probleme strcat et itoa :(

racpp

Administrateur CodeS-SourceS
Oui ici le buffer est un tableau de char. Il faudra enlever les guillemets dans le premier appel de strcat():
    image = strcat(image, car);

Attention:
resultat = strcat("z", total); on ne peut pas donner comme premier paramètre une chaine écrite directement. Il faut utiliser un buffer comme expliqué dans mon message précédent.


jeudi 15 mars 2007 à 08:00:48 | Re : Probleme strcat et itoa :(

billut

Je te remercie, je vais tester et vous tiens au courant...
Merci ^^
++
jeudi 15 mars 2007 à 09:07:55 | Re : Probleme strcat et itoa :(

billut

Re,
Jai mis ca :

    char car[3];
    char image[12];
    char total[12];
    char resultat[12];
    char lettreZ[] = "z";

    char image2[] = "image";

    itoa(i, car, 10);
   
    image = strcat(image2, car);
    total = strcat(image, ".jpg");


                ( ... )

    resultat = strcat(lettreZ, total);


 et ca me donne toujours la meme erreur sur les 3 lignes en rouge...
  Merci bien.

ps : dsl de mon incompétence, mais je débute...
jeudi 15 mars 2007 à 09:48:29 | Re : Probleme strcat et itoa :(

magma

Réponse acceptée !

   





int i;
char total[16];

for(i=1; i<=15; i++)
{
  sprintf(total, "image%02d.jpg", i);    
  imageDeFond = IMG_Load(total);

  ...
}

jeudi 15 mars 2007 à 10:22:06 | Re : Probleme strcat et itoa :(

billut

ahh ! merci bien, ca fonctionne , quoi ... ce que tu ma donné fonctionne, mon logiciel non..mdr, ca me charge et m'enregistre les images, mais les images sont noires, il n'apparait que la seconde image "reproduct_interdites" et non la 1ere..
mais bon je vais essayer de voir..
en tout cas merci !

1 2

Cette discussion est classée dans : strcat, sdl, itoa, reproduc, interdites


Répondre à ce message

Sujets en rapport avec ce message

problème SDL [ par Synhok ] J'ai essayer le tut sur la librairie SDL et quand je compile avec DevC++, le linker me marque :C:\...\BIN\ld.exe: cannot open -lSDLmain: No such file Texte & SDL en mode Video [ par Gaelle ] Bonjour à tous,Je suis en train d'interfacer une application C à l'aide de SDL. Pour ce qui est de la gestion vidéo et évènements souris aucun problèm PROBLEME DE CONCATENATION [ par 24Karas ] PROBLEME DE CONCATENATION------------------------probleme :Je veux concaténer 2 chaines mais ça foireà l'exécution. Si vous savez pourquoi dîtes le mo help debutant [ par djstache ] voila j'éssaye de faire un petit pscript de cryptage/décryptage mais il ne marche pas et je sèche complètement.merci d'avance de votre aide.script:/** librairie SDL et coonio.h [ par gloom ] salut peuple svp qq1 opurrait t'il m'aider voila je cherche a afficher une photo sous console DOS pour cela je sait qu'il ¸faute une librairie SDL mai Strcat avec un chiffre entier [ par Athanor ] Je voudrais concaténer une chaine avec un nombre entier, je sais bien questrcat(nomchaine, 123);ne marche pas, mais même en transformant mon chiffre e Problème de code en c++ (fonction itoa) [ par mimyne ] voila g le code suivant:void Resultat_Clicked(Object* pSender, EventArgs* pArgs){ int operation = 5; char* chaine[2]; if (pSender == Btnres) { { ito Problème avec un strcat [ par kalf2000 ] salut, g un blem, le code suivant me génère une erreur au dernier strcat. file est censé être egal a 87248364_48.bmpcomprend pas pourkoiCString ext; c fonction itoa [ par pretorien2048 ] Hello,Je débute en C++J'essaye d'utiliser la fonction iota en incluant stddlib, mais le compilateur me répond 'itoa' undeclared (first use this functi Multi strcat ? [ par xionoxid ] char a[10];char b[10];char com[80]= "mkdir c:\\";cin >> a;cin >> b;strcat(com,a);strcat(com,b);system(com);Est ce que c'est possible de faire strcat(


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales