Bonjour, j’aimerais lire un fichier de conf en C qui lit ligne par ligne et vérifie qu’elle se termine bien par une suite de caractère bien précise,
mon code marche bien avec des strings, mais pas avec une ligne d’un fichier texte, je soupçonne des caractères spéciaux d’en être la cause (\n, eof ?)
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 | bool EndWith(const char* haystack, const char* needle) { if (haystack == NULL || needle == NULL) { return false; } const char* p; if ((p = strstr(haystack, needle)) != NULL) { if (!strcmp(p, haystack + strlen(haystack) - strlen(needle))) { return true; } } else { return false; } return false; } int main(int argc, char **argv) { FILE *file2 = fopen ("config.conf", "r"); const size_t line_size = 300; char* line = malloc(line_size); while (fgets(line, line_size, file2) != NULL) { puts(line); if (EndWith(line, "za")) { puts("oui"); } } return 0; } |
mon fichier config.conf :
1 2 3 | vm.user_reserve_kbytes = 131072 za vm.vfs_cache_pressure = 1001 za vm.zone_reclaim_mode = 01 za |
+0
-0