begin process at 2012 05 29 17:56:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

pb de chaine avec espace !


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb de chaine avec espace !

lundi 13 mars 2006 à 09:59:02 | pb de chaine avec espace !

blinix123

#include <iostream.h>
#include <string.h>
#include <stdio.h>

struct cd
{
 char artiste [30];
 char album [30];
 char date [10];
 char chansons [30];
};


void remplissage (cd tab[])
{
 int i=0;
 int j=0;
 char rep[2];
do
{
 cout << "entrez le nom de l'artiste" <<endl;
 cin >> tab[i].artiste;
 cout << "entrez le nom de l'album" <<endl;
 cin >> tab[i].album;
 cout << "entrez la date de sortie" <<endl;
 cin >> tab[i].date;
 while (strcmp("o", rep) == 0);
 {
  cout << "entrez le nom de la chanson" <<endl;
  cin >> tab[i].chansons[j];
  j++;
  cout << "voulez-vous continuer ? o/n" <<endl;
  cin >> rep; 
 }
 cout << "voulez-vous entrer un autre album dans la bibliothèque ? o/n" << endl;
 cin >> rep;
}
while (strcmp("n", rep) == 0);
}


void main ()
{
 int a=0;
 cd tablo[2];
 
 for (a=0; a<2; a++)
 {
  remplissage (tablo);
 }
}


Alors le pb, c'est que quand je rempli l'artiste (qui est le premier à rentrer), si je tape Mozart ca passe, mais si je tape Mozart Moliere, donc que je rentre un espace, il me le prend, mais il me saute la question d'après car il prend en compte l'espace et le retour chariot dnc il croit que moliere est la reponse à la 2eme saisie !!!!
Comment faire pour prendre en compte une chaine de caractere avec les espace !!!???
(getc gets scanf...)

Merci d'avance

lundi 13 mars 2006 à 11:05:59 | Re : pb de chaine avec espace !

Joky

Membre Club
Réponse acceptée !
#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

typedef struct _Album
{
        char szAutor[64];
        char szAlbum[64];
        char szDate[64];
        char szSong[10][64];    //9 chansons
}ALBUM, *LPALBUM;
 
int SetAlbum(LPALBUM Disco, int iNbr)
{
    int i=0;
    int j;
    char Rep[2];
   
    do
    {
        j = 0;
        cout << "Titre de l'album ? ";
        cin.getline(Disco[i].szAlbum, 64);
        cout << "Nom de l'artiste ? ";
        cin.getline(Disco[i].szAutor, 64);
        cout << "Date (jj/mm/aaaa) ? ";
        cin.getline(Disco[i].szDate, 64);
       
        do
        {
           cout << "Chanson " << j+1 << " ? ";
           cin.getline(Disco[i].szSong[j], 64);
          
           cout << "Ajouter une chanson (o/n) ? ";
           cin.getline(Rep, 2);
          
           j++;
        }while((j<10) && (!strcmp(Rep, "o") || !strcmp(Rep, "O")));
       
        cout << "Ajouter un nouvel album (o/n) ? ";
        cin.getline(Rep, 2);
       
        i++;
    }while((i<iNbr) && (!strcmp(Rep, "o") || !strcmp(Rep, "O")));
   
    return i;
}
    
int main(int argc, char *argv[])
{
    ALBUM DiscoGraphie[10];
    int iAlbum;
   
    iAlbum = SetAlbum(DiscoGraphie, 10);
   
    cout << iAlbum << " albums ont ete remplis." << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}


if(!Meilleur("Joky")) return ERREUR;<

lundi 13 mars 2006 à 11:35:09 | Re : pb de chaine avec espace !

blinix123

Alors merci merci ca marche nickel ton programme,

moi perso je m'en suis sorti avec les gets:
cout << "entrez le nom de l'artiste" <<endl;
 gets (tab[i].artiste);

Mais merci bcp
lundi 13 mars 2006 à 11:47:28 | Re : pb de chaine avec espace !

Joky

Membre Club
Réponse acceptée !
Ouai, mais je pense que getline évite les buffer overflow vu qu'il demande la taille maximum du buffer.
Enfin bref c'est un choix ;)

if(!Meilleur("Joky")) return ERREUR;<

lundi 13 mars 2006 à 17:12:29 | Re : pb de chaine avec espace !

blinix123

oui ta raison pour les buffer overflow, mais mon prof me dis que getline c'est du C++, et que nous on doit faire du C...! mais bon ;)
lundi 13 mars 2006 à 17:17:55 | Re : pb de chaine avec espace !

Joky

Membre Club
Bé tu diras à ton prof, que quand on fait du C, on utilise pas cout ni cin d'ailleurs.
Mais plutôt printf et scanf...

if(!Meilleur("Joky")) return ERREUR;<

lundi 13 mars 2006 à 21:13:41 | Re : pb de chaine avec espace !

blinix123

oui c'est vrai ta raison, mais bon c'est pake on est au debut hihi! bon aller stop c'est un forum sur le C/C++ pas sur la vie privée


Cette discussion est classée dans : espace, tab, char, cout, cin


Répondre à ce message

Sujets en rapport avec ce message

pb de pointeurs !! [ par blinix123 ] Bonjour CPP ! (ici un p'tit nouveau deVB qui se met au C++)Alors voila, dans ce petit programme, j'ai une erreur, je le lance, 0 erreur, mais lors de J'ai un problème avec cin.getline!! [ par Chap71 ] Voici mon prgm:#pragma hdrstop#pragma argsused#include#include#include#includeusing namespace std; void main(void){ struct Planete pb pour l'affichage d'un tableau [ par blinix123 ] #include #include #include #include     struct cd{ char artiste [64]; char comparaison d'entiers [ par blinix123 ] Bonjour,Alors petit problème facile pour vous je pense :struct cd{ char realisateur [64]; char titre [64]; char date [20]; char duree [64];}; void help me !!! [ par pascal13 ] j arrive pas a compiler mon programme...je sais que g qlq que souccis au niveau de la sauvegarde des données sur le fichier toutes remarques seront le Multi strcat ? [ par xionoxid ] char a[10];char b[10];char com[80]= "mkdir c:\\";cin >> a;cin >> b;strcat(com,a);strcat(com,b);system(com);Est ce que c'est possible de faire strcat( cin.getline(str, 256) [ par ronandmcdonald ] Salut je voulais savoir comment cela se fess que je peux pas utiliser cin.getline dans une fonction que voila :bool RS232::Write_RS232(){DWORD dwWritt langage c [ par trinity666 ] bonjour 1)je ne comprend pas pourquoi ma fonction atobm ne compile pas; le compilateur dit kil ya 1 erreur ds while((c=fgetc(fp))!=EOF)){ mais je vois probleme ecriture base avec ADO [ par Fikren ] Bonjour,J'utilise ADO pour gerer une base de donnees devant recueillir des informations utilisateurs.J'ai tout d abord tester les differentes methodes problème classe polynome [ par cricri nature ] Bonjour, j'ai réussi à finir ma classe monome et doit maintenant créer une classe polynome. Seulement il y a 2 erreurs que je ne comprend pas. Pouvez-


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,435 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales