CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Variable de type char

adrien89
adrien89
Niveau 10
24 juillet 2005 à 01:40:50

Salut à tous!
Voila je debute tout juste et je rencontre un petit probleme concernant la maniere de definir une variable de type char.
Mon code est le suivant:

  1. include < iostream.h>

int main()
{
char variable;
variable=´coucou´;

cout < < variable;
}

JE veux simplement afficher la variable de type texte:

Mais il me renvoi une erreur:
character constant too long for its type

Si quelqu´un peut m´aider!
merci :)

Chaos_Clad
Chaos_Clad
Niveau 10
24 juillet 2005 à 01:48:49

Un char ne peut contenir qu´un seul caractère, si tu veux y stocker une chaîne de caractères, il faut que tu crées un tableau :

char Array[6];
Array = " coucou";

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
24 juillet 2005 à 01:48:52

Alors c´est normal, tu déclares un " char variable;" ce qui siginifie que tu réserves de l´espace en mémoire pour UN seul caractère.
Donc tu peux par exemple faire :

char variable;
variable = " A";

Toi, tu déclares un seul, et tu places plusieurs char dedans, ce qui ne peut pas marcher.

La solution ?

Tu en as deux :

- Soit tu fais un tableau de caractère du style :

char variable[15];

- Ou tu déclares en pointeurs, ce qui a l´avantage d´avoir une taille " indefinie", donc pas besoin de compter le nombre de char :

char *variable;
variable = " coucou";

Chaos_Clad
Chaos_Clad
Niveau 10
24 juillet 2005 à 01:49:18

Je suis crevé et je me suis rendu compte que j´ai écrit une connerie :honte:

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
24 juillet 2005 à 01:51:53

Euhh ce que tu as dis est juste :)

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
24 juillet 2005 à 01:53:25

:lol: ya exactement le même topic sur le Forum du Site du Zero.

Ptival
Ptival
Niveau 10
24 juillet 2005 à 01:56:40

Un char est un caractère !

´a´, ´b´, ´c´, ´0´, ´\n´ sont des caractères.

" coucou" est une chaîne composée de plusieurs caractères ( ou " string")

Tu essaies donc de rentrer une moissonneuse batteuse Caterpillar dans un garage de la taille d´une Twingo, pour reprendre les comparaisons douteuses chères à Jyy :lol:

Ton ami le compilo te dis donc " Ca ne passe pas"
ou plus exactement :
character constant too long for its type
Le caractère constant est trop long pour son type !

Pour mettre coucou tu peux utiliser un tableau ou un pointeur ( tu apprendras plus tard que c´est exactement la même chose mais présenté différemment)

char variable[7] = " coucou";

Ainsi tu réserves 7 caractères à la suite dans la mémoire, et tu y inscris coucou !
Une seconde ! coucou, c´est 6 caractères, pourquoi en réserver 7 ?
Parce que dans la mémoire, il faut un moyen de s´avoir ou se termine ta chaîne, ce moyen, c´est de mettre un caractère null à la fin : \0 ( en anglais, ta chaîne est " NULL-terminated")
Mais ce n´est pas toi qui la met dans ce cas, lorsque tu écris " coucou", implicitement le compilo rajoute sont p´tit \0
Par contre, s´il n´a pas la place de le rajouter, il va l´écrire à un endroit non autorisé...Pour plus d´infos sur ce qui se passe alors, et les rapports entre moisonneuses et Twingos sur les parkings Super U, reporte-toi à ce tuto :
http://perso.numericable.fr/~fvirtman/info/tuto/F_1_02_csaquis.cpp

Voilà :lol:
( Si tu n´as pas compris, relis)
( Si tu as relu et que tu n´as pas compris, relis)
( Toujours pas compris ? Bah...poses une question ( mais à ta place je relirais ^___^))

adrien89
adrien89
Niveau 10
24 juillet 2005 à 01:57:01

char *variable;
variable = " coucou";
cout < <"regfrg" < <variable;

Cela ne fonctionne pas normal?

[Lockless]
On a plus de réponse comme ca :p

adrien89
adrien89
Niveau 10
24 juillet 2005 à 01:59:30

Fonctionne de cette facon:

  1. include < iostream>

int main()
{
std::string s = " hello, world!";
std::cout < < s;
return 0;
}

Mais ne marche pas avec les métodes citées ci dessus avec toujours le meme message d´erreur

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
24 juillet 2005 à 02:06:17
  1. include < stdio.h>

int main()
{

char *s = " loool";
printf("%s",s);

return 0;
}

Marche tres bien chez moi. Visual C++ 7.

Chaos_Clad
Chaos_Clad
Niveau 10
24 juillet 2005 à 02:17:45

[Lockless] Posté le 24 juillet 2005 à 01:51:53
Euhh ce que tu as dis est juste

:d) Comme quoi tu vois, quand on est fatigué…

Chaos_Clad
Chaos_Clad
Niveau 10
24 juillet 2005 à 02:18:59

int main()
{
std::string s = " hello, world!";
std::cout < < s;
return 0;
}

Il sort d´où ce std ? :question:

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
24 juillet 2005 à 02:21:42

Enfin je fais de C++, mais en gros : ca remplace le name space std;

MrGoTo
MrGoTo
Niveau 8
24 juillet 2005 à 02:55:04

C´est pour specifier l´espace de nom std. Si tu comptes l´utiliser partout dans le programme tu fais:
using namespace std;
et pouf :)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment