Bonjour,

J'ai un soucis incompréhensible avec sscanf :/
Je charge des données dans un fichiers de configuration (un fichier texte quoi!) et tout va bien sauf avec quelques variables et je vois pas d'ou çà peut provenir.
Voilà le bout de code en question:
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
 
/*main: déclarations et appelle*/
 char *ip;
 char *nick;
 char *chan;
 char *msg;
 char *host;
 char *user;
 char *op;
 int sql, acc, reg, undo;
 unsigned int port;
 
i = loadconf (&ip, &port,  &host, &user, &nick, &chan, &msg, &op, &sql, &acc, &reg, &undo);
 
/*La fonction loadconf*/
int loadconf (char** server, unsigned int *port, char** host, char **user, char** nick, char **chan, char **msg, char** op, int *sql, int *acc, int *reg, int *undo){
 
	const char *path = "file.conf";
	FILE* fconf = NULL;
	char line[1024];
	char val[1024];
 
		fconf = fopen (path, "r");
			if (fconf == NULL){
				fprintf (stderr, "file.cong not found!\n");
				return;
			}
 
			while (feof(fconf) == 0){
				fgets (line, sizeof (line), fconf);
				//printf (">%s\n", line);
					if (sscanf (line, "# %s", val))	;/*we ignore the comments*/	
					else
						if (sscanf (line, "server=%s", val)){
							*server = malloc (strlen(val) * sizeof (char));
							strcpy (*server, val);
						}
						else
							if (sscanf (line, "port=%u", &port));
							else
								if (sscanf (line, "host=s", val)){
									*host = malloc (strlen(val) * sizeof (char));
									strcpy (*host, val);
								}
								else
									if (sscanf (line, "user=%s", val)){
										*user = malloc (strlen(val) * sizeof (char));
										strcpy (*user, val);
									}
									else
										if (sscanf (line, "nick=%s", val)){
											*nick = malloc (strlen(val) * sizeof (char));
											strcpy (*nick, val);
										}
										else
											if (sscanf (line, "chan=%s", val)){
												*chan = malloc (strlen(val) * sizeof (char));
												strcpy (*chan, val);
											}
											else
												if (sscanf (line, "msg=%[^\0]s", val)){
													*msg = malloc (strlen(val) * sizeof (char));
													strcpy (*msg, val);
												}
												else
													if (sscanf (line, "op=%s", val)){
														*op = malloc (strlen(val) * sizeof (char));
														strcpy (*op, val);
													}
													else
														if (sscanf (line, "chan=%s", val)){
															*chan = malloc (strlen(val) * sizeof (char));
															strcpy (*chan, val);
														}
														else
															if (sscanf (line, "sql=%d", &sql)) ;
															else
																if (sscanf (line, "acc=%d", &acc));
																else
																	if (sscanf (line, "reg=%d", &reg)) ;
																	else
																		if (sscanf (line, "undo=%d", &undo)) ;
 
			}
 
 
		fclose (fconf);
 
	return 1;
}
Donc çà marche, çà charge tout correctement, SAUF pour les entités entières :s (ps: int acc quant à lui il est bien chargé :/)
De plus là syntaxe du fichier de conf est identique, j'ai absolument vérifié donc çà ne peut provenir de là.
Une idée?
Merci