CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

J´aide les personne en C/C++

LGV
LGV
Niveau 28
01 juin 2005 à 14:50:37

" " tous les codes d´erreurs des fonctions doivent etre verifié, un message d´erreur doit etre ecrit sur std::cerr le cas échéant. " --> c´est un code amateur, j´fais ca pour le plaisir et si je commence à bourrer mon code de ca j´suis pas sortit de la merde, déjà que je galère "

tester les valeurs de retour est indispensable, amateur ou pas ! quand un truc va commencer a foirer, tu seras bien content de pouvoir regarder le log de tes sorties, pour cibler rapidement la partie incriminee, et debugger en finesse sans perdre 5 heures a trifouiller..

godrik
godrik
Niveau 30
01 juin 2005 à 14:57:19

dynoplasma:
Tant que ton code est petit ca va.
mais essaye de relire un code non commenté de quelqu´un d´autre, ou un de tes codes que tu n´as pas touché depuis 6 mois. Tu vera ce que je veux dire.

tav:
forcement ca ne marche pas, puisqu´il y a un strcat dans deleteallfiles
donc, il va faire des c:\\readme.txt et ca forcement ca ne fonctionne pas.

strcpy(szDirectoryName,szWayDirectory);
strcat(szDirectoryName,"\\");
strcat(szDirectoryName,FindData.cFileName);
si dans szDirectoryName tu as c:\, tu vas efface c:\\toto.tmp
de la meme facon quand tu recurse, tu va scanner c:\\windows et ca forcement le system ne connais pas...

"si je commence à bourrer mon code de ca j´suis pas sortit de la merde, déjà que je galère . "

justement, si tu avais géré les cas d´erreurs en les affichant tu aurais plus d´information sur la source de ton erreur et donc tu passerai moins de temps a le debugger.

"chemin style " C:\Windows\Temp")"

lis msdn

"Mon compilo est Dev 4.9.9.1,..."

desole, je ne connais pas

JeanYvesYves
JeanYvesYves
Niveau 10
01 juin 2005 à 15:12:34

vive le debuggueur :) moi ça me fait gagner un temps monstre :)

godrik
godrik
Niveau 30
01 juin 2005 à 15:15:39

et oui, le debuggeur est l´ami de l´informaticien.
tout comme google, / /, warning 4, msdn, man... :)

en fait, un informaticien ca a plein d´ami! :)

Tav
Tav
Niveau 5
01 juin 2005 à 15:55:32

Moi quand je lance le debogueur, j´ai un joli écran bleu :demon:.

Alors j´peux pas l´utiliser.

Pour mon problème j´ai pensé qu´il fallait que je traite éspécialement" la lettre du lecteur puis que quand je trouve un dossier, je balance le tout dans ClearDirecotry ( pour l´histoire de la racine faut un \ et pour le dossier nan). Seulement sa me gonfle sérieusement parce que j´ai une erreur que je trouve pas. :grosregardnoir:. Si vous la trouviez, moi j´me suis trop énérvé dessus ( oui) ou si ovus aviez une meilleure solution...

godrik
godrik
Niveau 30
01 juin 2005 à 15:58:19

if ( chaine[strlen(chaine)] ! = ´\\´)
strcat(chaine,´\\´);
ca me parait pas mal

Tav
Tav
Niveau 5
01 juin 2005 à 15:59:19

:diable:

j´ai reglé l´erreur ( j´susi vraimen trop c*n).
a j´ai mis des messages d´erreur pour comprdnre d´où vient le problème...

http://rafb.net/paste/results/7ehrwd96.html

Compilation:

Fonction " DelTypeFiles": erreur lors de l´ouverture de la recherche

godrik
godrik
Niveau 30
01 juin 2005 à 16:01:46

tu as encore des fonctions qui ne retourne pas de valeur!!!!!!!!

Tav
Tav
Niveau 5
01 juin 2005 à 16:08:53

Moi j´vois que toutes les fonctions avec ´bool´ retournent au moins un ´false´ . ..

Sérieuesement, ca marche pas ca:
http://rafb.net/paste/results/gBbnA152.html
( avec les if la chaine finit pas par \)

Tav
Tav
Niveau 5
01 juin 2005 à 16:10:03

Et ca ne supprime toujours que aux racines

Ptival
Ptival
Niveau 10
01 juin 2005 à 16:39:29

Tes fonctions renvoient bien false si elles ratent, mais rien si elles réussissent...
return true; avant } arragerait ( au moins) ce détail

godrik
godrik
Niveau 30
01 juin 2005 à 17:26:56

ptival a raison, met des returns true a la fin de tes fonctions.
quand tu capte une erreur affiche un message, ca peut t´aider a comprendre

apres, je ne suispsa convaincu sur la politique: " quitte sur une erreur". Tu pourrais ne pas avoir les droits d´acces sur un repertoire, mais l´avoir sur les autres...

Deplus, tu appeles deux fois deleteallfiles pour chaque repertoire:
un quand tu rentre dans cleardirectory et une fois quand tu viens de le trouver ( ligne 49 et 61)

apres, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/getdrivetype.asp
ne specifie pas que c´est une valeur de retour de 3 si c´est une partion. prefere l´emploi des valeurs de MSDN.
Pour lister les volumes tu as d´ailleurs une bien meilleur solution qui existe: FindFirstVolume

as tu tracé l´exécution, afficher le nom des repertoir dans lequel il rentrait.
ajouter un printf("%s\n", zWayDirectoryClear); au debut de cleardirectory pourrait t´aider a y voir plus clair.

si tu as une erreur en cours de lecture de fichier, tu ne fais pas de find close.

Tav
Tav
Niveau 5
01 juin 2005 à 17:42:17

Pour quitter sur les erreurs, bah je peux pas faire mieux, après le code devient trop compliqué pour moi.

Pour la valeur 3: ca marche, j´ai testé!

FindFirstVolume peut arranger le problème?
Nan, donc j´touche pas à mon code, sa me complique encore les choses pour rien puisque sa résoud pas mon problème!

J´vais mettre FindClose et les trucs pour regarder où est mon erreur.

Tav
Tav
Niveau 5
01 juin 2005 à 17:58:59

http://rafb.net/paste/results/y8lR5487.html

Ca m´affiche:
-Nouveau disque dur trouve: C:\
-Fonction " DeleteAllFiles": debut de la recherche pour C:\
-erreur, l´handle de rechrche est invalide ( =INVALID_HANDLE_VALUE).

Pourquoi? Je ne sais pas.

godrik
godrik
Niveau 30
01 juin 2005 à 18:00:52

Pour quitter sur les erreurs, bah je peux pas faire mieux, après le code devient trop compliqué pour moi.

affiche juste un message d´erreur et continu...

Pour la valeur 3: ca marche, j´ai testé!

un test ca ne veut pas dire que " ca marche"
ca veut juste dire que chez toi sur ta machine le resultat semble conforme a tes attentes.
ca ne veut pas dire qu´iln´y a pas des cas tordu qui pourrait se presenter et que tu ne gererait pas
( en somme, l´exemple n´est pas une preuve)

FindFirstVolume peut arranger le problème?

Probablement pas, c´est juste que c´est plus propre.
en outre, en l´absence de log d´execution, je ne peux pas diagnostiquer l´erreur...

Tav
Tav
Niveau 5
01 juin 2005 à 18:06:11

Si ca peut aider:
ce code m´affiche http://rafb.net/paste/results/NpXdvE94.html ( j´ai supprimé la fonction DeleteAllFiles au debut de ClearDirectory):

-Nouveau disque dur trouve: C:\
-Fonction " ClearDirectory": debut de la recherche pour lisermoi.txt
-Erreur l´handle de recherche est invalide pour ClearDirectory ( =INVALID_HANDLE_VALUE)
Erreur fin de l´application pour les fichiers lisezmoi.txt
-Ca passe à D:\ pour les fichiers lisezmoi.txt

godrik
godrik
Niveau 30
01 juin 2005 à 18:13:45

If the function fails, the return value is INVALID_HANDLE_VALUE. To get extended error information, call GetLastError.
et getlasterror il dit quoi?

[in] A pointer to a null-terminated string that specifies a valid directory or path, and file name that can contain wildcard characters ( * and ? ).

tiens j´avais pas vu ca non plus.
donc je pense que a ton findfirstfile il faut passer c:\*
pourqu´il prenne tout...

nulissimo
nulissimo
Niveau 4
01 juin 2005 à 19:08:28

Merci a vous, surtout pour le sleep.
Avec un code modifié ( je sais toujours pas si c´est ma boucle for qui durait pas assez longtemps) mais j´ai reussi a lancer mon truc ^^.

Pour les commentaires, vu que c´etait le debut, je voulais juste faire vite et passer a la partie algorithmique et non les fonctions betes et mechantes d´affichage.

J´espere que je ne vous ai pas trop ennuyé.

Merci a vous

godrik
godrik
Niveau 30
01 juin 2005 à 19:11:58

aller, mon dernier message de la journée

J´espere que je ne vous ai pas trop ennuyé.

Si tu nous ennuyait, nous n´aurions pas répondu! :)

dynoplasmma
dynoplasmma
Niveau 9
01 juin 2005 à 21:03:16

Sous devC++, j´ai fait differentes pages
( tout le mende comprend jusque la)

_ ds une page je met tout mon programme et dans l´autre rien pour l´instant.

_ le truc compile correctement

_ je coupe void affichage ( )
{
blabla
}

_ Je le colle ds la deuxieme page

_ Je compile ca marche pas

C´est la leprobleme, qui pourrais m´aider, je ne peux pas etre plus explicite !

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment