J'ai une chaîne initialisée par {'\ 0'} à chaque fois ia boucle et y stocke des caractères allant de 0 à 9 quand je convertis atoi (temp) où temp = "2" il me renvoie 20 au lieu de 2 Je dois faire pour obtenir les valeurs précises, l'aide requise.Je trouve un problème en utilisant la méthode atoi() dans ansi c?
Répondre
Un couple de choses à vérifier:
- Avez-vous êtes TERMINAISON la chaîne, après avoir ajouté votre personnage (s)?
- Avez-vous alloué assez de mémoire pour la chaîne entière, y compris le nouveau terminateur null?
Quelque chose comme cela devrait fonctionner:
char buffer[2] = {'\0'}; // note "[2]" to set aside two bytes
buffer[0] = '2';
buffer[1] = '\0'; // ensure it's still terminated
printf("%d\n", atoi(buffer));
Vous n'avez pas assez d'informations pour répondre à cette question. De plus, avec 'char buffer [2] = {'\ 0'};' ** all ** 'tampon [x]' (0 et 1 dans ce cas) sont garantis à zéro. Il n'est pas nécessaire de faire 'buffer [1] = '\ 0';' donc ça ne peut pas être la cause du problème. –
Vous avez raison sur la terminaison nulle à la première itération, mais puisque (comme vous le dites) nous n'avons pas le code, nous ne savons pas si l'OP réutilise le tampon, ou combien de caractères il met dans chaque temps autour. La terminaison explicitement nulle, bien que parfois excessive, est toujours sûre. J'ai pensé qu'une réponse partielle, qui pourrait ou non aider, était plus utile que pas de réponse du tout. Je suppose que vous n'êtes pas d'accord. –
Peu importe ce que votre problème à obtenir atoi
travailler est, vous devriez plutôt utiliser strtol
. Le manuel d'information libc:
- Fonction: int atoi (const char * STRING)
This function is like `atol', except that it returns an `int'. The `atoi' function is also considered obsolete; use `strtol' instead
Voir this answer par exemple comment utiliser strtol.
Je suppose que le problème n'est pas atoi, devrait être quelque chose d'autre. Veuillez vérifier les pointeurs, déboguer étape par étape, etc.
- 1. ansi-c problème fscanf
- 2. stocker un objet dans un tableau en utilisant ansi c?
- 3. Comment tuer un pthread dans ANSI C
- 4. ne trouve pas mon bean en utilisant la méthode InitialContext.lookup()
- 5. La méthode DetailsViewModeChanged ne trouve pas les contrôles dans un certain mode en utilisant la méthode FindCotrol
- 6. Implémentation de modèle en usine utilisant ANSI C
- 7. Types questions en ANSI C
- 8. Conversion d'un UNICODE_STRING en ANSI ou vice versa en C
- 9. Mise en œuvre de la norme ANSI C dans Eclipse
- 10. problème en utilisant une méthode en Ruby
- 11. Connexion Mysql dans Ansi c
- 12. "Méthode inconnue" en utilisant IronRuby en C#
- 13. Extension graphique ANSI C
- 14. Je trouve un problème avec l'envoi du paramètre de réception
- 15. comment donc je trouve en utilisant le condtion en Ruby
- 16. Utilisation de atoi avec char
- 17. Quelqu'un a écrit un dictionnaire (hashmap) en ANSI C?
- 18. D'où vient le nom `atoi`?
- 19. Un problème en C# en utilisant Fils et ListView
- 20. Comment puis-je convertir un fichier téléchargé codé 'ANSI' sous Windows 1252 en UTF8 dans .NET?
- 21. Python équivalent à atoi/atof
- 22. Structs sur la pile (ANSI C)
- 23. déclarant correctement la fonction principale() dans la norme ANSI C
- 24. Appelez la méthode VB en C# en utilisant Interop
- 25. Modèles Django - Problème en utilisant la méthode ManyToManyField add()
- 26. comment envoyer un tableau d'octets via udp en utilisant ansi c?
- 27. Comment obtenir un hachage sha256 d'un fichier en utilisant ANSI C
- 28. problème en utilisant UserControl en C#
- 29. Conversion de séquences d'échappement ANSI en HTML en utilisant PHP
- 30. chaîne conversion à un problème entier dans C++
Vous devriez publier le code que vous utilisez, sinon les gens ne peuvent que deviner ce qui ne va pas. – sth
Pouvez-vous poster du code? –
Un peu de ponctuation dans un message aiderait énormément aussi. J'ai du mal à comprendre où une clause commence et une autre se termine. Est-ce que vous initialisez la chaîne à chaque fois dans une boucle ou y stockez des caractères à chaque fois dans une boucle? Ou les deux? –