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

1 2 3 4 5
Avatar
Fabien LE LEZ
On Sat, 27 Dec 2003 18:16:17 +0100, ricky wrote:

je ne comprend toujours pas en quoi ce pattern[x] changeait quoique ce
soit au caractere qui suivait le string !


A partir du moment où tu as un code créant un comportement indéfini
(ici, accéder à un caractère inexistant, si j'ai bien compris), le
fonctionnement du programme n'est pas prévisible. En particulier, une
opération qui normalement ne modifie rien, peut se mettre à avoir des
effets de bord.

Au fait, std::string a un opérateur de comparaison (==), il est donc
inutile de comparer caractère par caractère.

--
;-)

Avatar
ricky
hello

A partir du moment où tu as un code créant un comportement indéfini
(ici, accéder à un caractère inexistant, si j'ai bien compris),


oui en effet

fonctionnement du programme n'est pas prévisible. En particulier, une
opération qui normalement ne modifie rien, peut se mettre à avoir des
effets de bord.


j ai vu et je m en souviendrais ! j ai cherche partout sauf la :-)

Au fait, std::string a un opérateur de comparaison (==), il est donc
inutile de comparer caractère par caractère.
le == comprend t il aussi les joker comme "?" et "*" ?


il est donc utilise dans mon cas de comparer caractere par caractere :-)

@+
ricky

Avatar
ricky
hello

Justement, certains mots de mots croisés sont composés, et contiennent
des espaces (même s'ils n'apparaissent pas sur la grille, ou sont
seulement matérialisés par des barres plus épaisses).


nan je met un - dans ce cas na !
et sinon c est deux mots !

Aucun message de ma part ne doit être pris sans un certain recul, en
tout cas.


aucun message ne le devrais soit dit en passant

Plus exactement, un langage qui laisse le programmeur choisir sa
bibliothèque GUI ;-)


mouais
mais en mettre une petite par defaut serait une aide a bcp de personnes !

je me dirige vers wxwindows, mais il faut changer des string en
wxstring, le comportement est different, c est pas aussi evident qu en
tcl ou autre ...
alors qu un petit truc dans la stl aiderait bcp de monde !
idem pour l acces aux repertoires


C++ est un langage qui laisse énormément de libertés au programmeur...
y compris la liberté de faire des conneries.


oui
c est aussi ce que j aime
mais cela n excuse pas amha l abscence de truc aussi important a l'heure
actuel que ds bases de gui ou de gestion de fichier

Quand à l'expression "langage à la noix",


la c etait un gros troll j avoue

c'est pas totalement faux :
C++ doit une partie de sa popularité au fait qu'il est basé sur le C,
mais c'est aussi (paradoxalement) son plus gros défaut.


j aimait bcp le c
vif comme l assembleur et assez facile si on n allait pas triffouiller
les limites de la norme

et je reste septique sur l usage "massif" du cpp comme le veulent pas
mal de boites ...
le c reste irremplacable pour moi dans bcp de domaine ou le bazooka n
est pas vital ...

@+
ricky

Avatar
Christophe Lephay
ricky wrote:
Au fait, std::string a un opérateur de comparaison (==), il est donc
inutile de comparer caractère par caractère.
le == comprend t il aussi les joker comme "?" et "*" ?


il est donc utilise dans mon cas de comparer caractere par caractere


Histoire d'avoir le dernier mot, il me semble bien qu'il existe des trucs
pour les expressions rationnelles (regular expressions) dans boost ;)

Chris


Avatar
Fabien LE LEZ
On Sun, 28 Dec 2003 05:51:45 +0100, ricky wrote:

Plus exactement, un langage qui laisse le programmeur choisir sa
bibliothèque GUI ;-)


mais en mettre une petite par defaut serait une aide a bcp de personnes !


Encore faut-il en pondre une qui marche sur tous les systèmes.
wxWindows a réussi l'exploit de rassembler MacOS, Windows et Linux,
mais n'est vraiment utilisable que depuis assez peu de temps (comparé
à l'âge du C++), et ne concerne pas les autres systèmes.
Dès qu'on aura une bibliothèque vraiment portable et fiable, on pourra
commencer à réfléchir à la possibilité de l'inclure dans la SL. Mais
c'est pas demain la veille...

alors qu un petit truc dans la stl aiderait bcp de monde !


Pourquoi la STL ? Quel rapport entre les templates et GUI ?

