J'ai ce code fonctionnant finalement avec un seul argument sur ma ligne de commande, c'est-à-dire un fichier avec lequel travailler, bien que j'ai conçu le code avec le concept de travailler avec un nombre illimité de fichiers. Ce qu'il fait est de prendre un certain nombre X de fichiers txt contenant des mots séparés par des espaces, et remplace les espaces par \ n créant ainsi une liste de mots. Bien, il termine avec succès le premier argument, il segmente des fautes quand j'ajoute deux, ou trois, veut vraiment que cela fonctionne!Deux arguments de ligne de commande ou plus?
PS. Ceci est une continuation de 2 autres articles sur le même code. Ce n'est pas une tâche de devoirs, je suis actuellement loin de Uni, et j'expérimente juste avec le fichier C i/o avant nos conférences.
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <stdio.h>
int main(int argc, char** argv) {
FILE *fpIn, *fpOut;
int i, j;
j = 1;
int c;
char myString[256];
printf("%d", argc);
printf("\n");
printf("The following arguments were passed to main(): ");
for(i=1; i<argc; i++) printf("%s ", argv[i]);
printf("\n");
while(argc--) {
for(i = 1; i <= argc; i++) {
fpIn = fopen(argv[j], "rb");
snprintf(myString, 256, "%s~[%d]", argv[j], i);
fpOut= fopen(myString, "wb");
while (1) {
c = fgetc(fpIn);
if (c == EOF)
break;
if (isspace(c))
c = '\n';
fputc(c, fpOut);
}
j++;
}
}
return 0;
}
Vous arriverez à la solution une fois que vous aurez obtenu la droite imbriquée. Éliminer complètement le 'while' et * utiliser * l'index itéré dans la boucle' for'. – thiton
Pourquoi avez-vous à la fois 'while (argc -)' et 'for (i = 1; i <= argc; i ++)'? – Francois