J'essaie donc d'entrer plusieurs fichiers dans le programme assigné. Le code de mon fichier d'entrée est le suivant :
int read_File(int *hp, int *d, int *s, char t[])
{
FILE *infile;
infile = fopen("input1.txt", "r");
if (!infile)
{
return 0;
}
else
{
fscanf(infile, "%d", hp);
fscanf(infile, "%d", d);
fscanf(infile, "%d", s);
fscanf(infile, "%s", t);
fclose(infile);
return 1;
}
J'ai fait
$>gcc AssignedProgram.c -o nqt
$>./nqt input1.txt
mais si je veux lire input2.txt, je dois passer de input1.txt à input2.txt dans les codes. Y a-t-il de toute façon pour contourner cela et lire input2.txt sans changer de input1.txt à input2.txt dans les codes
comme quand j'ai essayé ./nqt input1.txt => c'est normal MAIS ./nqt input2.txt c'est un défaut de segmentation :11
J'ai essayé: de changer "input1.txt" dans les codes en "nqt" mais c'était une idée stupide
et BTW : qu'est-ce que ./nqt
Aidez-moi, s'il vous plaît!
Vous devez écrire main()
comme l'un des formulaires équivalents ci-dessous
int main(int argc, char **argv) { /*...*/ }
int main(int argc, char *argv[]) { /*...*/ }
de sorte que argc
et argv
sont configurés par votre environnement sur des valeurs appropriées.
Par exemple
$ ./nqt input.txt
^^^^^ ^^^^^^^^^ --> 1
\\\\\-------------> 0
Traduit dans votre programme en
argc == 2
argv[0] ==> pointer to "./nqt"
argv[1] ==> pointer to "input.txt"
argv[2] ==> NULL
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots