Donc en fait sizeof marcherait avec un tableau et pas strlen() ? c'est ça ?
Absolument. L'unité de compte est le byte (même taille qu'un char, soit 1, comme toute unité qui se respecte). Cela signifie que la taille d'un tableau de char est identique à son nombre d'élements. Ce n'est évidemment pas vrai avec les autres types.
Soit
int a[N];
sizeof a retourne N * sizeof (int).
Pour obtenir N (le nombre d'élements), il faut diviser la taille du tableau en bytes par la taille d'un des éléments (en bytes), soit une de ces solutions :
sizeof a / sizeof a[0] sizeof a / sizeof a[N-1] sizeof a / sizeof a[N] sizeof a / sizeof a[123456] sizeof a / sizeof a[i]
ou (et c'est la solution la plus simple)
sizeof a / sizeof *a
Citation : Ze moi
j'ai raison à propos des flux et tampons?
Oui.
Citation : Ze moi
strlen, c'est que pour les char [] initialisés
strlen() ne fonctionne que sur les chaines valides initialisées.
Rappel, une chaine est un tableau de char initialisé terminé par un 0.
je commence à comprendre à peu près tout le code mais à quoi sert d'avoir dans un fichier(stdout) se que le programme fait?
Et à quoi ça sert de mettre, ce que rentre l'utilisateur, dans un fichier stdin?
Comment est-il possible que '\n' soit enregistrè dans stdin?
Enfin, dans le code suivant, tu/vous continues/z la boucle tant que c != '\n' or tu/vous as/vez vérifié auparavant qu'il n'y avait pas de '\n'.
stdin c'est le clavier.
Appuyer sur entrée rajoute un \n.
Dans le premier cas il vérifie si le \n est dans la chaine retournée par le fgets, si il est on le vire, sinon ça veut dire qu'il est encore dans le flux, donc on lit dans le vent le flux jusqu'à sa fin (\n ou EOF) pour que les prochaines lectures soient propres.
non je n'en ai pas ça fait pas longtemps que j'ai commencer le C.
j'attend de finir les cours de mateo puis seulement après je vais m'enrichire e fin si j'y arrive.
Une dernière question, est-ce normal que je me mélange entre les languages. Je sais que le php et C ne sont pas pareil mais quand je me sius remit au php j'avais du mal à savoir comment gérer les variables ect ... c'était un peu flou et mélanger avec C (dans ma tête)...
Edit: J'ai fait un code pour travailler la lecture et l'écriture dans les fichiers en utilisant se que je viens d'apprendre. Est-ce comme ça qu'il faut l'utiliser:
(par contre il y a un bug quand je veux afficher le contenu du fichier ben la console me demende d'entrer quelque chose
J'ai fait un code pour travailler la lecture et l'écriture dans les fichiers en utilisant se que je viens d'apprendre. Est-ce comme ça qu'il faut l'utiliser:
Presque, mais pour relire, il faut d'abord revenir au début :
rewind (fichier);
Mais quoiqu'en dise M@teo, (je rvendique le droit de ne pas être d'accord avec lui) je déconseille formellement les modes '+' aux débutants. Trop de risque de destruction de fichier. Je conseille les modes "r", "w" et "a". Avec fermeture avant de passer à l'autre mode. C'est beaucoup plus sûr.
non je n'en ai pas ça fait pas longtemps que j'ai commencer le C.
j'attend de finir les cours de mateo puis seulement après je vais m'enrichire e fin si j'y arrive.
Une dernière question, est-ce normal que je me mélange entre les languages. Je sais que le php et C ne sont pas pareil mais quand je me sius remit au php j'avais du mal à savoir comment gérer les variables ect ... c'était un peu flou et mélanger avec C (dans ma tête)...
Edit: J'ai fait un code pour travailler la lecture et l'écriture dans les fichiers en utilisant se que je viens d'apprendre. Est-ce comme ça qu'il faut l'utiliser:
(par contre il y a un bug quand je veux afficher le contenu du fichier ben la console me demende d'entrer quelque chose
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.