OVH Cloud OVH Cloud

au sujet d un acces curieux a un string ...

156 réponses
Avatar
ricky
bonjour

j ai de nouveau un chtti truc etrange !

je fais quelquechose comme :
int main()
{
string pattern;
...
cout << "entrez le pattern";
cin >> pattern;
cin.get(); // pour virer le enter du buffer pour apres

balayage cache
recherche du pattern
affochage
}

ok tout marche super

je rajoute juste un truc :
...
cin.get();

cout << pattern[0];
...

donc juste un affichage du premier caractere, un truc bien neutre quoi

et la , la recherche echoue et donne 0 resultats !!!

quelque soit le code de recherche, en quoi le simple fait d afficher le
premier caractere d une string peut il changer quoique ce soit ?????

une idee ? :-)

@+
ricky... je sais pas si les reveillons me reussissent moi :)

10 réponses

Avatar
kanze
Marc Boyer wrote in message
news:<bu30h8$qth$...
wrote:
Marc Boyer wrote in message
news:<bu0bbc$6ug$...
Il faudrait bien sur sortir des chiffres, mais mon impression
est que CORBA a une diffusion bien en dessous de ses ambitions
initiales, et qu'il reste un marché de niche alors qu'il avait des
ambitions d'universalité. Je ne dis pas qu'il est inutile, ni mal
fait.


Je ne sais pas exactement ce qui étaient ses ambitions au départ.
C'est vrai que dernièrement, on entend plutôt parler de XML (à tort,
à mon avis), mais je peux t'assurer que Corba est encore bien vivant
aussi.

Je suppose tout dépend de ce que tu appelles un niche et des
oubliettes.


Oui, on est sur des choses difficiles à formaliser.

La pile OSI sert aussi pas mal dans les applications de la
téléphonie.


La téléphonie des années 70-80 ;-)


Il servait encore dans la plupart des applications téléphoniques
jusqu'au milieu des années 90, au moins.


Parce que quand on a déployé un réseau de téléphonie, on change pas
son architecture 15 ans après: elle marche, on l'amortit.


Je parlais des applications qu'on était en train de développer, voir de
spécifier.

Mais c'est sûr que la téléphonie, c'est un domaine assez conservatif.
Avec une préférence pour des technologies éprouvées. (En revanche,
c'était bien un des premiers domaines où le C++ s'est imposé. Aller
comprendre.)

Je me suis fait présenté l'architecture GPRS, on est très loin
d'OSI.


Dans la pratique, aujourd'hui, la plupart des applications font un
mélange de OSI et de divers protocoles Internet.


Je dirais plutôt que OSI sert de vocabulaire de référence, et qu'on
y pioche ce qui est utile, et on viole allegrement ce qui gène.


Comme les normes Internet, et comme pratiquement tout -- même
(malheureusement) dans le cas de C++, les compilateurs implémentent ce
qu'ils veulent de la norme, n'implémentent pas ce qu'ils ne veulent pas,
et ajouter prèsque toujours pas mal d'extensions.

Dans le cas de OSI, c'était conçu dès le début en vue de ce type
d'utilisation. C'est l'un des grands avantages du conceptes des couches.

La RNIS se base sur OSI, et la dernière fois que j'ai régardé
(1997), les protocols OSI jouait encore un rôle important dans la
gestion de reseau.


Le contrôle est en effet à ma connaissance un X25-like.


Pratiquement tous les systèmes de gestion de reseau se base sur la
couche de représentation de OSI. L'application vient se collait
au-dessus. Dans la partie téléphonie pûre, les couches de base sont
aussi souvent OSI -- mais il existe des passerelles, et il n'est pas
rare de voir des protocols OSI de couches supérieur acheminés sur du
TCP/IP.

Il ne faut pas oublier non plus que des parties de OSI ont été
adoptées par l'Internet. Donc, SNMP et LDAP se base tous les deux
sur ASN.1 (la couche présentation de OSI). À la long, je parlerais
pas tellement de la disparition d'une ou de l'autre suite, mais
d'une fusion : l'Internet adopte des parties de OSI, tandis que
beaucoup de systèmes OSI incorporent des protocols Internet en plus.
C'est assez fréquent, par exemple, de voir des protocols des trois
couches supérieurs de OSI tourner sur une pile TCP/IP. Ou que deux
machines utilise LAP-D (un protocol de la couche deux de ISO) pour
transporter des trames IP.


