Je l'habitude d'utiliser obtient mais j'ai entendu dire qu'il a été retiré de c11 et que c'est globalement très dangereux. J'ai donc fait quelques recherches et j'ai découvert que vous pouvez utiliser fgets() pour faire la même chose. Le problème est que lorsque j'utilise fgets(), il semble également copier la fin de la ligne, ce qui finit par créer une ligne supplémentaire non désirée.Alternative à obtenir?
Pour vous montrer ce que je veux dire:
//if I have
char key[30];
fgets(key, sizeof(key), stdin);
//now if ender for instance: Doggo and do:
printf("The key is:%s|hozaah!\n", key);
//I expect it to print:
The key is:Doggo|hozaah!
//Instead it prints:
The key is:Doggo
|hozaah!
est-il un moyen de contourner ce problème? Ou y a-t-il une autre fonction que je peux utiliser à la place?
trouvé que la clé [strcspn (key, "\ n")] = 0; fonctionne comme un charme, merci! – Mathue24
@Kerrek Chill mec, il essayait juste d'aider, pas besoin d'être si arrogant lol – Mathue24
@ Mathue24: Oui, des excuses, assez juste.Je suis un peu trop sensible aux mauvaises cargaisons autour des chaînes de caractères C, car la plupart des vulnérabilités logicielles proviennent d'une mauvaise compréhension des chaînes de caractères et des chaînes de caractères. C'est quelque chose que je veux que les gens pensent avec soin. –