Pour revenir au sujet de depard voici une FAQ de Bjarne Stroustrup
http://www.research.att.com/~bs/bs_faq.html
trés interressant
Version imprimable
Pour revenir au sujet de depard voici une FAQ de Bjarne Stroustrup
http://www.research.att.com/~bs/bs_faq.html
trés interressant
?? comment tu définis un constructeur pas defaut?
Et puis, suffit de faire ça + std::fill, et c'est réglé.
Arrêtez de chipoter, quand même ;)
Et puis je ne vois pas ce que les flux du C++ ont en moins que ceux du C...
M'enfin, vous verrez bien avec l'expérience ce qu'offre le C++ par rapport au C.
Si ta classe s'appelle Maclasse, il suffit de fournir un constructeur qui ne prend aucun argument, de la forme Maclasse() donc. C'est ça, un constructeur par défaut.Citation:
Envoyé par reptils
On peut aussi fournir un construteur qui prend des arguments, mais qui ont des valeurs par défaut. Il sera appelé en tant que constructeur par défaut dans ce cas là.
??Citation:
Envoyé par Alp
lol, même reponseCitation:
Envoyé par Alp
Citation:
Envoyé par Mongaulois
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <algorithm> #include <iostream> using namespace std; int main() { int* array = new int[15]; fill(array, array+15, 2); for(int i = 0; i<15; i++) { cout << array[i] << endl; } return 0; }
euh... dsl je ne voit pas se quoi tu parle. J'ai pas du tout suivre...Citation:
Envoyé par Alp
Comment coderai tu avec les flux ce formatage :
sur une ligne :
- un flotant sur 10 caratère avec 3 chiffre aprés la virgule
- un entier sur 8 caratère
- un espace suivant d'un entier sur 9 caratere avec des 0 ala place des espaces
Ca c'est pour l'initialisation d'un tableau, pour reptils.
Pour les flux, tu n'as jamais consulté la doc des streams de la SL ?
Tu peux faire tout ça avec setw, setfill, ...
Ca peut t'intéresser : http://www.cppreference.com/io_flags.html#format_flags
je dis pas qu'on ne peut pas faire la meme chose en c++ mais juste que c'est moins pratique.
EDIT: ce serait pas plutot fill(array, array+14, 2); ?
Mouais. Enfin c'est super lourd.Citation:
Envoyé par Alp
C'est quand même plus rapide :
Code:
1
2
3
4
5
6 char ligne[1024]; float f =23.5689; int a = 10; int b = 23; sprintf(ligne,"% 10.3f% 8d %09d",f,a,b);
C'est plus rapide mais c'est beaucoup moins type-safe.
Non, c'est bien +15.Citation:
Envoyé par reptils
Super pratique à lire aussi :roll:
Pour répondre à ta question, oui on peut le faire en C++ ;)
Ca ne tient qu'à toi de créer des raccourcis pour ce genre de choses afin de rendre plus facile à utiliser la chose.
Boost.Format fournit ce qu'il faut pour manipuler plus facilement en C++.
Mais en C++ standard tu disposes cependant de ce qu'il faut.
C'est une question de goût après.
pour comparait comment ecrivez vous
avec les flux??Code:
1
2
3
4
5 char ligne[1024]; float f =23.5689; int a = 10; int b = 23; sprintf(ligne,"% 10.3f% 8d %09d",f,a,b);
Citation:
Envoyé par Mongaulois
http://c.developpez.com/faq/cpp/?pag...GS_convertform
Mouais... :
Et fonctionne aussi pour tous les objets où l'on redéfini l'opérateur << avec les flux (on est donc pas limité au seul %d, %f... de sprintf)Code:
1
2
3 std::ostringstream oss; oss <<f<<" "<<a<<" "<<b; return oss.str();
ben non justement.Citation:
Envoyé par millie
Ce qui sortira n'aura pas le même format
@ millie et Mongaulois : il suffit d'utiliser les manipulateurs pour formater ... cf l'url que j'ai donné plus tôt.
C'est plus verbeux, mais au moins c'est beaucoup moins obscur que les formatteurs C, et on ne passe pas une heure à chercher le bon. Et puis rien ne t'empêche d'écrire ton propre truc avec la syntaxe que tu préfères, comme le fait boost.format.Code:
1
2
3
4 std::ostringstream oss; oss << std::setw(10) << std::setfill(' ') << std::setprecision(3) << std::fixed << f << " " << std::setw(8) << std::setfill(' ') << a << " " << std::setw(9) << std::setfill('0') << b;
Je demande juste pour comparait les code, que quelqu'un qui connait bien les flux traduise mon code avec les même formatage.Citation:
Envoyé par Alp