2009-02-09 5 views
0

Je suis capable de lire char dans char [2] dans le code OCI C++, mais je ne suis pas en mesure de lire au caractère 1?Pourquoi suis-je capable de lire char [2] mais pas char [1]?

Quelqu'un a-t-il une idée de pourquoi?

(oracle type de données est char (1))

+0

Ce genre de question ne vous obtiendra pas une réponse utile. Veuillez préciser ce que vous essayez de faire, comment vous le faites et comment cela échoue. – Rik

+0

Des questions vagues génèrent des réponses vagues. Veuillez rééditer votre question et donner un code source, des exemples de données et votre résultat inattendu (par exemple Exception/Erreur/Comportement inattendu) –

Répondre

0

Peut-être vous avez besoin d'espace pour le caractère nul à la fin de la chaîne?

1

Si l'entrée est traitée comme une chaîne, alors la place est nécessaire pour appliquer la terminaison nulle ('\0') à la fin. C'est-à-dire si les données sont 'a', la représentation sous forme de chaîne ("a") est stockée en mémoire sous la forme de deux caractères 'a' et '\0'. Le '\0' est nécessaire pour indiquer aux suspects de traitement de chaîne habituels où la chaîne se termine. Sans savoir quoi que ce soit sur les outils que vous utilisez, je ne peux pas le dire avec certitude, mais vous pourriez être en mesure d'affecter une variable de caractère (par opposition à une variable de tableau de caractères).


Un bref examen des documents le long du lien que vous avez posté, je pense que vous devriez utiliser std::string comme type de réception pour les données textuelles.