Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1387 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Mettre des espaces dans une chaine de caractère

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Mettre des espaces dans une chaine de caractère

n°275971
Doc_Gloumy
Since 2001
Posté le 26-12-2002 à 14:28:59  profilanswer
 

J'ai fais un prog qui encadre un texte avec des étoiles en mode console. G donc fais ceci comme code :

Code :
  1. #include <iostream.h>
  2. #include <string.h>
  3. int main (void)
  4. {
  5. char txt[80-4]={0}; // ici 80 est le nombre maximum de caractère sur une ligne et 4 le nombre d'étoiles et d'espaces en plus sur la ligne.
  6. int nbLettre=0;
  7. cout << "Donnez le texte a taper" << endl;
  8. cin >> txt;
  9. nbLettre = strlen(txt);
  10. cout  << endl << "Texte affiche : " << txt << endl << endl;
  11. cout << "Nombre de lettres : " << nbLettre << endl << endl;
  12. for (int i=0 ; i<nbLettre+4 ; i++)
  13. {
  14.  cout << "*";
  15. }
  16. cout << endl;
  17. cout << "* " << txt << " *" <<endl;
  18. for (int j=0 ; j<nbLettre+4 ; j++)
  19. {
  20.  cout << "*";
  21. }
  22. cout << endl;
  23. return 0;
  24. }


Mais le problème est qu'il coupe le texte apres le premier espace. Le résultat est donc celui çi :
http://doc.gloumy.free.fr/Printecran.JPG
 
Ma question est donc comment faire pour encadrer tout le Doc Gloumy est non juste le Doc ?
Car je n'arrive pas à mettre le texte Doc Gloumy ds la variable txt.

mood
Publicité
Posté le 26-12-2002 à 14:28:59  profilanswer
 

n°276017
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 15:05:14  profilanswer
 

ni du C ni du C++: reviens quand tu auras choisi et t'auras une reponse appropriée


---------------
du bon usage de rand [C] / [C++]
n°276135
MrTonio
Posté le 26-12-2002 à 18:33:46  profilanswer
 

Code :
  1. #include <iostream.h>
  2. #include <string.h>
  3. #include <io.h>
  4. #define BUFF_SIZE 80
  5. int main (void)
  6. {
  7.    char txt[BUFF_SIZE - 4];
  8.    char sep[BUFF_SIZE];
  9.    int nbLettre;
  10.  
  11.    memset(sep, '*', BUFF_SIZE);
  12.    cout << "Donnez le texte a taper" << endl;
  13.    if ((nbLettre = read(0, txt, BUFF_SIZE - 5)) <= 0)
  14.    return (1);
  15.    txt[--nbLettre] = 0;
  16.    sep[nbLettre + 4] = 0;
  17.    cout  << endl << "Texte affiche : " << txt << endl << endl;
  18.    cout << "Nombre de lettres : " << nbLettre << endl << endl;
  19.    cout << sep << endl << "* " << txt << " *" << endl << sep << endl;
  20.    return (0);
  21. }


 
walla ca marchera mieux comme ca  :D  :p


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
n°276151
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 19:21:45  profilanswer
 

affreux:  :fou:  :fou:  :fou:  :fou:  :fou:
 
 
o jourd hui deja que je suis de mauvais humeur, la je pete un plomb :spookie:
 
 
#include <iostream.h>
 
> pas d'ISO C++
 
#include <string.h>
 
> pas d'ISO C++
 
#include <io.h>
 
> pas d'ISO C++  
 
#define BUFF_SIZE 80
 
> dangeureux et pourquoi 80
 
int main (void)
{
 
> le (void) est inutile
 
  char txt[BUFF_SIZE - 4];
  char sep[BUFF_SIZE];
 
> les std::string c'est pour les chiens
 
  int nbLettre;
 
> et vas y que je réserve tutes mes varaibles en debut de bloc
   
  memset(sep, '*', BUFF_SIZE);
 
> voir les constructeurs de std::string
 
  cout << "Donnez le texte a taper" << endl;
 
>cout et endl n'existe pas. sais tu que endl = '\n' + flush ?
 
  if ((nbLettre = read(0, txt, BUFF_SIZE - 5)) <= 0)
   return (1);
 
> pas standard. d'ailleurs read renvoie -1 ou le nombre d'octets lu. affreux.
> pourkoi (1) et pas 1 ou EXIT_SUCCESS
 
  txt[--nbLettre] = 0;
  sep[nbLettre + 4] = 0;
 
> horrible, j'espere que tu sais ce que tuf ais. voir les std::string
 
  cout  << endl << "Texte affiche : " << txt << endl << endl;
 
> meme remarche et merci pour le triple flush, rappele moi de ne pas te repondre quand tu te plaindra de la lenteur des I/O du C++
 
  cout << "Nombre de lettres : " << nbLettre << endl << endl;
 
> idem
 
  cout << sep << endl << "* " << txt << " *" << endl << sep << endl;
 
> idem
 
  return (0);
 
> meme remarque que plus haut. d'autant plus que cette ligne est inutile en C++
 
}


