• [^] # Re: Ton post est une blague ou

    Posté par (site web personnel, Mastodon) . En réponse au message Chaine de caractère. Évalué à 3.

    1. commencer par écrire du pseudo code: tu veux faire quoi, dans quel ordre
    2. chercher les fonctions qui peuvent t'aider à le faire... notamment c'est bien le diable s'il n'y a pas une fonction qui lit une ligne entière dans un fichier texte
    3. oui, effectivement, le C de base, pour traiter des chaines de caractère de base, c'est tout pourri. Les langages de script comme python, perl et shell l'enfoncent.
    4. Il te reste la solution la plus simple: au lieu de réécrire la roue utiliser une API qui a des fonctions d'n peu plus haut niveau un peu plus conviviales, comme l'excellente glib, effectivement: http://www.gtk.org/api/2.6/glib/glib-File-Utilities.html (regarde bien g_get_file_contents)
    5. ne pas se décourager, c'est pas évident quand on débute
    6. Commenter son code, mais pas comme tu le fais: dire *ce qu'on fait* et pas *comment on le fait* dans tes commentaires

    Si tu ne veux pas utiliser de bibliothèque comme la glib, alors tu trouveras une bonne référence des fonctions standard en C:
    http://www.delorie.com/djgpp/doc/libc-2.02/
    Les modules qui t'intéressent: stdio (pour l'accès au fichiers dans ons cas), string (pour la manipulation de chaines de caratères)

    après, tu fais plusieurs erreurs dans ton code, à vue de nez:

    chainelu char[30]; il faut mettre le type avant le nom de variable: char chainelue[30];
    char *ptr; ok
    Ensuite tu as besoin d'ouvir ton fichier pour récupérer un descripteur de fichier à utiliser dans fgets (regarde fopen: http://www.delorie.com/djgpp/doc/libc-2.02/libc_299.html ), du genre fd = fopen(entree.txt, "r");
    fgets(cjainelu,sizeofchainelu),entree.txt); => mauvais usage de sizeof, et on passe un pointeur sur un descripteur de fichier en dernier argument, et pas le nom du fichier :fgets(chainelue, sizeof(chainelue), fd);

    [...]

    Bref, relis un petit peu tes cours, commence par un ou deux tutoriels de C, parce que là tu manques cruellement de connaissances de base pour faire ce que tu souhaites. N'oublie pas aussi d'écrire ligne par ligne et de compiler juste après chaque ajout, les messages du compilateur te guideront pour corriger tes erreurs. Mais là tu es un peu "juste".