La lecture dans une chaîne de caractères de longueur inconnue à partir de la console
Si je veux lire une chaîne de caractères de longueur arbitraire de la ligne de commande, quelle est la meilleure façon d'aller à ce sujet?
Pour le moment, je suis en train de faire ceci:
char name_buffer [ 80 ];
int chars_read = 0;
while ( ( chars_read < 80 ) && ( !feof( stdin ) ) ) {
name_buffer [ chars_read ] = fgetc ( stdin );
chars_read++;
}
Mais que puis-je faire si la chaîne est plus longue de 80 caractères? Évidemment, je pourrais juste initialiser le tableau à un plus grand nombre, mais je suis sûr qu'il doit y avoir une meilleure façon de donner le tableau de plus d'espace à l'aide de malloc ou quelque chose?
Toutes les allusions serait génial.
double possible de la Lecture des Chaînes de caractères avec Undefined Longueur en C
OriginalL'auteur Sam | 2011-03-21
Vous devez vous connecter pour publier un commentaire.
Trouvé cela quelque part sur le net il y a longtemps, c'est vraiment utile:
Il est défini à l'EOF au début, de marquer le dernier point de la chaîne d'entrée, et il est dans l'INT parce que les entrées sont prises en valeurs ASCII.
si vous trouvez la réponse utile alors s'il vous plaît marquer corriger et de donner un upvote. merci à l'avance.
Ah, ok. Merci! J'ai accepté, mais ne peuvent pas voter, désolé.
pourquoi bro? pouvez-vous m'en dire la raison?
OriginalL'auteur Sujit Agarwal
Utilisation
realloc()
pour allouer de la mémoire tampon et de l'étendre lorsqu'il est plein.OriginalL'auteur Aaron Digulla