---------------
du bon usage de rand [C] / [C++]
n°276161
Cherrytree
cn=?
Posté le 26-12-2002 à 19:37:17  profilanswer
 

Allons, allons ce n'est pas la peine d'être si négatif, même s'il faut bien reconnaître que le code de notre ami n'est pas dans un style des plus purs...
 
En C++ standard,
1) on ne met pas de .h dans les includes de la lib standard :
#include <iostream>
#include <string>
 
2) comme tu utilises uniquement la lib standard, une clause using serait la bienvenue. Ainsi tu peux parler de cout et de endl dans ton code.
 
3) ton algo est pas top.


---------------
Le site de ma maman
n°276165
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 19:42:08  profilanswer
 

et tu utilises les std::string au lieux des char*


---------------
du bon usage de rand [C] / [C++]
n°276190
MrTonio
Posté le 26-12-2002 à 20:45:22  profilanswer
 

HEY HO DU CALME  :kaola:  :kaola:  
 
le masieur, il a un probleme alors moi j essaye gentillement de lui et resoudre .... et toi au lieu de l aider tu fais ke critiquer mon code ... pas sympa  :fou:  
 
d abord moa je code jamé en C++ mais en C, donc j y conné pas grand chose et ca parrait legitime de faire des erreurs !
 
mais puisque tu es le grand maitre, ô tout puissant du C++, azi propose une solution !  :o


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
n°276191
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 20:50:34  profilanswer
 

meme en C, c'est mauvais


---------------
du bon usage de rand [C] / [C++]
n°276192
MrTonio
Posté le 26-12-2002 à 20:56:54  profilanswer
 

admet on meme si je ne vois pas trop a quelle niveau ....
tu n aide toujours pas Doc_Gloumy
 
plus je relis tes critiques  et plus je me dis ke tu connais pas la logique du C  :na:


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
n°276193
kadreg
profil: Utilisateur
Posté le 26-12-2002 à 21:01:20  profilanswer
 

MrTonio a écrit :

je me dis ke tu connais pas la logique du C  :na:  


 
Faire n'importe quoi, n'importe comment, peu importe que ça pête dès que l'utilisateur tape des mots trops longs, si ça compile, c'est déja pas mal ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
mood
Publicité
Posté le 26-12-2002 à 21:01:20  profilanswer
 

n°276194
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 21:05:36  profilanswer
 

Code :
  1. #include <iostream>
  2. #include <string>
  3. const unsigned padding(4U);
  4. int main()
  5. {
  6.   std::cout << "Entrez une ligne : ";
  7.   std::string input;
  8.   std::getline(std::cin, input);
  9.   const size_t input_len(input.length());
  10.   std::cout << "Vous avez entre : \"" << input << "\" qui compte " << input_len << " caracteres\n";
  11.   const std::string stars(input_len+padding, '*'), blank(padding/2-1, ' ');
  12.   std::cout << stars << '\n'
  13.     << '*' << blank << input << blank << "*\n"
  14.     << stars << '\n';
  15. }

 
 
bon à part le retour de getline, je vois pas ce qu'on peut dire.


---------------
du bon usage de rand [C] / [C++]
n°276201
lecoyote
Posté le 26-12-2002 à 21:57:31  profilanswer
 

n'empèche qu'avec ton prog taz@ppc, tu as 1 warning...

n°276202
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 21:59:03  profilanswer
 

j'ai meme pas compilé! ou ça?


---------------
du bon usage de rand [C] / [C++]
n°276204
lecoyote
Posté le 26-12-2002 à 22:01:55  profilanswer
 

dans le main: tu dois retourner une fonction
(compil et tu verra ;) )

n°276205
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 22:03:07  profilanswer
 

:non: VC++ ? dis moi le warning que je rigoles?
 
 
 
sinon, pour tes etrennes, demande un BS et vas faire un tour à la section 3.2 "Hellow World" :whistle:


Message édité par Taz@PPC le 26-12-2002 à 22:06:43

