Bonjour, je rencontre un problème avec un programme qui change la luminosité d'une image PPM.
Le fonctionnement est simple on écrit dans la console : [nom du programme] [nom de l'image que l'on veut modifier].PPM [nom de l'image modifié].PPM

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
 
main(int arg , char **argv[]) {
	FILE *f,*g;
	printf("1er argument : %s\n" ,argv[1]);
	printf("2eme argument : %s\n" ,argv[2]);
	f = (FILE *) fopen (argv[1], "r");
	g = (FILE *) fopen (argv[2], "w");
	int i;
	printf("Entrez une intensite : \n");
	int cte;
	scanf("%d",&cte);
	int cpt=0;
	i=fgetc(f);
	while (!feof(f)) {
		if (cpt<3) {
			fputc(i,g);
			if (i==10) {
				cpt++;
				}
			}
		else {
			i=i-cte;
			if (i<0) { 
				i=0;
				}
			if (i>255) {
				i=255;
				}
			fputc(i,g);
			}
		i=fgetc(f);
		}
	fclose(f);
	fclose(g);
}
Quand je compile ce petit script sous linux avec gcc, le programme fonctionne sans problème.
Mais si je compile ce script avec Code::blocks sur Windows le programme ne fonctionne pas. C'est à dire que le fichier est bien crée et quand j'ouvre ce fichier avec Notepad++ je constate qu'il manque des caractères, en faite mon pointeur f n'a pas été jusqu’à la fin du fichier de départ.
J'ai fait un test avec un simple programme qui recopie tout le fichier de départ mais même problème je constate qu'une partie est recopié.

Si quelqu'un à une réponse a mon problème
En vous remerciant