Tout à fait. Une approche pragmatique, loin de la norme.


Il n'y a pas « une » norme OSI, de même qu'il n'y a pas une norme
Internet. Dans les deux cas, il y a une suite de normes, s'adressant à
des couches différentes et les utilisations différentes. Dans les deux
cas, l'intention dès le départ, c'est que chacun en prend ce qu'il lui
faut.

On est loin des notions de norme dans les langages de prog. Ecrire
un code C++ sans différencier l'usage normal et les extensions du
compilateur est vue comme une erreur de conception.
Faire la même chose avec OSI, c'est être ingénieux ;-)


Je ne sais pas si la différence est si grande que tu ne prétends. Quand
j'écris mes applications C++, j'ai plusieurs normes dont je me sers : la
norme C++, évidemment, mais aussi la norme Posix, la norme UML, ...
Quand j'écris une application, le langage de programmation n'est qu'une
couche dans l'ensemble. Alors, évidemment, je fais la distinction entre
ce qui fait partie de cette couche, et ce qui n'en fait pas partie.

De même que quand je fais du IP sur LAP-D. Je sais bien quelle partie
est LAP-D (norme OSI), et quelle partie est IP (norme Internet).

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16




Avatar
Michel Michaud
Dans news:,
Je ne peux pas parler pour Dietmar, mais en général, je ne vois pas
en quoi on pourrait considérer std::string une abstraction d'une
chaîne de texte. Ce n'est qu'une collection comme une autre.


Tu peux me dire quel(s) langage(s) possède(nt) un vrai type de
chaîne alors ? Je suis vraiment intrigué que les « vrais » types
chaînes soient maintenant quelque chose d'autres que ce que j'ai
toujours connu dans les multiples langages de programmation que
j'ai utilisé. J'ai pu être malchanceux...

Une chaîne de texte aurait des fonctionnalités qui concerne le
texte, et non seulement des fonctionnalités qui permet d'insérer ou
de supprimer des éléments d'un type de base. (N'oublions pas que
char, ce n'est pas un type de caractère non plus, mais simplement
un autre type d'entier.)


Avec le nom des langages ci-haut, quelques petits exemples de
ces possibilités seraient bienvenues... Et tant qu'à y être,
pourquoi il n'était pas possible de faire la même chose quand
on a créé std::string...

--
Michel Michaud
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/

Avatar
Luc Hermitte
Loïc Joly wrote in
news:bu4r5q$1se$:

Ce que je trouve vraiment dommage actuellement, c'est que je n'ai pas
encore rencontré de bibliothèque qu'IHM qui tire vraiment profit des
facilités du C++ (et en particulier de sa bibliothèque), mais plutôt
des bibliothèques écrites en "C with classes".


La WTL m'avait paru interressante justement.
Le but étant d'envopper l'API win32 dans un système de classes conçu comme
ATL. Microsoft ne l'a sorti qu'au travers de ses pSDK.
Pour le peu que j'en avais regardé, j'avais trouvé son design bien plus
"moderne" que ce que je découvre aujourd'hui avec wxWindows.

--
Luc Hermitte <hermitte at free.fr>
FAQ de <news:fr.comp.lang.c++> :
<http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/>
Dejanews : <http://groups.google.com/advanced_group_search>

Avatar
kanze
"Michel Michaud" wrote in message
news:<tqANb.3810$...
Dans news:,
Je ne peux pas parler pour Dietmar, mais en général, je ne vois pas
en quoi on pourrait considérer std::string une abstraction d'une
chaîne de texte. Ce n'est qu'une collection comme une autre.


Tu peux me dire quel(s) langage(s) possède(nt) un vrai type de chaîne
alors ?


Aucun que je connais. Alors ?

Plusieurs langages ont une ébauche d'un type de caractère. Qui n'est pas
un type entier. Certains aussi ont une ébauche d'un type de chaîne, dont
les caractères ne sont pas des entiers, et qui supportent des opérations
propre au texte, comme la conversion de case.

Mais dans l'ensemble, je suis assez scéptique en ce qui concerne nos
connaissances réeles de ce que doit faire un tel type, de façon
standard. Au moins dans un contexte internationnal. Pour l'instant, je
crois que c'est trop tôt de penser à une normalisation -- il faut
d'abord mieux cerner les problèmes.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16


