<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[Question] Un FILE* en argument de fonction]]></title><description><![CDATA[<p dir="auto">Hey, je commence un projet en C et j'ai un problème avec une fonction</p>
<p dir="auto">Je résume rapidement la fonction:</p>
<p dir="auto">Un fichier texte est composé de plusieurs lignes, chaque ligne contient 3 chiffres, une coordonnnée x, une coordonnée y et une valeur à mettre à ces coordonnées dans la grille. La fonction remplie d'abord la grille avec des 0, puis récupères les valeurs du fichiers pour les insérer dans la grille aux bonnes coordonnées.</p>
<p dir="auto">Ma fonction ne marche pas et fait planter le programme et j'ai vraiment du mal à la corriger, vous auriez une solution? (J'ai des doutes sur la syntaxe des arguments de la fonction...)</p>
<pre><code>void lire_Grille(FILE* nomFichier[400],int grille[][9])
{
    int i, j;
    for (i=0; i&lt;9;i++)
    {
        for (j=0;j&lt;9;j++)
        {
            grille[i][j]=0;
        };
 
    };
    i = fgetc(nomFichier);
    do
    {
        j = fgetc(nomFichier);
        grille[i][j] = fgetc(nomFichier);
        k = fgetc(nomFichier);
        while (k==" " || k=="\n")
        {
            k=fgetc(nomFichier);
        };
        i = k;
    } while (i!=EOF);
}
</code></pre>
]]></description><link>http://new.melinyel.net/topic/1446/question-un-file-en-argument-de-fonction</link><generator>RSS for Node</generator><lastBuildDate>Thu, 21 May 2026 18:31:46 GMT</lastBuildDate><atom:link href="http://new.melinyel.net/topic/1446.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 10 Jan 2015 21:16:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Wed, 14 Jan 2015 13:22:28 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">255 c'est déjà un unsigned char (2^8 - 1), le char signé il monte jusqu'à 127 (2^7 - 1, puisque il y a un bit de signe)</p>
<p dir="auto">Après pour le NULL il me semble que c'est juste un alias soit pour 0 soit pour (void*)0, la différence c'est pour la lisibité du code et savoir qu'on manipule un pointeur.</p>
<p dir="auto">Sinon Nell tu peux utiliser memset(grille[x][y].tab, 9, 0);  si tu veux l'initialiser à 0 <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
</blockquote>
<p dir="auto">Décidément, faut vraiment que je dorme de temps à autres... En plus; j'ai bien précisé que c'était un octet u_u, faut vraiment que j'aille me coucher... XD</p>
<p dir="auto">+1 pour le memset, après y'a toujours la technique de l'auto-memset via init du C ({0}) \o/.</p>
<p dir="auto">Sinon oui, NULL est un define sur (void*)0 (tout comme TRUE est un define sur 1 et FALSE sur 0). Il est effectivement utilisé pour la lisibilité du code.</p>
]]></description><link>http://new.melinyel.net/post/15157</link><guid isPermaLink="true">http://new.melinyel.net/post/15157</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Wed, 14 Jan 2015 13:22:28 GMT</pubDate></item><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Wed, 14 Jan 2015 09:34:04 GMT]]></title><description><![CDATA[<p dir="auto">255 c'est déjà un unsigned char (2^8 - 1), le char signé il monte jusqu'à 127 (2^7 - 1, puisque il y a un bit de signe)</p>
<p dir="auto">Après pour le NULL il me semble que c'est juste un alias soit pour 0 soit pour (void*)0, la différence c'est pour la lisibité du code et savoir qu'on manipule un pointeur.</p>
<p dir="auto">Sinon Nell tu peux utiliser memset(grille[x][y].tab, 9, 0);  si tu veux l'initialiser à 0 <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>http://new.melinyel.net/post/15156</link><guid isPermaLink="true">http://new.melinyel.net/post/15156</guid><dc:creator><![CDATA[arcanum]]></dc:creator><pubDate>Wed, 14 Jan 2015 09:34:04 GMT</pubDate></item><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Wed, 14 Jan 2015 13:20:41 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">Hmm ok la différence de 2 char donne un int alors? c'est toujours bon à savoir <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto">Je suis pratiquement à la fin du projet mais je bute sur un petit truc</p>
<p dir="auto">On a un int qui ressemble à ça:  grille[x][y].tab[z] (il a une valeur entre 0 et 9)</p>
<p dir="auto">Le prof veut qu'on rende égal grille[x][y].tab à NULL</p>
<p dir="auto">Seulement quand je le fais ça me dit que je peux pas assigner un void a un int.</p>
<p dir="auto">Alors j'ai testé *grille[x][y].tab=NULL Mais j'ai fait ça au hasard et je sais pas si c'est juste, vous auriez une idée?</p>
<p dir="auto">EDIT: J'ai mis la première case= '\0', on verra bien ce que ça donne</p>
</blockquote>
<p dir="auto">Alors, pas du tout, un char moins un char = un char.</p>
<p dir="auto">N'oublie pas qu'un char, c'est une valeur numérique d'un octet. (La différence, c'est qu'un int, cest 4 octets)</p>
<p dir="auto">La conversion théorique de char en int est possible grâce à un cast. Le contraire peux provoquer des résultats surprenants si l'int dépasse 127 <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /> . (ou 255 pour les unsigned)</p>
<p dir="auto">Pour le NULL, n'oublie pas que NULL != 0.</p>
<p dir="auto">En faite, NULL corresponds à une adresse mémoire, 0 à un int. (c'est un peu contradictoire, vue qu'une adresse mémoire est un int, mais là n'est pas la question, c'est pour bien séparer l'adresse NULL d'un simple 0).</p>
<p dir="auto">Ainsi, un int peux avoir pour valeur 0, mais pas NULL.</p>
<p dir="auto">A contrario, un pointeur peux avoir la valeur NULL et 0.</p>
]]></description><link>http://new.melinyel.net/post/15154</link><guid isPermaLink="true">http://new.melinyel.net/post/15154</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Wed, 14 Jan 2015 13:20:41 GMT</pubDate></item><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Tue, 13 Jan 2015 16:13:02 GMT]]></title><description><![CDATA[<p dir="auto">Hmm ok la différence de 2 char donne un int alors? c'est toujours bon à savoir <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
<p dir="auto">Je suis pratiquement à la fin du projet mais je bute sur un petit truc</p>
<p dir="auto">On a un int qui ressemble à ça:  grille[x][y].tab[z] (il a une valeur entre 0 et 9)</p>
<p dir="auto">Le prof veut qu'on rende égal grille[x][y].tab à NULL</p>
<p dir="auto">Seulement quand je le fais ça me dit que je peux pas assigner un void a un int.</p>
<p dir="auto">Alors j'ai testé *grille[x][y].tab=NULL Mais j'ai fait ça au hasard et je sais pas si c'est juste, vous auriez une idée?</p>
<p dir="auto">EDIT: J'ai mis la première case= '\0', on verra bien ce que ça donne</p>
]]></description><link>http://new.melinyel.net/post/15103</link><guid isPermaLink="true">http://new.melinyel.net/post/15103</guid><dc:creator><![CDATA[nell]]></dc:creator><pubDate>Tue, 13 Jan 2015 16:13:02 GMT</pubDate></item><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Sun, 11 Jan 2015 20:28:44 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">fgetc retourne un int directement,  et atoi requiert un char*, donc dans ce cas ce n'est pas vraiment utile de l'utiliser</p>
</blockquote>
<p dir="auto">Effectivement, autant pour moi.</p>
<p dir="auto">La technique du 48 fonctionne, mais il es plus conseillé d'utiliser directement la valeur du char, comme ceci:</p>
<p dir="auto">49 - '0' = 1.</p>
<p dir="auto">(ce qui se traduit par '1' - '0' = 1).</p>
<p dir="auto">Voilàà:</p>
]]></description><link>http://new.melinyel.net/post/15071</link><guid isPermaLink="true">http://new.melinyel.net/post/15071</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Sun, 11 Jan 2015 20:28:44 GMT</pubDate></item><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Sun, 11 Jan 2015 19:24:26 GMT]]></title><description><![CDATA[<p dir="auto">fgetc retourne un int directement,  et atoi requiert un char*, donc dans ce cas ce n'est pas vraiment utile de l'utiliser</p>
]]></description><link>http://new.melinyel.net/post/15070</link><guid isPermaLink="true">http://new.melinyel.net/post/15070</guid><dc:creator><![CDATA[davydavek]]></dc:creator><pubDate>Sun, 11 Jan 2015 19:24:26 GMT</pubDate></item><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Sun, 11 Jan 2015 18:58:58 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">Les chiffres de 0 a 9 inclusif sont au indexes 48-57 de la table ASCII, il suffit donc de soustraire 48 au caractère.</p>
<p dir="auto">ex:</p>
<p dir="auto">'1' = 49</p>
<p dir="auto">49 -  48 = 1</p>
<p dir="auto">'6' = 54</p>
<p dir="auto">54 - 48 = 6</p>
</blockquote>
<p dir="auto">La fonction <a href="http://pwet.fr/man/linux/fonctions_bibliotheques/atoi" rel="nofollow ugc">atoi</a> fais le café aussi à ce niveau là <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /> .</p>
]]></description><link>http://new.melinyel.net/post/15069</link><guid isPermaLink="true">http://new.melinyel.net/post/15069</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Sun, 11 Jan 2015 18:58:58 GMT</pubDate></item><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Sun, 11 Jan 2015 14:37:11 GMT]]></title><description><![CDATA[<p dir="auto">De rien, n’hésites pas a demander de l'aide si tu as d'autres questions <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /></p>
]]></description><link>http://new.melinyel.net/post/15068</link><guid isPermaLink="true">http://new.melinyel.net/post/15068</guid><dc:creator><![CDATA[davydavek]]></dc:creator><pubDate>Sun, 11 Jan 2015 14:37:11 GMT</pubDate></item><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Sun, 11 Jan 2015 13:53:05 GMT]]></title><description><![CDATA[<p dir="auto">Ah oui ça facilite tout en faisant comme ça en fait x)</p>
<p dir="auto">Merci beaucoup alors, la fonction marche exactement comme il faut <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--smile" style="height:23px;width:auto;vertical-align:middle" title=":D" alt="😄" /></p>
]]></description><link>http://new.melinyel.net/post/15067</link><guid isPermaLink="true">http://new.melinyel.net/post/15067</guid><dc:creator><![CDATA[nell]]></dc:creator><pubDate>Sun, 11 Jan 2015 13:53:05 GMT</pubDate></item><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Sun, 11 Jan 2015 13:27:38 GMT]]></title><description><![CDATA[<p dir="auto">Les chiffres de 0 a 9 inclusif sont au indexes 48-57 de la table ASCII, il suffit donc de soustraire 48 au caractère.</p>
<p dir="auto">ex:</p>
<p dir="auto">'1' = 49</p>
<p dir="auto">49 -  48 = 1</p>
<p dir="auto">'6' = 54</p>
<p dir="auto">54 - 48 = 6</p>
]]></description><link>http://new.melinyel.net/post/15065</link><guid isPermaLink="true">http://new.melinyel.net/post/15065</guid><dc:creator><![CDATA[davydavek]]></dc:creator><pubDate>Sun, 11 Jan 2015 13:27:38 GMT</pubDate></item><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Sun, 11 Jan 2015 13:25:04 GMT]]></title><description><![CDATA[<p dir="auto">Merci! c'était une des erreurs et ça m'a permis de trouver l'autre du coup:</p>
<p dir="auto">i = fgetc(nomFichier);</p>
<p dir="auto">j = fgetc(nomFichier);</p>
<p dir="auto">i et j prennent la valeur ascii du caractère, du coup après ça fait grille[48][53] et ça fait planter vu que la grille est une [9][9]</p>
<p dir="auto">Maintenant faut voir comment convertir, c'est là que je me dis que le Python c'était vachement pratique en fait x) Apparemment ce serait à faire avec sscanf</p>
]]></description><link>http://new.melinyel.net/post/15063</link><guid isPermaLink="true">http://new.melinyel.net/post/15063</guid><dc:creator><![CDATA[nell]]></dc:creator><pubDate>Sun, 11 Jan 2015 13:25:04 GMT</pubDate></item><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Sun, 11 Jan 2015 04:57:08 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">Je pense que le problème vient du premier argument de ta fonction, ce n'est pas un FILE*, mais un tableau de 400 FILE*. Je pense que enlever le " [400] " après "monFichier" devrait le résoudre.</p>
</blockquote>
<p dir="auto">+1, je rajoutes aussi que tu es en C, essaye de respecter les normes internationales qui ont été mises en place, elles sont pas là pour rien.</p>
<p dir="auto">(Pour info, les normes sont: ansiC et isoC).</p>
<p dir="auto">Pour vérifier que ton code respecte bien tout, et pour éviter des futures erreurs, je te conseille de compiler avec les flags suivants (sous gcc):</p>
<p dir="auto">-W -Wall -Werror -pedantic -ansi</p>
<p dir="auto">Tu verra, tu évite 90% des problèmes communs (comme la non initialisation des vars, le pointage foireux, etc...)</p>
]]></description><link>http://new.melinyel.net/post/15059</link><guid isPermaLink="true">http://new.melinyel.net/post/15059</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Sun, 11 Jan 2015 04:57:08 GMT</pubDate></item><item><title><![CDATA[Reply to [Question] Un FILE* en argument de fonction on Sun, 11 Jan 2015 01:44:41 GMT]]></title><description><![CDATA[<p dir="auto">Je pense que le problème vient du premier argument de ta fonction, ce n'est pas un FILE*, mais un tableau de 400 FILE*. Je pense que enlever le " [400] " après "monFichier" devrait le résoudre.</p>
]]></description><link>http://new.melinyel.net/post/15058</link><guid isPermaLink="true">http://new.melinyel.net/post/15058</guid><dc:creator><![CDATA[davydavek]]></dc:creator><pubDate>Sun, 11 Jan 2015 01:44:41 GMT</pubDate></item></channel></rss>