Langage C - var de type char
Résolu
kaham
Messages postés
194
Statut
Membre
-
kaham Messages postés 194 Statut Membre -
kaham Messages postés 194 Statut Membre -
Bonjour,
je début en langage C et je suis face à un souci avec une var de type char. Je vous explique mon problème :
Voici mon code :
Quand je compile ce code j'ai:
La console ne veux pas m'afficher le mot fraise complètement. J'ai chercher des tutos pour voir si la commande "%c" fais bien appel aux variables de type char mais sans résultat.
Pouvez-vous m'aider?
je début en langage C et je suis face à un souci avec une var de type char. Je vous explique mon problème :
Voici mon code :
int main(int argc, char *argv[])
{
//=========================
//declaration des variables
//=========================
char gout, fruit;
//Starter menu
scanf("%c", &gout);
printf("\nvotre gout prefere est : %c", gout);
return 0;
}
Quand je compile ce code j'ai:
fraise votre gout prefere est : f
La console ne veux pas m'afficher le mot fraise complètement. J'ai chercher des tutos pour voir si la commande "%c" fais bien appel aux variables de type char mais sans résultat.
Pouvez-vous m'aider?
A voir également:
- Langage C - var de type char
- Langage ascii - Guide
- Langage binaire - Guide
- Clear type - Guide
- Type de ram - Guide
- Comment changer le type de fichier - Guide
5 réponses
Bonjour
Pas la peine d'essayer le programme de Shadow
Le type string n'existe pas en C standard. Même pas en faisant include <string.h>
de plus, un scanf ("%ld",&gout) pour lire un string alors que %ld est fait pour lire les entiers longs...
remarque que :
- gout est un tableau ([100]) de caractères, et non pas un seul caractère
- on utilise gets plutôt que scanf("%s"..) pour lire gout, parce que scanf s'arrête au premier séparateur (espace, fin de ligne..) rencontré . Si on tape "citron vert", gets lira "citron vert" alors que scanf ne lira que "citron"
Pas la peine d'essayer le programme de Shadow
Le type string n'existe pas en C standard. Même pas en faisant include <string.h>
de plus, un scanf ("%ld",&gout) pour lire un string alors que %ld est fait pour lire les entiers longs...
#includes <stdio.h>
int main(int argc, char *argv[])
{
//=========================
//declaration des variables
//=========================
char gout[100];
//Starter menu
gets( gout);
printf("\nvotre gout prefere est : %s", gout);
return 0;
}
remarque que :
- gout est un tableau ([100]) de caractères, et non pas un seul caractère
- on utilise gets plutôt que scanf("%s"..) pour lire gout, parce que scanf s'arrête au premier séparateur (espace, fin de ligne..) rencontré . Si on tape "citron vert", gets lira "citron vert" alors que scanf ne lira que "citron"
Salut
%c c'est pour un seul caractère.
T'as cherché? Ben t'as pas dû chercher beaucoup... scanf Wikipedia
A plus
scanf("%s", &gout);
printf("\nvotre gout prefere est : %s", gout);
%c c'est pour un seul caractère.
T'as cherché? Ben t'as pas dû chercher beaucoup... scanf Wikipedia
A plus
Salut, essaye avec les valeurs types "string"
ça donne ça:
Mais tu n'utilises pas "fruit". Pourquoi l'as-tu définie?
A+
ça donne ça:
#include <string.h>
int main(int argc, char *argv[])
{
//=========================
//declaration des variables
//=========================
string gout;
//Starter menu
scanf("%ld", &gout);
printf("\nvotre gout prefere est : %ld", gout);
printf("\n\n"); // sauter des lignes
system("pause"); // attendre que l'utilisateur appuie sur une touche
return 0;
}
Mais tu n'utilises pas "fruit". Pourquoi l'as-tu définie?
A+
Salut, le père.
Je l'ai fait en C++ ça marche très bien hors mis les espaces :
Il peut bien faire un projet en C++.
Je l'ai fait en C++ ça marche très bien hors mis les espaces :
#include <cstdlib>
#include <iostream>
using namespace std;
//=============
//déclaration des strings
//=============
string gout;
int main(int argc, char *argv[])
{
//Starter menu
system("TITLE Fruit");
cin >> gout;
cout << "Votre gout prefere est: " << gout << ".\n\n";
system("pause");
return EXIT_SUCCESS;
}
Il peut bien faire un projet en C++.
Bonjour,
Euh bah... non.
Déjà cela ne respecte pas ses objectifs à savoir découvrir le C. Aussi cela ne sert vraiment à rien de le faire en C++ si on est seulement en train d'apprendre ce qu'est un char * en C.
Et je me permettrais d'ajouter que ton programme n'est pas standard.
La réponse précédente me parait donc plus adéquate à savoir qu'une chaîne de caractère est une suite de caractères généralement terminée par le caractère '\0'.
CCM : Les strings en C
(Informations plutôt incomplètes... ne parle même pas du "bonjour")
M.
Euh bah... non.
Déjà cela ne respecte pas ses objectifs à savoir découvrir le C. Aussi cela ne sert vraiment à rien de le faire en C++ si on est seulement en train d'apprendre ce qu'est un char * en C.
Et je me permettrais d'ajouter que ton programme n'est pas standard.
La réponse précédente me parait donc plus adéquate à savoir qu'une chaîne de caractère est une suite de caractères généralement terminée par le caractère '\0'.
CCM : Les strings en C
(Informations plutôt incomplètes... ne parle même pas du "bonjour")
M.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question