Compilation qui plante

Signaler
Messages postés
7
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
17 janvier 2012
-
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
Bonjour a tous j'espere que vous pourrez m'aider.... j'ai fouiller le net avant de vous deranger mais pas de solution : alors voila,
je suis sur dev c++ et je ve creer un pti prog en C qui ecri dans un fichier texte une suite de ligne de texte avec des variables dedans, mais a la compile, jj'ai ce message

Invalid argument
Id returned 1 exit status

et mon code,

#include<stdio.h>
main()

{
 int i=0,j=0,stop;
 FILE * X;
 X=fopen("script.txt", "w");
 for (i=0;i<117;i++)
    { for (j=0;j<52;j++)
         {
          fprintf (X,"INSERT INTO `chaos_dimensions`.`batiment` (`id` ,`batiment` ,`posx` ,`posy` ) VALUES ( '', 'water', '%d', '%d');",i,j);
         }}
getch();       
}

visiblement c'est le printf qui foire mais pourquoi ?
si vous pouvez m'aidez, merci d'avance

4 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Ta fonction main ne retourne rien...
void main()
{
...
Messages postés
7
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
17 janvier 2012

Merci a vous

Bon alors j'ai passé mon main en void main ()
jai essayé en int main()  avec un return 1 ;    a la fin, mais ça marce pas.....toujours le meme message.
Aprés avec les ", c'est pour quels cottes ?   parce que il y a

'    touche 4 ne change rien
`   touche 7 [Warning] unknown escape sequence '\`'
"   touche 3  si sur le premier : stray '\' in program      et sur les deux la meme chose , mais ya plus de double cotte fermantes et bug....

Une autre solution ?
tout ce que je veux c faire variée les valeur dans les pour et ecrire le texte avec les valeur de i et j dans un fichier texte .....
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
Chez moi ca compile sans pb..:
int main(void)
{
int i, j;
FILE* pFile;
pFile = fopen("script.txt", "w");
for(i=0; i<117; i++)
for (j=0; j<52; j++)
{
fprintf(pFile, "INSERT INTO `chaos_dimensions`.`batiment` (`id` ,`batiment` ,`posx` ,`posy` ) VALUES ( '', 'water', '%d', '%d');\n", i, j);
}
fclose(pFile);
return 0;
}

Neo_Fr
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Salut,

Pour commencer tu dois toujours verifier le retour des fonctions utilisées sinon a quoi bon.
Deuxième choses, on désalloue systématiquement tous les pointeur en fn de traintement.

Donc :

FILE * pFile;
pFile = fopen("c:\\script.txt", "w+t");
/*......*/
if(!pFile) return -1; //On suppose que ta fonction main est déclaré int main()
/*......*/
fprintf(...);
/*......*/
fclose(pFile);

Il est peut etre aussi utile de rappeler que la fonction main() est de type int par défaut.

Shell