C - fscanf () Lecture des Données Dans un Tableau
J'ai une étrange erreur lors de la lecture de mes données dans un tableau. Mon but est de lire un fichier qui a une seule colonne de chiffres dans un tableau, ligne par ligne.
#include <stdio.h>
int main() {
int numArray = [20];
int i = 0;
FILE *infile;
infile = fopen("numbers", "r");
while(!feof(infile))
{
fscanf(infile,"%d",&numArray[i]);
i++;
}
fclose(infile);
return 0; }
C'est mon erreur de compilation:
sort_algorithms.c: In function ‘main’: sort_algorithms.c:6: erreur:
attendu expression before ‘[’ token sort_algorithms.c:16: erreur:
indice de la valeur n'est ni tableau, ni pointeur
- Quelle est l'erreur?
int numArray = [20]
n'est pas une erreur de syntaxe, vous signifiait probablementint numArray[[20]
? Et peut-être plus important encore, vous avez un énorme trou de sécurité—ce qui se passe si le fichier contient plus de 20 numéros-t-il? - nick_name: ce n'est pas la façon dont vous déclarez un tableau....
- Êtes-vous par hasard un programmeur python?
- Oui, je suis un programmeur Python!
- Quel est le problème avec int numArray = [20]?
- Pour la déclaration: int numArray[20]; Pour l'initialisation: int numArray[20] = {20}, et le [20] signifie un tableau avec une taille de 20, pas l'élément.
- les littéraux de tableau sont fermés entre {}, il n'est []. et il ne peut pas être utilisé comme gratuit comme en python, c'est à dire que vous ne pouvez pas attribuer, sauf lors de l'initialisation.
Vous devez vous connecter pour publier un commentaire.
la bonne façon de déclarer un tableau en c est comme ceci: