Merci Thierry, après une bonne lecture j'ai trouvé !:D
Version imprimable
Sve@r merci pour ta réponse, mais je n'ai pas saisi un truc, si par exemple je suis dans un menu où les deux actions possibles sont seulement d'accèder à nouveau à des sous-menus, comment faire pour que le programme se termine? comment quitter le sous-menu qui donne accès lui-même à ses propres sous-menus?
Et excuse moi, mais je ne sais pas comment changer le titre de la discussion, comment je dois - faire ?
La j'ai seulement changer l'intitulé je crois...8O
Merci
J'ai réussi en introduisant une variable fin!:D
Bonjour , j'aimerais savoir comment demander à un programme d'écrire telle chose a la troisième ou quatrième ligne d'une fichier texte. Peut-on spécifier la ligne ou on veut que ce soit écrit sans mettre \n\n\n ?
Sur un fichier texte, non. On ne peut l'utiliser que de manière linéaire.
exist-il un type de fichier ou l'on peut faire ca ?
ou sinon comment peut-on faire ?
Sur un fichier binaire avec des enregistrements de longueur fixe, tu peux facilement accéder au troisième ou quatrième enregistrement...
on ne peut pas demander à un programme de lire de tel caractère à tel caractère une quelconque variable?
Une variable chaîne oui, un fichier texte non.
Excusez moi, je vais expliquer un peu plus
En fait j'ai un fichier .txt donc le contenu est
0010110
0101100
0111011
...
Et j'aimerais demander au programme de faire le calcul pour chaque ligne en fonction d'une suite {1 , 2, 3, 4, 5, 6 ,7} par ex
Pour la première ligne il fait
0*1+0*2+1*3+0*4+1*5+1*6+0*7=C
etc...
Pour chaque ligne il doit faire le calcul.
Merci
Personne n'a une idée ?
utilise fgets, pour remplir ta chaine.
Après ta chaine contient des 0 et des 1...
par ex chaine[0] = '0' et chaine[1] = '1'.
Avec ça normalement c'est bon.
non fgets te rempli le tableau avec les caractères lu et met le caractère de fin de ligne. ex:
si tu rentre "0110" dans ta console, fgets va remplir le tableau chaine comme ceci => chaine[0]='0', chaine[1]='1', chaine[2]='1', chaine[3]='0' chaine[4]='\0'(ATTENTION: prévoi une taille de tableau assez large car sinon tu fera un dépassement de tableau, c'est l'inconvénient de fgets).
Une fois que tu as cela tu fai une boucle et dedans tu multiplie chaque case par les éléments de ton ensemble.
le truc est que les 011001... ne sont pas rentrés par l'utilisateur, ils viennent d'un fichier texte par bloc de 8bits sur chaque ligne du .txt.
et je n'arrive pas à lui dire de faire un calcul séparé pour chaque ligne
s'il y a plusieurs lignes de bloc de 8bits de cette manière
01101101 -> comment faire pour qu'il distingue chaque ligne??
11011001
11011000
...
je dois créer plusieur tableaux du type de 'chaine' ??
un pour chaque ligne ? sachant qu'il peut y en avoir beaucoup beaucoup...
Salut,
Quand tu parles de blocs de 8 bits, ça veut dire que quand tu ouvre le fichier .txt tu vois les 0 et les 1??
Ou alors tu vois du charabia et on doit extraire les bits des caractères?
Sinon non, si tu es sûr que tu as 8 caractères sur chaque ligne, tu peux faire ainsi
Je ne suis pas sûr de la syntaxe de fgets, vérifie si c'est ça :?Code:
1
2
3
4
5
6
7
8
9
10 while (....) { char machaine[9]; fgets(fichier, machaine); //Là tu fais ton calcul, sachant que le premier nombre est sur machaine[0] // le deuxième sur machaine[1], ... //Par exemple, si machaine[0] vaut '0', machaine[0] - '0' donne 0, et // si machaine[0] vaut '1', machaine[0] - '0' donne 1 }
Je ne pense pas que tu doives conserver toutes les chaines dans un tableau, procéder ligne par ligne ne te suffis pas?
coyotte507