Bonsoir,

Je veux lire un fichier texte ligne par ligne crée par Notepad code en UTF-8, je veux pas afficher les strings, je veux juste lire est compare.

Ce code lire un fichier texte ANSI ligne par ligne est comparer.

Ce que je veux
  • Lire test_ansi.txt ligne par ligne
  • Si ligne = "b" afficher "YES!"
  • Sinon afficher "NO!"


read_ansi_line_by_line.c


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
#include <stdio.h>

int main()
{
    char *inname = "test_ansi.txt";
    FILE *infile;
    char line_buffer[BUFSIZ]; /* BUFSIZ is defined if you include stdio.h */
    char line_number;

    infile = fopen(inname, "r");
    if (!infile) {
        printf("\nfile '%s' not found\n", inname);
        return 0;
    }
    printf("\n%s\n\n", inname);

    line_number = 0;
    while (fgets(line_buffer, sizeof(line_buffer), infile)) {
        ++line_number;
        /* note that the newline is in the buffer */
        if (strcmp("b\n", line_buffer) == 0 ){
            printf("%d: YES!\n", line_number);
        }else{
            printf("%d: NO!\n", line_number,line_buffer);
        }
    }
    printf("\n\nTotal: %d\n", line_number);
    return 0;
}
test_ansi.txt

Compiler

Code : Sélectionner tout - Visualiser dans une fenêtre à part
gcc -o read_ansi_line_by_line read_ansi_line_by_line.c
Output
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
test_ansi.txt

1: NO!
2: YES!
3: NO!


Total: 3
Maintenant j'ai besoin de lire un fichier UTF-8 crée par Notepad, âpre plus que 6 mois de recherche sur l'internet, les forums English et Français et Arabe, j'ai trouver tous les réponse de mes question ici (c'est moi FREESAIF), bravo a tous les professionnels de developpez.com

Mais jusqu'à aujourd'hui j'ai jamais vu un programme qui bien traiter les informations UTF-8 écrit en C (C99)!, je sais pas exactement pour quoi mais je crois que le Standard C ne support pas Unicode en général alors... un peut difficile!

LE PROBLÈME!

Pour lire fichier UTF-8, j'ai besoin de lire fichier en mode binaire!

Mais comment lire un fichier UTF-8 en mode binaire ?! avec quelle fonctions ?
Sil-vous-plaît quelqu'un connais une méthode plus simple ?

Programme écrit en C (C99) qui lire un fichier texte UTF-8 ligne par ligne est qui compare les caractères.

Merci