Bonjour,

j'aimerai savoir quelle est la meilleure manière d'initialiser un tableau d'entier à partir d'une chaîne de caractères lue au clavier...

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
 
void readValue(M *m)
{
    const int lignes = m->nbLignes;
    const int colonnes = m->nbColonnes;
    int i;
    char c;
 
    char buffer[lignes*colonnes], *p; // lignes*colonnes pour une "marge dans la saisie"
 
    printf("Saisir ligne %d : ", i);
    fgets(buffer, sizeof(buffer), stdin);
 
    // Vide le buffer clavier, supprime le retour chariot
    if((p = strchr(buffer, '\n')) != NULL)
        *p = '\0';
    else
    {
        do {
            c = getchar();
        }while(c != '\n' && c != EOF);
    }
}
J'obtiens donc une liste de valeurs (variable), sous forme d'entiers séparés par des espaces. Je fais ça dans le but de me faciliter la saisie d'un tableau d'entier.

Ma question est donc comment initialiser un tableau dynamique à partir des valeurs contenus dans ce flux? J'avais pensé à vsscanf mais je n'en suis pas sûr et ne sais pas l'utiliser

Exemple :
buffer = "1 2 3 4 5 6 7 8 9 10"
tabint = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]