Anubis

Grade : Nouveau venu
Inscrit le: 10 Jan 2008, 14:43
|
| Ecrit le: 10 Jan 2008, 16:14 Message non corrigé | |
|
Bonjour, je suis nouveau. J'utilise CodeBlocks et quand je creer un nouveau projet et que je modifi le main.c, j'obtien un message en bas, le voici:
http://img185.imageshack.us/img185/7750/prblmav0.th.jpg
Et sa a chaque fois et je ne comprends pas. Sinon je peu toujours l'utiliser sur mon PC portable et là sa fonctione. Et mon 2e probléme c'est que, j'aimerais qu'avec "scanf" ont puisse se souvenir d'un nom. Par exemple:
long nom;
printf("Saisissez votre nom.\n")
scanf("%f", &nom
printf("Bonjour %d.\n")
Et j'obtien tout le temps "bonjour 2293620", et quand je remplace %d par %f j'obtient "bonjour 000000", donc voilà j'espere que vous pourrez m'aider, je vous en remerci d'avance.
________ @NuBi$rONEr
|
|
David

Grade : Expert
Inscrit le: 11 Mai 2005, 20:30
|
| Ecrit le: 10 Jan 2008, 20:33 Message non corrigé | |
|
Pour l'érreur de compilation, tu fait bien de le dire. En fait, il faut ajouter un retour à la ligne tout à la fin du code source.
Pour le scanf avec le nom, c'est un peu compliqué. On en est pas encore là.
Mais c'est bien poser la question, j'vais essayer de repondre clairement.
Mémoriser un caractere dans une variable
Pour l'instant, nous avons vu qu'il existe différent type de variables pour stocker des nombres de tailles différentes.
Maintenant, il va faloir me faire confience, ça fait bizzard mais... un caractère est un nombre entier.
D'ailleurs, un caractère est un petit nombre entier : un octets suffit.
En regardant le tableau des types de variables existants, on vois que pour déclarer un variable d'un octet on utilise le type char.
Pour déclarer une variable qui pourrait contenir un caractère, on ferra :
char caractere;
... de la même façon qu'on faisait
int nombre;
Pour l'afficher, on ferra
printf("%c", caractère);
Voici un petit code pour comprendre :
#include <stdio.h>
#include <stdlib.h>
int main()
{
char caractere; // un octet
scanf("%d", &caractere); // On initialise l'octet (à 97 par exemple)
printf("%c", caractere); // On l'affiche en temps que caractère
return 0;
}
Quand tu testera ce code, commence par initialiser caractere à 97. Il s'agit du caractère 'a'.
97
a
97 -> a
98 -> b
99 -> c
...
Sache quand même que ce n'est pas une utilisation "normale" ; mais c'est pour bien comprendre.
Si tu veux récupérer un caractère au lieu d'un nombre, tu peux faire :
scanf("%c", &caractere);
a
a
Mémoriser un mot
En C, la mémorisation d'un mot est assez compliqué. En effet, il n'existe pas de type permétant de mémoriser un mot. Il va faloir déclarer un tableau de caractère (plusieurs variables de type char côte à côte).
Et on mémorisera chaque caractère du mot dans une variable différente de ce tableau.
Pour déclarer un tableau de caractère, on fait comme ceci :
char tableauDeCaractere[100]; // 100 variables de type char (tableau de 100 char)
Ensuite, pour récupérer un mot, il faut faire :
scanf("%s", tableauDeCaractere);
Non, je n'ai pas oublié le '&'. Cette fois c'est normal. On vera pourquoi plus tard.
Et pour l'affichage, c'est comme ça :
print("%s", tableauDeCaractere);
Voici ce que tu aurrais sans doute fait si tu avais eu ces expliquations :
#include <stdio.h>
#include <stdlib.h>
int main()
{
char tableauDeCaracteres[100]; // On prépart 100 caractères
printf("Saisissez votre nom : ");
scanf("%s", tableauDeCaracteres); // On récupère le prénom
printf("Bonjour %s.\n", tableauDeCaracteres); // Et on affiche
return 0;
}
J'ai passé sous silence pas mal de petites choses auquel il faut théoriquement faire attention. J'ai surtout cherché à expliquer simplement. Ca peut paraitre un peu bidouille, j'avou. Pourtant, c'est comme cas que l'on fait en C.
En C++, il existe l'objet string. C'est beaucoup plus propre. L'équivalent en C++ serait :
#include <iostream>
using namespace std;
int main()
{
string nom; // On prévois de réserver de la place pour le nom
cout << "Saisissez votre nom : ";
cin >> nom; // On récupère le nom
cout << "Bonjour " << nom << "." << std::endl;
return 0;
}
Et puis finalement, tu vera que pour les jeux on ne s'en sert pas telement.
PS : Je tien à te féliciter pour ton premier poste. Expliquation claire et en image, le problème peu être résolu beaucoup plus facilement. Prenez en de la graine les autres.
________ Apprenez à créer votre propre FPS en C++ avec OpenGL. C'est pas dur ! :-)
|
|
Anubis

Grade : Nouveau venu
Inscrit le: 10 Jan 2008, 14:43
|
| Ecrit le: 10 Jan 2008, 22:19 Message non corrigé | |
|
haaa super, merci beaucoup, sa fonctionne a merveille et je tenais a te féliciter pour tout se que tu fait et apprends aux autres, se n'est pas rien. J'ai toujours voulu apprendre la programation mais souvent les personnes qui faisaient des tuto étaient mal expliqués ou ils balancaient tout comme sa de but en blanc. Enfin bref toutes mes félicitations encore et merci pour tout
________ @NuBi$rONEr
|
|