--
;-)


Avatar
Fabien LE LEZ
On Sun, 28 Dec 2003 05:51:45 +0100, ricky wrote:

j aimait bcp le c
vif comme l assembleur et assez facile si on n allait pas triffouiller
les limites de la norme

et je reste septique sur l usage "massif" du cpp comme le veulent pas
mal de boites ...
le c reste irremplacable pour moi dans bcp de domaine ou le bazooka n
est pas vital ...


C'est plutôt le C, le bazooka. Le C++ permettant des développements
nettement plus rapides qu'en C, on n'utilise le C que si on a une
bonne raison. Si on programme pour de l'embarqué, par exemple.

--
;-)

Avatar
Fabien LE LEZ
On Sun, 28 Dec 2003 06:37:11 +0100, "Christophe Lephay"
wrote:

Histoire d'avoir le dernier mot, il me semble bien qu'il existe des trucs
pour les expressions rationnelles (regular expressions) dans boost ;)


Mon compilo étant trop vieux pour Boost, je me suis contenté
d'encapsuler PCRE.

--
;-)

Avatar
Christophe Lephay
Fabien LE LEZ wrote:
On Sun, 28 Dec 2003 05:51:45 +0100, ricky wrote:
Plus exactement, un langage qui laisse le programmeur choisir sa
bibliothèque GUI ;-)
mais en mettre une petite par defaut serait une aide a bcp de

personnes !


Encore faut-il en pondre une qui marche sur tous les systèmes.
wxWindows a réussi l'exploit de rassembler MacOS, Windows et Linux,
mais n'est vraiment utilisable que depuis assez peu de temps (comparé
à l'âge du C++), et ne concerne pas les autres systèmes.
Dès qu'on aura une bibliothèque vraiment portable et fiable, on pourra
commencer à réfléchir à la possibilité de l'inclure dans la SL. Mais
c'est pas demain la veille...


Par ailleurs, en plus de la quantité de travail que celà requiert, je pense
qu'il est dur de faire une telle GUI à la fois portable et qui profite bien
des caractéristiques du système. Notemment, si on parle de Java, je trouve
personnellement que la GUI est vraiment à chier...

Ceci dit, quand je vois la galère pour pondre le moindre "hello world" sous
windows, je reconnais que j'apprécierais quand même une petite GUI
minimaliste...

Chris



Avatar
ricky
bonjour

Histoire d'avoir le dernier mot, il me semble bien qu'il existe des trucs
pour les expressions rationnelles (regular expressions) dans boost ;)


oui va falloir que j etudie bien boost..
j'ai l'impression que cela complete bien les "oublis" du cpp :
directories, expressions, etc

il ne lui manquera amha que les gui :-)

@+
ricky

Avatar
ricky
bonjour


Encore faut-il en pondre une qui marche sur tous les systèmes.
wxWindows a réussi l'exploit de rassembler MacOS, Windows et Linux,
mais n'est vraiment utilisable que depuis assez peu de temps (comparé
à l'âge du C++), et ne concerne pas les autres systèmes.


bon c est deja pas mal :)
mais je pense a une biblio de base ... wxwinows fait tout y compris le
cafe, ce qui est genial, mais juste un truc a la tcl quoi ... quelques
widgets, une chtite fenetre et basta ... de quoi quitter le dos , ca
suffirait...
je pense que le cpp federe bcp de passionnes par ses caracteristiques ..
il ne lui manque plus que ca

et encore une fois, pouruoi le cpp ne pourrait il pas faire a minima ce
que font les autres langages actuels (je prend toujours tk comme
exemple, c est le minima et ca peut tourner partout) ? la norme du cpp
ne lui interdit pas d'evoluer quand meme !

Dès qu'on aura une bibliothèque vraiment portable et fiable, on pourra
commencer à réfléchir à la possibilité de l'inclure dans la SL. Mais
c'est pas demain la veille...


ce qui donne le champ libre a java :)
je compte d ailleurs m y mettre et comparer un peu les concepts ...

Pourquoi la STL ? Quel rapport entre les templates et GUI ?


euh pour moi, la stl est un truc standard que tout compilo doit suivre a
la base ... bref un truc qu'on est sur d avoir par defaut ...
donc s'il y avait, en plus des string et autres trucs sympas, de petites
fenetres ou a minima une petite gestion de directorie, je n'aurais rien
contre ...

@+
ricky

1 2 3 4 5