Je suis désolé pour mon mauvais anglais, mais je vais essayer d'expliquer mon problème. En utilisant C, je veux faire une sortie d'une liste d'adresses IP. Mais lorsque j'ouvre le fichier .txt, il semble vide.Problèmes avec le fichier I/O en C
J'ai essayé d'imprimer sur stderr aussi, mais je n'ai pas de sortie du tout. Quel est le problème? Il semble que les boucles for
ne soient pas exécutées.
Voici le code. (imprimerait adresses de 192.168.51.1 à 192.168.51.254)
#include <stdio.h>
#define B1_S 192
#define B1_E 192
#define B2_S 168
#define B2_E 168
#define B3_S 51
#define B3_E 51
#define B4_S 1
#define B4_E 254
#define FNAME "ip.txt"
#define MIN_RANGE 0
#define MAX_RANGE 255
void to_next(int *x);
main()
{
FILE *fp;
int i, j, k, l;
if(fp = fopen(FNAME, "w"))
{
for(i=B1_S; i<=B1_E; to_next(&i))
for(j=B2_S; j<=B2_E; to_next(&j))
for(k=B3_S; j<=B3_E; to_next(&k))
for(l=B4_S; l<=B4_E; to_next(&l))
fprintf(fp, "%d.%d.%d.%d\n", i,j,k,l);
fclose(fp);
}
else
printf("Error opening file.\n");
}
void to_next(int *x)
{
if(*x < MAX_RANGE)
*x+=1;
else
*x = MIN_RANGE;
}
Oh, putain. Je suis tellement stupide. >< – user533780
Merci beaucoup. Je vais mieux lire mon code. – user533780
@ user533780: C'est une bonne idée d'accepter une réponse qui résout votre problème. C'est poli et empêche également d'autres personnes de perdre du temps à examiner des questions qui ont déjà une réponse acceptée. – AlastairG