---------------
du bon usage de rand [C] / [C++]
n°276206
lecoyote
Posté le 26-12-2002 à 22:06:37  profilanswer
 

warning C4508: 'main' : function should return a value; 'void' return type assumed

n°276208
lecoyote
Posté le 26-12-2002 à 22:07:03  profilanswer
 

mais par contre je suis d'accord avec toi qu'il marche ton prog...

n°276209
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 22:07:04  profilanswer
 

editaid!


---------------
du bon usage de rand [C] / [C++]
n°276210
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 22:08:32  profilanswer
 

LeCoyote a écrit :

warning C4508: 'main' : function should return a value; 'void' return type assumed


 
c'est dingue quand meme: VC++ n'est pas au courant de la norme et modifie donc le code: mais ca devrait alors générer une erreur puisqu'en C++, le type de retour de main doit etre 'int'  :lol:


---------------
du bon usage de rand [C] / [C++]
n°276214
lecoyote
Posté le 26-12-2002 à 22:14:24  profilanswer
 

évidemment, c la faute du compilateur...

n°276216
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 22:18:09  profilanswer
 

LeCoyote a écrit :

évidemment, c la faute du compilateur...

tu veux parier? J'ai pas trop envie de me relever pour aller chercher mon BS, mais s'il le faut, je me ferait une joie de t'enfoncer  :sol:


---------------
du bon usage de rand [C] / [C++]
n°276221
lecoyote
Posté le 26-12-2002 à 22:30:19  profilanswer
 

Taz@PPC a écrit :

tu veux parier? J'ai pas trop envie de me relever pour aller chercher mon BS, mais s'il le faut, je me ferait une joie de t'enfoncer  :sol:  


arrete un peu... tu me lourde!
MAIS OUI!!!! TU EST LE PLUS FORT!!!!
pffffffffff
laisse tomber ton "BS"!

n°276224
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 22:32:17  profilanswer
 

LeCoyote a écrit :


laisse tomber ton "BS"!


 
on doit pas parler du meme truc  la :heink:


---------------
du bon usage de rand [C] / [C++]
n°276226
lecoyote
Posté le 26-12-2002 à 22:34:54  profilanswer
 

laisse tombé qd meme

n°276227
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 22:36:48  profilanswer
 

non  :non:
 
c'est grave de pas connaitre les bases :(


---------------
du bon usage de rand [C] / [C++]
n°276228
lecoyote
Posté le 26-12-2002 à 22:37:17  profilanswer
 

aller tchao

n°276230
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 26-12-2002 à 22:37:48  profilanswer
 

:hello:


---------------
du bon usage de rand [C] / [C++]
n°276236
MrTonio
Posté le 26-12-2002 à 22:46:27  profilanswer
 

Taz@PPC a écrit :

Code :
  1. #include <iostream>
  2. #include <string>
  3. const unsigned padding(4U);
  4. int main()
  5. {
  6.   std::cout << "Entrez une ligne : ";
  7.   std::string input;
  8.   std::getline(std::cin, input);
  9.   const size_t input_len(input.length());
  10.   std::cout << "Vous avez entre : \"" << input << "\" qui compte " << input_len << " caracteres\n";
  11.   const std::string stars(input_len+padding, '*'), blank(padding/2-1, ' ');
  12.   std::cout << stars << '\n'
  13.     << '*' << blank << input << blank << "*\n"
  14.     << stars << '\n';
  15. }

 
 
bon à part le retour de getline, je vois pas ce qu'on peut dire.


 
bah walla t as servi a qqch  :whistle:  


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
n°276284
Cherrytree
cn=?
Posté le 27-12-2002 à 00:25:28  profilanswer
 

Perso, c'est pas pour dire, mais entre un Coyote qui fait le kéké avec son warning à deux balles et un Tonio un brin insolent... Sale journée pour les artisans du C++ qui travaillent leur code et dispensent leur savoir.


Message édité par Cherrytree le 27-12-2002 à 00:26:05

---------------
Le site de ma maman
n°276286
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 27-12-2002 à 00:31:26  profilanswer
 

comme tu dis  [:totoz]


---------------
du bon usage de rand [C] / [C++]
n°276287
lecoyote
Posté le 27-12-2002 à 00:32:19  profilanswer
 

Cherrytree a écrit :

Perso, c'est pas pour dire, mais entre un Coyote qui fait le kéké avec son warning à deux balles et un Tonio un brin insolent... Sale journée pour les artisans du C++ qui travaillent leur code et dispensent leur savoir.


