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

c++ utiliser cin.getline avec les string

sonic66
sonic66
Niveau 10
30 juin 2005 à 02:17:49

bah voila mon code :

( bon ok j´ai modifié qu´un truc lool)

  1. include < stdlib.h>
  2. include < iostream>
  3. include < string>

using namespace std;

int main()
{
string mot;
cin.getline(mot,4);
if ( mot=="ou i")
cout < < " OK" < < endl;
else
cout < < " N O" < < endl;
system("PAUSE");
return 0;
}

ca bug :snif: porque?

Lapintade
Lapintade
Niveau 30
30 juin 2005 à 03:41:10

aucune idée, je me suis jamais servi de la classe string ( je suis toujours en C pour la gestion des string).

Quel est le bug ?

BigGamer95
BigGamer95
Niveau 10
30 juin 2005 à 09:05:19

je pense que tu utilise mal cin.getline

dés que j´serai sur mon ordi j´regarderai sur un truc que j´ai fait utilisant getline et j´te file le code
ca devrai resoudre ton probleme

JeanYvesYves
JeanYvesYves
Niveau 10
30 juin 2005 à 09:28:30

2 solutions :
la premiere, tu utilises la fonction getline amie de string : essaie cela :

getline(cin,mot);

Si tu n´aimes pas ( et ça se comprendrai) rien ne t´empeche de faire :

char temp[50];
cin.getline(temp,50);
string mot(temp);

:-)

sonic66
sonic66
Niveau 10
30 juin 2005 à 13:32:46

la premiere, tu utilises la fonction getline amie de string : essaie cela :

getline(cin,mot);

j´en suis pas encore la alors je me contenterait de l´autre :)

merci! :)

Blawk
Blawk
Niveau 10
30 juin 2005 à 13:39:15

Et pourquoi pas ça:

cin > > mot;

sonic66
sonic66
Niveau 10
30 juin 2005 à 13:43:42

car au moindre espace , ca arretera de prendre en compte ce quon ecrit , pas avec getline.... ( ca fait une ligne ^^)

et aussi , voila ca :
cout < < mot.c_str() < < endl; / / donne la chaine sous forme dechar* pour compatibilité avec le C

et ca peut apporter quoi de bo la compatibilité avec le c?

Ptival
Ptival
Niveau 10
30 juin 2005 à 13:48:05

Dans le cas du cout c idiot !

Par contre ! Si tu veux utiliser une fonction qui demande un char* C, et que tu as ton mot en string, tu passes ton argument en string.c_str()

Exemple simple :

" SDL_LoadBMP(const char*filename)"

string monmot = " fichier.bmp";
SDL_Surface*masurface = SDL_LoadBMP(monmot.c_str());

sonic66
sonic66
Niveau 10
30 juin 2005 à 14:16:39

jvoi a peu pres.....

et une fonction amie ( ou ami tt court ^^) , c´est quoi?

" la premiere, tu utilises la fonction getline amie de string : essaie cela :

getline(cin,mot);"

sonic66
sonic66
Niveau 10
30 juin 2005 à 14:23:08

car c ptet un principe , jen sais rien...

et en rapport avec string et tt

  1. include < stdlib.h>
  2. include < iostream>
  3. include < string>

using namespace std;

int main()
{
char a[200];
string f;
cin.getline(a,200,´.´);
f(a); / / ca deconne ici :snif:
cout < < f;
system("pause");
return 0;
}

JeanYvesYves
JeanYvesYves
Niveau 10
30 juin 2005 à 14:25:50

pour comprendre ce qu´est uen fonction amie, il faut bien connaitre les classes :)
Si tu ne les connais pas encore, je vais t´embrouiller a en parler, donc il ne vaut mieux pas :)
Dit toi juste que c´est une fonction qui marche avec la classe string :)

sonic66
sonic66
Niveau 10
30 juin 2005 à 14:28:07

bon ok , j´apprend les classe ùaintenant ^^ :lol:

Blawk
Blawk
Niveau 10
30 juin 2005 à 14:33:43

sonic66
Posté le 30 juin 2005 à 13:43:42
car au moindre espace , ca arretera de prendre en compte ce quon ecrit , pas avec getline.... ( ca fait une ligne ^^)

Bètement, j´avais pensé que la variable mot était censée contenir un mot... C´était surement stupide. :sarcastic:

sonic66
sonic66
Niveau 10
30 juin 2005 à 14:35:08

en fait , c pas moa qui é fait le code mais c t dans un tuto , g seulement remplacé le cin par getline , donc :desole: pour les noms ^^

sonic66
sonic66
Niveau 10
30 juin 2005 à 14:35:47

et en rapport avec string et tt

  1. include < stdlib.h>
  2. include < iostream>
  3. include < string>

using namespace std;

int main()
{
char a[200];
string f;
cin.getline(a,200,´.´);
f(a); / / ca deconne ici
cout < < f;
system("pause");
return 0;
}

sonic66
sonic66
Niveau 10
30 juin 2005 à 14:46:15

et j´ai assayer de mettre string f(a);

sans resultat :snif:

JeanYvesYves
JeanYvesYves
Niveau 10
30 juin 2005 à 14:52:16

pourquoi mets tu ´.´ en 3e parametre ?
ça ne marche pas si tu l´enleves ?

sonic66
sonic66
Niveau 10
30 juin 2005 à 15:11:02

bah pour que si je tape . , ca sarette...

sonic66
sonic66
Niveau 10
30 juin 2005 à 15:12:20

a , en fait , c que je declarait deux fois f! :)

lord_kalipsy
lord_kalipsy
Niveau 10
30 juin 2005 à 15:12:54

Au risque de dire une connerie . .. Pourquoi ne pas utiliser la std C pour les I/O console ? C´est tellement plus simple . ..

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