Avatar
Michel Michaud
Dans news:,
"Michel Michaud" wrote in message
news:<tqANb.3810$...
Dans news:,
Je ne peux pas parler pour Dietmar, mais en général, je ne vois
pas en quoi on pourrait considérer std::string une abstraction
d'une chaîne de texte. Ce n'est qu'une collection comme une autre.


Tu peux me dire quel(s) langage(s) possède(nt) un vrai type de
chaîne alors ?


Aucun que je connais. Alors ?


Alors je dois te demander de m'expliquer un peu plus ce qui semble
être une évidence pour toi et Dietmar, mais qui ne l'est pas pour
moi.

Plusieurs langages ont une ébauche d'un type de caractère. Qui
n'est pas un type entier. Certains aussi ont une ébauche d'un type
de chaîne, dont les caractères ne sont pas des entiers, et qui
supportent des opérations propre au texte, comme la conversion de
case.


Je ne vois pas pourquoi C++ ne pourrait pas permettre des
opérations de conversion de case correctes...

Mais dans l'ensemble, je suis assez scéptique en ce qui concerne nos
connaissances réeles de ce que doit faire un tel type, de façon
standard. Au moins dans un contexte internationnal. Pour l'instant,
je crois que c'est trop tôt de penser à une normalisation -- il faut
d'abord mieux cerner les problèmes.


Ça me semble une évidence, sinon je crois bien que plusieurs
langages auraient un type chaîne correct et le feraient savoir
haut et fort :-)

--
Michel Michaud
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/



Avatar
kanze
"Michel Michaud" wrote in message
news:<s74Ob.8468$...
Dans news:,
"Michel Michaud" wrote in message
news:<tqANb.3810$...
Dans news:,
Je ne peux pas parler pour Dietmar, mais en général, je ne vois
pas en quoi on pourrait considérer std::string une abstraction
d'une chaîne de texte. Ce n'est qu'une collection comme une autre.


Tu peux me dire quel(s) langage(s) possède(nt) un vrai type de
chaîne alors ?


Aucun que je connais. Alors ?


Alors je dois te demander de m'expliquer un peu plus ce qui semble
être une évidence pour toi et Dietmar, mais qui ne l'est pas pour moi.


Qu'est-ce que je dois expliquer ? Comment définis-tu une chaîne de texte
en dehors des langages de programmation ? Quels en sont les
caractèristiques ? Qu'est-ce qu'on peut faire avec elle ?

En fait, si on se place dans un contexte internationnal, les réponses ne
sont pas du tout évidentes. Mais je suis certains qu'en aucun cas, la
possibilité de faire de l'arithmétique sur des caractères individuels en
ferait partie. Tandis qu'au moins dans les langues européennes, les
changements de case si.

Plusieurs langages ont une ébauche d'un type de caractère. Qui n'est
pas un type entier. Certains aussi ont une ébauche d'un type de
chaîne, dont les caractères ne sont pas des entiers, et qui
supportent des opérations propre au texte, comme la conversion de
case.


Je ne vois pas pourquoi C++ ne pourrait pas permettre des opérations
de conversion de case correctes...


Parce que le problème est mal défini. Qu'est-ce que c'est qu'une
conversion de case correcte dans un contexte internationnal ? Je ne
crois même pas que ça a un sens.

Je ne suis pas sûr, mais j'ai comme une petite doute qu'une « chaîne de
caractères » doit comporter, en plus des caractères, des informations
qui concerne la langue. Je ne suis pas sûr, parce que c'est possible
qu'avec des jeux de caractères assez complet, le caractère lui-même
donne assez de précisions -- s'il s'agit d'un caractère chinois, par
exemple, on sait que la transformation de case n'a pas de sens. Mais
pour en arriver là, il faudrait que l'i en français et l'i en turque
soit des caractères différents, et qu'il existe des caractères du genre
'ß'/'SS' (ou le 'SS' est un caractère, même si le graphisme est
indistinguable de deux S). En ce qui concerne ce dernier, TeX et LaTeX
le font déjà -- c'est impossible à traiter l'allemand correctement
autrement.

Mais dans l'ensemble, je suis assez scéptique en ce qui concerne nos
connaissances réeles de ce que doit faire un tel type, de façon
standard. Au moins dans un contexte internationnal. Pour l'instant,
je crois que c'est trop tôt de penser à une normalisation -- il faut
d'abord mieux cerner les problèmes.


Ça me semble une évidence, sinon je crois bien que plusieurs langages
auraient un type chaîne correct et le feraient savoir haut et fort :-)