je fais pas du tout le "kéké", ce qui me rend fou c de voir taz@ppc comment il s'la jou... alors stp reste en dehor de tt ca... ok?

n°276290
HelloWorld
Salut tout le monde!
Posté le 27-12-2002 à 00:45:53  profilanswer
 

Citation :

o jourd hui deja que je suis de mauvais humeur, la je pete un plomb


 
on est pas la pour éponger tes sautes d'humeurs, alors t'es prié de causer avec un meilleur ton.
 

Citation :

ni du C ni du C++: reviens quand tu auras choisi et t'auras une reponse appropriée


 
T'aurais peut etre mieux fait de te taire sur ce coup là.
 

Citation :

meme en C, c'est mauvais


 
Je sais pas ou tu vis, mais si, moi, de toute ma vie, ce code de doc_gloumy est le pire code que je dois me taper, ben je serais mais hyper heureux.
Y'a franchement pire, franchement ... et piquer un caca nerveux parce qu'il a mis void et que c'est pas la peine, ouh la, mais toi tu vas te pendre le jour ou tu vas debouler sur le marcher du travail, et que tu vas devoir reprendre le code d'un autre. Je te vois deja a tout reecrire. (syndrome NIH : "tout ce qui n'a pas été fait par moi c'est de la merde", ca coute une fortune aux boites)
Moi je met void parce que j'aime bien souligner le fait que je ne recoit rien. La norme dit qu'il est inutile, pas qu'il ne faut pas le mettre. Pas besoin de hurler pour ca donc. Ca releve plus du style de codage que de la norme ca.
De même je met return 0, parce que sur terre y'a pas que gcc 3+, et que y'a tout un tas de compilos qui aiment bien ca. Et puis moi aussi j'aime bien. Parce que quand j'écris mon code, je cherche à ce qu'il soit compréhensible par un non initié au C++, et pas à exploiter les détails de la norme dans le but de perturber le lecteur et pouvoir me la péter à coups de citations de la norme et du TCPL.
 
Faut etre un peu pedagogue, toi quand tu t'initie a python ou autre, t'aime bien qu'on t'explique gentiment et pas qu'on te gueule dessus "mais ca c'est les bases du python, je vais aller chercher mon *** pour t'enfoncer, c'est mauvais, ton truc c'est de la mêêêêrde (a la JP Coffe).
 
Et d'une maniere générale t'es chiant à te la péter et à décrier les produits MS, VC++ en particulier.
T'aimes pas on a bien compris. Mais pas besoin de le rappeller pratiquement a chaque fois, ca incite au troll.
 
VC++, c'est pas un compilo, c'est beaucoup plus. C'est un produit MS, donc on retrouve a peu pres le meme schemas : une utilisation beaucoup plus agréable, mais une implémentation un peu chiadique. Mais il a une excuse : il est vieux, et gcc a l'epoque ne devait pas etre tellement mieux niveau norme.
D'ailleurs ca fait pas longtemps qu'il gueule pour le std:: manquant, contrairement à VC++ :P
Pour info, VC++ 6 est sorti en 1998, et la norme actuelle de C++ date de ... 1998 !

Citation :

c'est dingue quand meme: VC++ n'est pas au courant de la norme


oui, c'est dingue. Faudra que je pense à le lui dire.
 
A t'entendre on peut rien compiler avec VC++.
Et pourtant des programmes/bibliotheques multi OS qui compilent sous VC++, y'en a plein. Alors faut relativiser un petit peu.
 
Perso, le seul truc de la norme qui me gene avec VC++ 6, c'est la portee du i dans les blocs for

Code :
  1. for (int i;;) {}
  2. // ici le i est toujours utilisable :(
  3. for (int i;;) {} // compile pas :(


mais j'arrive a survivre sans.
Mais ca c'est réparé avec la nouvelle version, et c'est celle la qu'il faut comparer avec gcc 3.2+, et pas une version de près de 5 ans.
VC++ 7, je ne l'ai pas, mais il parrait que niveau norme, il est nickel :
"(...) this version being one of the most standards-compliant C++ compilers running today on any platform"
http://www.ondotnet.com/pub/a/dotn [...] ttcpp.html
 
Enfin bref, tout ca pour te rappeler que c'est pas à des gosses de 5 ans que tu parles. S'il a envie d'utiliser string.h, ben il le fait. Peut etre qu'il veut utiliser string.h pour apprendre les bases et ensuite bien comprendre ce qui se passe derriere quand il utilise std::string.
Alors, plutot que de te défouler sur lui et de pourir l'ambiance, tu lui glisses que son programme serait plus simple avec des std::string, et tu lui files un lien.
http://www.cmla.ens-cachan.fr/Util [...] AQ/#string
 
T'aime bien potasse les normes apparement, alors je te conseille de lire les normes genre "la netiquette" ou "comment parler avec les autres"


Message édité par HelloWorld le 27-12-2002 à 00:49:10

---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°276304
schnapsman​n
Zaford Beeblefect
Posté le 27-12-2002 à 02:03:00  profilanswer
 

HelloWorld a écrit :

T'aime bien potasse les normes apparement, alors je te conseille de lire les normes genre "la netiquette" ou "comment parler avec les autres"


 
 :jap:  
 
 
Tout à fait d'accord, il n'est pas interdit d'être aimable.


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°276313
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 27-12-2002 à 08:33:29  profilanswer
 

je gueule beaucoup mais je maintiens tout ce que j'ai dit.
 
Vous etes pas habitué à vous prendre des coups de pieds au cul sur HFR, c'est tout. Si Gabriel DosReis (et d'autres) ne m'avait pas botté comme il le faut quand je mélangeais C et C++, ne m'avait pas assomer à coup de référence au BS, ben j'en serai pas là. etc
 
Je crois que faut être clair: faut savoir ce qu'on veut. On m'a enseigné le C et le C++ à la fac, ben j'ai pu jeter toutes mes connaissances à la flotte. L'apprentissage est difficile, mais un jour ou l'autre fo tout poser à plat et savoir ce qui est bon et à jeter (le mélange de char[], de read et iostream est pour ma part le meilleur que j'ai jamais vu)
 
J'ai rien contre VC++, mais on peut pas dire que pour les debutants ils soient bien. Il est vieux certes, mais fo pas programmer en regardant en arriere et à lire la MSDN non plus.
 
Et si tu regardes bien le forum, il m'arrive d'etre tres aimable avec les debutants et les autres, suffit juste de pas me titiller.


---------------
du bon usage de rand [C] / [C++]
n°276320
Cherrytree
cn=?
Posté le 27-12-2002 à 09:10:00  profilanswer
 

LeCoyote a écrit :


je fais pas du tout le "kéké", ce qui me rend fou c de voir taz@ppc comment il s'la jou... alors stp reste en dehor de tt ca... ok?

Moi, ce que je lis c'est que tu testes le code de Taz pour y trouver la petite bête et tu la lui soumets en patûre, non pour obtenir un meilleur code, mais pour mettre ce forumeur en défaut. C'est bas.
 
M'enfin, c'est pas grave.


---------------
Le site de ma maman
n°276341
lecoyote
Posté le 27-12-2002 à 09:47:36  profilanswer
 

Cherrytree a écrit :

Moi, ce que je lis c'est que tu testes le code de Taz pour y trouver la petite bête et tu la lui soumets en patûre, non pour obtenir un meilleur code, mais pour mettre ce forumeur en défaut. C'est bas.
 
M'enfin, c'est pas grave.


Si tu l'dis...

n°276359
Cherrytree
cn=?
Posté le 27-12-2002 à 11:29:49  profilanswer
 

LeCoyote a écrit :


Si tu l'dis...

Ouais. :o


---------------
Le site de ma maman
n°276364
kadreg
profil: Utilisateur
Posté le 27-12-2002 à 11:44:05  profilanswer
 

Taz@PPC a écrit :

Gabriel DosReis  


 
 
[:prosterne]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°276365
samuelp
Posté le 27-12-2002 à 11:46:20  profilanswer
 


C'est la premiere fois que je vois te prosterner !

n°276366
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 27-12-2002 à 11:48:55  profilanswer
 

samuelp a écrit :


C'est la premiere fois que je vois te prosterner !

y a de quoi


---------------
du bon usage de rand [C] / [C++]
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Mettre des espaces dans une chaine de caractère

 

Sujets relatifs
mettre les donné d'un fichier texte dans un bddConcaténer une chaine de caractère
ASP : Passer une chaine de caractere en MAJUSCULE ?On peut mettre des tiret sur les noms des images pour les site ?
queue de messages : liste chainéOù mettre ses fichiers properties dans une webapp ?
passer d'un nombre en hexa en caractère ASCII[JS] Mettre une valeur dans une autre fenêtre [ - Job's Done - ]
Plus de sujets relatifs à : Mettre des espaces dans une chaine de caractère


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR