char blabla[50];
void main()
{
FILE *fichier;
fichier = fopen("NomDuFichier.txt","w");
fprintf(fichier,"score : %d", score);
blabla==("NomDuFichier.txt");
fclose(fichier);
printf ( "%c", blabla);
}
voila j´ai essayé ça, la chaine de caractere stock ce qu´il y a dans le fichier, pour pouvoir l´afficher dans le programme.
mais je galere avec les chaines de caracteres et ça ne fonctionne pas. Pouriez pas m´aidez svp.
Oula
Je crois que tu n´as pas encore assez d´expérience dans le domaine du C pour te lancer dans la manipulation de fichiers.
blabla==("NomDuFichier.txt"); c´est n´importe quoi et la routine que je t´ai donné écrit dans un fichier, mains ne sert pas à lire dedans.
Relis les bases du langage avant de fiare difficile ![]()
oui je connais les bases j´ai essayé ça sans trop y croire car je ne sais pas encore manipuler les fichiers.
C´est en essayant qu´on apprend ![]()
Au fait tu connait pas des sites d´aide en programmation en C. Parcequ´a chaque foi que j´ai un prob je tombe sur des trucs hyper complexes alors que la commande que je chercher est toute bete.
je croit avoir trouver! il faut utiliser fgetc()
regarde j´ai trouver un site qui explique toute ( je croit) les commandes.
http://www.lri.fr/~aze/page_c/aide_c/
j´ai trouver!!!!!!
char msg[20];
void main()
{
FILE *fichier;
fichier= fopen ( "NomDuFichier.dat","w+");
fprintf ( fichier,"score:%d", score);
fseek( fichier, 0, SEEK_SET);
fgets ( msg, sizeof(msg), fichier);
printf ( "%s", msg);
fclose ( fichier);
}
voila c´etait pas si complexe
merci lag-it j´y aurai pas reussit sans ton aide. Dommage que ce forum est tres peu fréquenté.
bizarrement ça fonctionne uniquement avec un fichier dat.
j´adore les monologues ![]()
![]()
salut, on aprend c++ a l´ecole et a la maison jmamuse a faire des petit jeux en c++ ( genre: pong,pacman et snake
) .
alors je me demandais si ya pas moyin de jouer un mp3 ?
et c´est qoui la commande est dans quele bib sa se trouve?
merci ![]()
![]()
Salut moi et un pote on a creer un programme en C quant on le compile ca nous met aucune erreur mais quant on l´execute ça nous met bush error et on ne voit pas pourquoi est ce que qu´elqu´un pourrait nous aider
merci d´avance
mets ton code ici.
ok voila
int T=2;
void inittab(int *** tab)
{
int i,j;
*tab = malloc(N * sizeof ( *tab)[0]);
assert(*tab);
for(i=0;i < N;i++)
{
( *tab)[i] = malloc(N * sizeof ( *tab)[0][0]);
assert((*tab)[i]);
for(j=0;j < M;j++)
(*tab)[i][j] = N*i+j;
}
}
void printtab(int ** tab)
{
int i,j;
printf("********************** Init Affichage ********************\n\n");
printf("F :Foret C :Chateau M :Montagne $ :Personnage O :Objet\n\n\n");
for(i=0;i < N;i++)
{
for(j=0;j < M;j++)
{
if((i == 0) || ( i == 1))
printf("%5c",70);
else
if((j == 0) || ( j == 1))
printf("%5c",77);
else
if((j == 9) || ( j == 10))
printf("%5c",67);
else
if((tab[i][j] == 22) || ( tab[i][j] == 88))
printf("%5c",79);
else
if(tab[i][j] == 65)
printf("%5c",36);
else
printf("%5c",35);
}
printf("\n");
}
}
/ * void freetab(int ** tab)
{
int i,j;
for(i = ( N - 1);i > 0;i--)
{
for(j = ( M - 1);j > 0;j--)
free(tab[i][j]);
}
free(tab);
}
void swapH(int ** tab)
{
int i,j,tmp;
printf("***** Action : Monter *****\n\n\n");
for(i = 0;i < N;i++)
for(j = 0;j < M;j++)
{
if(tab[i][j] == 65)
{
if((i - 1) < 2)
printf("Vous ne pouvez monter puisqu´il y a la Foret\n");
else
if((tab[i - 1][j] == 22) || ( tab[i - 1][j] == 88))
printf("Vous ne pouvez monter puisqu´il ya un objet qui vous gene\n");
else
{
tmp = tab[i][j];
tab[i][j] = tab[i - 1][j];
tab[i - 1][j] = tmp;
}
}
}
}
void swapB(int ** tab)
{
int i,j,tmp;
printf("***** Action : Descendre *****\n\n\n");
for(i = ( N - 1);i > 0;i--)
for(j = ( M - 1);j > 0;j--)
{
if(tab[i][j] == 65)
{
if((i + 1) > ( N - 1))
printf("Vous ne pouvez descendre sinon vous sortez de la MAP\n");
else
if((tab[i + 1][j] == 22) || ( tab[i + 1][j] == 88))
printf("Vous ne pouvez descendre puisqu´il y a un objet qui vous gene\n");
else
{
tmp = tab[i][j];
tab[i][j] = tab[i + 1][j];
tab[i + 1][j] = tmp;
}
}
}
}
void swapG(int ** tab)
{
int i,j,tmp;
printf("***** Action : Gauche *****\n\n\n");
for(i = 0;i < N;i++)
for(j = 0;j < M;j++)
{
if(tab[i][j] == 65)
{
if((j - 1) < 2)
printf("Vous ne pouvez aller vers la gauche puisqu´il y a la Montagne\n");
else
if((tab[i][j - 1] == 22) || ( tab[i][j - 1] == 88))
printf("Vous ne pouvez aller vers la gauche puisqu´il y a un objet qui vous gene\n");
else
{
tmp = tab[i][j];
tab[i][j] = tab[i][j - 1];
tab[i][j - 1] = tmp;
}
}
}
}
void swapD(int ** tab)
{
int i,j,tmp;
printf("***** Action : Droite *****\n\n\n");
for(i = ( N - 1);i > 0;i--)
for(j = ( M - 1);j > 0;j--)
{
if(tab[i][j] == 65)
{
if((j + 1) > 8)
printf("Vous ne pouvez aller vers la droite puisqu´il y a le Chateau\n");
else
if((tab[i][j + 1] == 22) || ( tab[i][j + 1] == 88))
printf("Vous ne pouvez aller vers la droite puisqu´il y a un objet qui vous gene\n");
else
{
tmp = tab[i][j];
tab[i][j] = tab[i][j + 1];
tab[i][j + 1] = tmp;
}
}
}
}
void take(int ** tab)
{
int i,j;
printf("***** Action : Prendre un Objet\n\n\n");
for(i = 0;i < N;i++)
for(j = 0;j < M;j++)
{
if(tab[i][j] == 65)
{
if((tab[i - 1][j] == 22) || ( tab[i - 1][j] == 88))
{
tab[i - 1][j]=-1;
T=T - 1;
}
else
if
((tab[i + 1][j] == 22) || ( tab[i + 1][j] == 88))
{
tab[i + 1][j]=-1;
T=T - 1;
}
else
if((tab[i][j - 1] == 22) || ( tab[i][j - 1] == 88))
{
tab[i][j - 1]=-1;
T=T - 1;
}
else
if((tab[i][j + 1] == 22) || ( tab[i][j + 1] == 88))
{
tab[i][j + 1]=-1;
T=T - 1;
}
else
printf("Vous ne pouvez prendre d´objet puisqu´il y en a pas a proximite de vous\n");
}
}
}
void poser(int ** tab)
{
int i,j;
char c,reste;
printf("***** Action : Deposer un Objet\n\n\n");
for(i = 0;i < N;i++)
for(j = 0;j < M;j++)
{
if(tab[i][j] == 65)
{
if(T == 2)
{
printf("Vous ne pouvez pas deposer un Objet puisque vous n´en avez pas pris\n");
}
else
{
printf("cmd : " );
reste = c = getchar();
while(reste == ´\n´)
{
switch(c)
{
case ´h´:
tab[i -1][j] = 88;
T=T + 1;
break;
case ´b´:
tab[i + 1][j] = 88;
T=T + 1;
break;
case ´g´:
tab[i][j - 1] = 88;
T=T + 1;
break;
case ´d´:
tab[i][j - 1] = 88;
T=T + 1;
break;
default:
printf("h : au-dessus -- b : en-dessous -- g: a gauche -- d : a droite\n");
break;
}
printf("cmd : " );
reste = getchar();
}
}
}
}
}
int main(void)
{
char c,reste;
int ** tab = NULL;
inittab(&);
while(1)
{
printtab(tab);
printf("cmd : " );
reste = c = getchar();
while(reste ! = ´\n´)
reste = getchar();
switch(c)
{
case ´h´:
swapH(tab);
break;
case ´b´:
swapB(tab);
break;
case ´g´:
swapG(tab);
break;
case ´d´:
swapD(tab);
break;
case ´t´ :
take(tab);
break;
case ´p´:
poser(tab);
break;
case ´m´:
printf("h : monter le curseur\n");
printf("b : descendre le curseur\n");
printf("g : deplacer le curseur vers la gauche\n");
printf("d : deplacer le curseur vers la droite\n");
printf("t : prendre -- p: poser un objet\n");
printf("m : afficher l´aide\n");
printf("q : quitter le programme\n\n");
break;
case ´q´:
/ *freetab(tab);*/
exit(0);
default:
printf("La commande ´m´ permet d´obtenir l´aide\n\n\n");
break;
}
}
return 0;
}
tu aurais pas un problème de type sur la fonction malloc ? mon compilo me dit que malloc renvoie un void et non un int. Tu me dira que malloc est normallement typé sur son argument... peut-être qu´il y a trop de pointeur. Je sais pas, faudrait demander à quelqu´un qui est bon en C++, moi je fais semblant.
Pour le type de retour de malloc, l´emploi d´un transtypage dépends de la norme supportée par ton compilateur.
Rajoute :
( int*)malloc(...);
Si tu recois un warning...
Bonjour tlm !
Voila, je débute en C, j´ai déjà fait de petit programme sympa ( QCM, calendrier,...) et j´ai juste une petite question basique: j´aimerais pouvoir rentrer une phrase ( scanf), ou une suite de mot, pour la mémoriser et la resortir ( printf) plus tard, est-ce faisable ?
Comment entrer une suite de caractères svp ?
C´est trop dur ce que je demande ? ![]()
Bordel relaxez bon sang...
C´est pas comme si on passait tout notre temps ici...
pfff l´impatience...
T´avais même pas attendu une heure!
Bon...
" j´aimerais pouvoir rentrer une phrase ( scanf), ou une suite de mot, pour la mémoriser et la resortir ( printf) plus tard, est-ce faisable ? "
Demon point de vue, la réponse semble évidente. Mais faut me placer au moment ou je détutais... mmmm... m´enfin oui, c´est une pas trop mauvaise question...
T´as qu´à scanf-er une phrase dans un tableau de caractères ( une chaine de caractères) puis de le passer à printf plus tard, tout simplement.
Exemple en C/C++:
/ /Directives, code et données quelconques...
int main()
{
char Phrase[256];
memset((void*)Phrase,0,256);
/ * code quelconque avant... */
printf("Entrez votre phrase ( 255 lettres maximum) :\n");
scanf("%s", Phrase);
/ * code quelconque après... */
printf("Votre phrase était: %s", Phrase);
return 0;
}
Voilà!
Kelios
---------
Ok, merci Kelio
Dsl, j´étais pressé...
J´essaie et je te redis, merci !