Pour voir où on est, il faudrait évidemment régarder d'abord du côté des
langages de gestion de texte, comme TeX ou Omega. Des rapports
techniques de Unicode Consortium sont assez intéressant aussi, ne
serait-ce que pour avoir un aperçu des problèmes.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16




Avatar
Gabriel Dos Reis
Marc Boyer writes:

| In article <btmiuq$8pj$, ricky wrote:
| > bonjour
| >
| >> 1) elle obligerait les gens qui veulent faire un compilateur
| >> conforme à implémenter cette GUI, ce qui leur ferait perdre du
| >> temps, qui ne serait pas passé à autre chose.
| >
| > cela leur derait perdre leur temps parceque pour toi c'est peu important
| > cette parti pour d'autres c'est tres important
| >
| > et ce raisonnement tu peux le faire pour quasiment tout developpement,
| > donc on gele definitivement le c++ :(
|
| Non, C++ a été conçu comme un "langage" et évolue dans ce sens.

Et qu'est-ce que cela veut dire concrêtement,
« être conçu comme un "langage" et évoluer dans ce sens » ?

-- Gaby
Avatar
Gabriel Dos Reis
Marc Boyer writes:

| In article <btnhcm$vps$, ricky wrote:
| > soit tu affirmes que le cpp n'existe QUE pour les systemes embarques
| > sans ecran, dont acte, mais je ne le vois pas ecrit dans la norme,
| > soit c'est un langage generaliste comme je le vois ici, et j'apprend
| > donc qu'un langage generaliste ne s'occupe que de systemes embarques (et
| > je doute que la notion de template soit tres utilisee dans un systele
| > embarque a faible puissance et memoire) ce qui n'est pas tres
| > generaliste !!!
|
| Tu fais la une grave erreur de raisonnement. Un langage generaliste
| doit *aussi bien* traiter les systemes embarques que les PC sous M$.

Et alors ?

| Oui, cela ammene a prendre le plus *petit* denominateur commun.

Non.

| C'est dans les choix fondateurs de C++.

Non.

-- Gaby
Avatar
Gabriel Dos Reis
Marc Boyer writes:

| Je crois que pour envisager une GUI "normalisable"
| à C++, il faut déjà bien comprendre C++ tel qu'il
| existe, et comprendre ou ce situe le projet.

Juste par curiosité, tu crois que quelqu'un comme BS comprend quelque
chose à C++ ?

[...]

| N'accordes pas trop d'importance à mon poids dans
| l'avenir de C++...

comme ils disent dans la pub mckay...

-- Gaby
Avatar
Gabriel Dos Reis
Loïc Joly writes:

| Gabriel Dos Reis wrote:
|
| > | Je ne voyais pas les IHM comme un problème de C++,
| > | mais un problème d'IHM (de même qu'un OS performant
| > | mais pas gourmand par exemple).
| > Personne ne demande à C++ de résoudre les IHM. Par contre, ce que
| > certaines personnes souhaitent, c'est C++ offre un certain binding à
| > certaines notions de GUI. C'est plus que du bon sens.
|
| Je pense que c'est là une différence fondamentale et qui correspond
| plus à mes attentes.
| En particulier, j'y vois un parallèle avec un argument pour
| l'introduction des threads dans la norme : Ce n'est pas tant les
| threads eux-mêmes qu'il est important de normaliser, mais c'est plutôt
| l'impact que les threads peuvent avoir sur le reste du langage ("core"
| comme bibliothèque).

sauf que les arguments ne se transposent pas comme ça dans la
pratique. Si tu as une spécification de threads avec une
implémentation de référence, le comité ne va pas le rejeter sans
examen au prétexte qu'un certain argument abstrait a été opposé à une
hypothétique GUI.

| Quelles sont donc les notions les plus citées pour des GUI ?
|
| J'y vois à première vue :
| 1- les notions de propriétés (sous les deux formes usuelles qui sont
| souvent confondues dans les discussions à ce sujet : Les propriétés
| entant qu'autre écriture pour des appels de fonction, et les
| propriétés en tant que fonction pouvant être appéles pendant le codage.

Oui, c'est un moyen efficace pour écrire du sloppy code, mais il
semble que ces temps ci, le sloppy code est très côté.

| 2- Les notions de callback
|
| 3- Peut-être moins de nuances entre les phases de codage et celles
| d'exécution

compilation incrémentale ?

| 4- La gestion de code à la fois généré par des outils et retouché par
| l'humain

-- Gaby