-
Compteur de contenus
1 340 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Blogs
Tout ce qui a été posté par leneuf22
-
Merci pour le lien ! Je me demandais aussi, quel est l'apport du C++ par rapport au C ? C'est une autre manière de programmer, avec aussi des techniques au noms noms barbares comme "polymorphisme" et "encapsulation" (j'ai pu voir de quoi il s'agit) mais dans quel but ?
-
Pour redémarrer l'ordi, c'est : Option Explicit dim fso, wsh, WindowsFolder, rundll32 Const WinFold = 0 set fso = CreateObject("Scripting.FileSystemObject") set wsh = CreateObject("WScript.Shell") set WindowsFolder = fso.GetSpecialFolder(WinFold) rundll32 = WindowsFolder & "RUNDLL32.EXE" wsh.Run rundll32 & " SHELL32.DLL,SHExitWindowsEx 2" Par contre, je ne suis pas sur que ce script marche sur tous les ordis. Tu devrais proposer, en téléchargement sur ton site, la dernière version de Microsoft Windows Script (la version 5.6) Tu ne devrais pas avoir de problèmes, toi, car je te l'avais fait télécharger, tu te rappelles ? Le lien, pour Windows 2000/XP : http://download.microsoft.com/download/win...FR/scriptfr.exe Et pour Windows 95/98/ME/NT : http://download.microsoft.com/download/win.../FR/scr56fr.exe
-
Tiens, logique ! J'ai trouvé une technique pour vider un tableau ? Merci !
-
Ha, je vais envoyer un chtit mail au webmaster alors ! (relis mon message au-dessus, je l'ai édité)
-
Ce n'est pas moi qui ai inventé cela ! Regarde là : http://www.commentcamarche.net/cpp/cppop.php3 (tout en bas) La preuve est que justement, il n'y a pas de problèmes d'interprétation : en mettant les parenthèses comme il faut, je me retrouve avec le même problème ! Et sinon, ce n'est pas moi qui ai eu cette idée tordue de mettre *str++ ! C'est dans mon bouquin ! Et il est écrit qu'avec la priorité des opérateurs, on pouvait utiliser cette texhnique (et ce, sans parenthèses) Sinon, pas de problèmes si tu peux m'éclairer, je peux attendre !
-
Du moment que '++' est prioritaire sur '*', je ne vois pas pourquoi cela poserait un problème, mais bon j'ai essayé. Résultat : On pouvait s'y attendre : avec (*str)++, "TEST" devient "TUVW". Et avec *(str++), "TEST" est affiché correctement la première fois, puis, même problème, il me sort un 'P' avec 3 espaces. Que deviennent le 'E', le 'S' et le 'T' ??? Bon, si personne ne comprend pourquoi, je vais arrêter de poser ce genre de questions ! Merci quand même !
-
Tu n'as pas compris ce que j'ai dit, relis mon message ! Le code que je donne plus haut marche parfaitement bien ! Seulement, si je remplace la première boucle (la suivante for (int i=0; i<4; i++) { cout << str[i]; } Par : for (int i=0; i<4; i++) { cout << *str++; } Hé bien la deuxième boucle for (celle qui utilise la variable j pour les itérations, et qui utilise *str++) ne m'affiche qu'un 'P' avec 3 espaces. (note bien qu'il y a 3 espaces !) Donc en résumé, si j'utilise *str++ dans 2 boucles, ça foire. Si j'utilise *str++ dans une seule boucle (la deuxième, celle avec j comme variable et pas celle avec i, sinon ça foire aussi !!!), ça marche très bien !!! Le mystère est là : il est tout à fait possible d'afficher "TEST" avec *str++ lors de la 1ère boucle. Ensuite on met 'P' à la place de 'T'. Mais voilà, lors du 2ème affichage, les 3 derniers caractères ne sont plus là ! (que l'on utilise str[j] ou *str++) J'en déduis que *str++ efface le contenu du tableau après sa lecture, et je me demande bien pourquoi. Là est ma question.
-
Le site de l'auteur : http://www.rpi.net.au/~ajohnson/resourcehacker/
-
Ne crois pas que c'est n'importe quoi ! Ça marche ce truc, mais ça ne marche qu'une seule fois ! Une fois que tout les caractères ont été affichés, il ne reste plus rien dans *str ! Regarde ce code : #include "stdafx.h" #include <iostream.h> void fonc(char* param); void fonc2(int* integ); int main(int argc, char* argv[]) { char ga; char* str = "TEST"; cout << "Au d‚but, str = "; for (int i=0; i<4; i++) { cout << str[i]; } fonc(str); int ch = 5; cout << " et ch = " << ch; fonc2(&ch); cout << "nEt … la fin, str = "; for (int j=0; j<4; j++) { cout << *str++; } cout << " et ch = " << ch << "n"; while (cin >> ga) { cout << "A bient“t !"; return 0; } } void fonc(char* param) { param[0] = 'P'; } void fonc2(int* integ) { *integ = 10; } *str est affiché à l'écran, la première fois : "TEST", avec l'opérateur d'indexation str; Et la deuxième fois, il est affiché : "PEST" (on a modifié la variable dans fonc) L'opérateur de déférenciation lit la valeur du pointeur, et l'envoie à cout. Puis l'opérateur d'incrémentation '++', incrémente de 1 le pointeur, qui pointe maintenant vers le 2ème élément du tableau. Mais si je l'utilise 2 fois sur le même tableau, la deuxième fois, le programme affiche "P " au lieu de "PEST" Bon, je sais ce n'est pas très utile comme truc, mais je voulais juste comprendre
-
Oui ! Enfin, bon, là j'espère que c'est rentré. Je suis en train de m'entraîner, et je ne fais plus d'erreurs. Sauf : J'ai ce bout de code : char* str = "TEST"; for (int i=0; i < 5; i++) { cout << str; } Jusque là, c'est bon. Mais si je remplace par char* str = "TEST"; for (int i=0; i < 5; i++) { cout << *str++; } Là, ça m'efface mon tableau de char... Pourquoi ?
-
Ha oui, c'est la valeur de mavar1 qui est égale à 10, pas l'adresse ! Merci automne !
-
Probleme De prog Sous TURBO PASCAL 7
leneuf22 a répondu à un(e) sujet de flonicolas dans Programmation
Voilà la fonction qui convertit une chaîne de caractères en une variable numérique : Val(Chaine : String, Nombre : Real, Code : Integer); Ici, Chaîne = ta variable de type string, Nombre = variable de sortie de type integer, numérique, et Code = code d'erreur Exemple de code : var MyNumber : Real; MyTexte : String; MyCode : Integer; begin MyTexte := '123456'; Val(MyTexte, MyNumber, MyCode); end. Tu fais ton opération, puis tu reconvertis en variable String, avec Str, pour afficher. Str(Nombre : Real, Chaine : String); Nombre = ta variable numérique, Chaîne = ta variable de sortie, de type string. Exemple de code : var MyNumber : Real; MyTexte : String; begin MyNumber := Pi; Str(MyNumber, MyTexte); end. Je n'ai jamais touché au turbo pascal, mais ça me semble logique -
Bien sur, tu peux déplacer ou copier des fichiers dedans, ou y faire un raccourci avec le bouton droit ! Bon, pour ceux que ça interesse, j'ai fait un ptit programme, vous pouvez le télécharger ici. Il est très léger (20 ko). Dès que vous l'ouvrez, le tiroir se ferme. (il n'y a pas de fenêtre avec des boutons dedans) Inconvénients : Il ne ferme le tiroir que d'un seul lecteur, et il vous faut, VB oblige, msvbvm60.dll (655 ko) et vb6fr.dll (85 ko) si vous ne les avez pas.
-
Hum, y-a-t-il quelqu'un qui pourrait me dire pourquoi ça ne marche pas ? J'ai bien compris le fonctionnement des pointeurs, maius je n'arrive jamais à me corriger ! #include "stdafx.h" #include <iostream.h> void mafonction(int *mavar1); void main(int argc, char* argv[]) { int mavar2 = 5; mafonction(&mavar2); cout << mavar2; } void mafonction(int *mavar1) { mavar1 = 10; } Ça m'affiche : truc.cpp(19) : error C2440: '=' : cannot convert from 'const int' to 'int *' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast Error executing cl.exe. Un autre truc, il sert à quoi stdafx.h ?
-
Si tu as Visual Basic, il extrêmement simple de réaliser un bouton dans la barre de lancement rapide, qui ouvrirait le tiroir CD
-
Pareil avec VB6... il n'y a que l'arctangente ! Bizarre !
-
Et la méthode manuelle ! regedit : HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer Créer une valeur DWORD nommée "NoRecentDocsMenu" de valeur 1 Et pour désactiver carrément l'historique (plus de raccourcis dans le dossier recent) Créer une valeur DWORD nommée "NoRecentDocsHistory" de valeur 1 (même emplacement)
-
Ok, tout s'éclaire ! Le truc du 0 qui terminent les chaînes de caractères, c'était expliqué dans le bouquin, au moins ! Merci encore !
-
Merci beaucoup à tous les deux !! Je regarderai ça ce soir avec plus d'attention. Simple précision, automne, quand tu mets s = new char[nbre + 1]; La valeur de la variable est mise sur le tas, non ? Et il faut donc supprimer la variable du tas après que l'on s'en soit servi, avec : delete [] s; (dis moi si je me trompe) Et, dernière question, dans mon bouquin, pour écrire une chaîne de caractère, il y a écrit (exemple) "chaîne" Et pour un caractère, ils mettent 'A' Pourquoi cette différence de guillemets ? Est-ce que ça a la même signification ? Ou y-a-t-il une différence ? Dites-moi si j'abuse Mais je veux comprendre...
-
Ha, c'est à dire que quand j'aurais compris, ça ira tout seul ! Ben alors j'ai pas compris ! lol "le pointeur renvoie dans l'espace mémoire du programme" Pour moi c'est toujours du chinois. Je ne comprend pas l'intêret d'un pointeur. Que pointe-t-il ? Si char* pointe vers un caractère, quel est l'avantage par rapport à char ? Pourquoi pointer un caractère au lieu d'utiliser une variable non-pointeur qui contiendrait le même caractère ??? Cette notion de pointeur m'échappe... Prenons un exemple concret : char* c; char c; Quelle est la subtilité ? En tous cas, merci pour ta réponse. Si quelqu'un pouvait m'éclairer sur le sujet, ce serait super ! (le chapitre sur les pointeurs n'explique quasiment rien, je suis donc censé tout savoir ?!?)
-
Argh, je ne comprends plus rien ! Je mets ça : __________ #include "stdafx.h" #include <iostream.h> char c; int main(int argc, char* argv[]) { while (cin >> c) { cout << c; } return 0; } ¯¯¯¯¯¯¯¯¯¯ Là, c'est OK, sauf qu'il n'y a pas de retour à la ligne. Et j'ai pas mis de char* Question : comment ajouter un "n" à la fin de la chaîne, et non pas après chaque caractère ? Le transfert se fait-il toujours caractère par caractère ? (excusez si je m'exprime mal) Autre question : y-a-t-il quelqu'un qui voudrait bien m'expliquer le fonctionnement des pointeurs ? (c'est assez compliqué dirait-on) Pourquoi ma boucle plante avec char* et non pas avec char ? Je ne saisis toujours pas la différence. Il faut que je stocke un caractère en mémoire avant d'utiliser un pointeur qui le "pointe" ? Désolé, mais je ne comprends pas. Pourtant ya écrit "débutant" sur le bouquin !
-
Waow, merci pour les réponses ! Par contre, Florent, ton code ne marche pas mieux : c:c++machinmachin.cpp(18 ) : fatal error C1010: unexpected end of file while looking for precompiled header directive Error executing cl.exe.
-
Celui de Visual C++ 6.0 The thread 0xFAD57393 has exited with code 0 (0x0). The program 'C:C++machinDebugmachin.exe' has exited with code 0 (0x0).
-
Merci bien ! Donc j'ai fait une boucle toute conne : char* c; int main(int argc, char* argv[]) { while(cin >> c) { cout << c << "n"; } return 0; } Mais voilà, si je mets char, ça marche (enfin, 1 seul caractère par ligne) Si je mets char*, ça quitte le programme.
-
Ok, grouille-toi alors