Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
O.
"XecTech" avait prétendu :
#include <iostream> using namespace std; void main() { char entry[255]; cin >> entry; cout << entry; } si je tape un texte avec des espaces, il ne me retourne que la partie avant le 1° espace, pourquoi, et comment y palier ?
Parce que l'espace est considéré comme la fin de l'entrée, comme si tu poussais sur enter. Utilise cin.getline()
-- Pas de promo perso à la con dans ma signature... avouez que ça fait du bien dans ce monde de pubs...
"XecTech" avait prétendu :
#include <iostream>
using namespace std;
void main() {
char entry[255];
cin >> entry;
cout << entry;
}
si je tape un texte avec des espaces, il ne me retourne que la partie avant
le 1° espace, pourquoi, et comment y palier ?
Parce que l'espace est considéré comme la fin de l'entrée, comme si tu
poussais sur enter. Utilise cin.getline()
--
Pas de promo perso à la con dans ma signature... avouez que ça fait du
bien dans ce monde de pubs...
#include <iostream> using namespace std; void main() { char entry[255]; cin >> entry; cout << entry; } si je tape un texte avec des espaces, il ne me retourne que la partie avant le 1° espace, pourquoi, et comment y palier ?
Parce que l'espace est considéré comme la fin de l'entrée, comme si tu poussais sur enter. Utilise cin.getline()
-- Pas de promo perso à la con dans ma signature... avouez que ça fait du bien dans ce monde de pubs...
si je tape un texte avec des espaces, il ne me retourne que la partie avant le 1° espace, pourquoi, et comment y palier ?
cin copy dans entry tous les caractères jusqu'à ce qu'il tombe sur un séparateur (' ', 't', 'n', ' ' et peut être d'autres) Pour qu'il saisisse une ligne entière, il faut utiliser cin.get(entry, 255, 'n'); qui lira 255 caractères si il ne trouve pas de 'n'.
Une question me vient à l'esprit : Il me semble que char entry[255] est équivalent à char entry[256] et que tout tableau de taille x est étendu au multiple de 8 supérieur à x . Est ce vrai ?
-- -------------------------------------------- Benoît Rousseau : roussebe at spray dot se Jouez en programmant : http://realtimebattle.sourceforge.net/
PS : desolé si ce post vous est déjà parvenu, il semble ne pas être parti chez moi...
si je tape un texte avec des espaces, il ne me retourne que la partie avant
le 1° espace, pourquoi, et comment y palier ?
cin copy dans entry tous les caractères jusqu'à ce qu'il tombe sur un
séparateur (' ', 't', 'n', ' ' et peut être d'autres)
Pour qu'il saisisse une ligne entière, il faut utiliser
cin.get(entry, 255, 'n');
qui lira 255 caractères si il ne trouve pas de 'n'.
Une question me vient à l'esprit : Il me semble que char entry[255] est
équivalent à char entry[256] et que tout tableau de taille x est étendu
au multiple de 8 supérieur à x . Est ce vrai ?
--
--------------------------------------------
Benoît Rousseau : roussebe at spray dot se
Jouez en programmant : http://realtimebattle.sourceforge.net/
PS : desolé si ce post vous est déjà parvenu, il semble ne pas être
parti chez moi...
si je tape un texte avec des espaces, il ne me retourne que la partie avant le 1° espace, pourquoi, et comment y palier ?
cin copy dans entry tous les caractères jusqu'à ce qu'il tombe sur un séparateur (' ', 't', 'n', ' ' et peut être d'autres) Pour qu'il saisisse une ligne entière, il faut utiliser cin.get(entry, 255, 'n'); qui lira 255 caractères si il ne trouve pas de 'n'.
Une question me vient à l'esprit : Il me semble que char entry[255] est équivalent à char entry[256] et que tout tableau de taille x est étendu au multiple de 8 supérieur à x . Est ce vrai ?
-- -------------------------------------------- Benoît Rousseau : roussebe at spray dot se Jouez en programmant : http://realtimebattle.sourceforge.net/
PS : desolé si ce post vous est déjà parvenu, il semble ne pas être parti chez moi...
si je tape un texte avec des espaces, il ne me retourne que la partie avant le 1° espace, pourquoi, et comment y palier ?
std::string entry; std::getline (cin, content);
Comme ça, en prime, tu peux gérer des lignes aussi courtes/longues que tu veux.
cin copy dans entry tous les caractères jusqu'à ce qu'il tombe sur un séparateur (' ', 't', 'n', ' ' et peut être d'autres) Pour qu'il saisisse une ligne entière, il faut utiliser cin.get(entry, 255, 'n'); qui lira 255 caractères si il ne trouve pas de 'n'.
Une question me vient à l'esprit : Il me semble que char entry[255] est équivalent à char entry[256]
Non
et que tout tableau de taille x est étendu au multiple de 8 supérieur à x . Est ce vrai ?
Peut-être que sur ta plate-forme, un tableau de 255 char occupera autant de place qu'un tableau de 256 chars (pour des raisons de padding, c'est à dire que certaines architecture préfèrent travailler avec des adresses multiples de N), mais çe ne te donne pour autant pas le droit d'utiliser l'élément en plus.
Mais bon, comme dans la vraie vie, on utilise std::string, la question ne se pose pas vraiment... ;)
si je tape un texte avec des espaces, il ne me retourne que la partie
avant
le 1° espace, pourquoi, et comment y palier ?
std::string entry;
std::getline (cin, content);
Comme ça, en prime, tu peux gérer des lignes aussi courtes/longues que
tu veux.
cin copy dans entry tous les caractères jusqu'à ce qu'il tombe sur un
séparateur (' ', 't', 'n', ' ' et peut être d'autres)
Pour qu'il saisisse une ligne entière, il faut utiliser
cin.get(entry, 255, 'n');
qui lira 255 caractères si il ne trouve pas de 'n'.
Une question me vient à l'esprit : Il me semble que char entry[255] est
équivalent à char entry[256]
Non
et que tout tableau de taille x est étendu
au multiple de 8 supérieur à x . Est ce vrai ?
Peut-être que sur ta plate-forme, un tableau de 255 char occupera autant
de place qu'un tableau de 256 chars (pour des raisons de padding, c'est
à dire que certaines architecture préfèrent travailler avec des adresses
multiples de N), mais çe ne te donne pour autant pas le droit d'utiliser
l'élément en plus.
Mais bon, comme dans la vraie vie, on utilise std::string, la question
ne se pose pas vraiment... ;)
si je tape un texte avec des espaces, il ne me retourne que la partie avant le 1° espace, pourquoi, et comment y palier ?
std::string entry; std::getline (cin, content);
Comme ça, en prime, tu peux gérer des lignes aussi courtes/longues que tu veux.
cin copy dans entry tous les caractères jusqu'à ce qu'il tombe sur un séparateur (' ', 't', 'n', ' ' et peut être d'autres) Pour qu'il saisisse une ligne entière, il faut utiliser cin.get(entry, 255, 'n'); qui lira 255 caractères si il ne trouve pas de 'n'.
Une question me vient à l'esprit : Il me semble que char entry[255] est équivalent à char entry[256]
Non
et que tout tableau de taille x est étendu au multiple de 8 supérieur à x . Est ce vrai ?
Peut-être que sur ta plate-forme, un tableau de 255 char occupera autant de place qu'un tableau de 256 chars (pour des raisons de padding, c'est à dire que certaines architecture préfèrent travailler avec des adresses multiples de N), mais çe ne te donne pour autant pas le droit d'utiliser l'élément en plus.
Mais bon, comme dans la vraie vie, on utilise std::string, la question ne se pose pas vraiment... ;)