2010-03-20 6 views
2

Tout d'abord, je suis un débutant complet au C++.C++ nouvelle ligne ne traduisant pas

Je suis en train de coder quelque chose en utilisant une API, et je voudrais lui passer du texte contenant de nouvelles lignes, et lui faire imprimer les nouvelles lignes à l'autre extrémité.

Si je hardcode tout ce que je veux pour imprimer, comme si

printInApp("Hello\nWorld"); 

il fait sortir comme des lignes distinctes dans l'autre extrémité, mais si je récupère le texte de l'application en utilisant une méthode cela retourne un const const puis le passe directement à printInApp (qui prend const char comme argument), il sort comme une seule ligne.

Pourquoi est-ce et comment ferais-je pour le réparer?

+1

Les informations fournies par vous ne sont pas suffisantes pour obtenir de l'aide. Fournir plus d'informations. Vous dites "récupérer le texte de l'application en utilisant une méthode qui renvoie un const const". Montre-nous cette méthode. – codaddict

+1

Évidemment c'était, avec la réponse de Fire Lancer. : d – pastapockets

+0

Je voudrais inspecter la chaîne qui provient de la méthode * qui renvoie un const char * dans un débogueur et voit comment il se compare à "Bonjour \ nWorld" contient-il vraiment un '\ n'? –

Répondre

2

C'est le compilateur qui traite les codes d'échappement dans les littéraux de chaîne, pas les méthodes d'exécution. C'est pourquoi vous pouvez par exemple avoir "char c = '\ n';" puisque le compilateur le compile juste comme "char c = 10". Si vous voulez traiter les codes d'échappement dans des chaînes telles que '\' et 'n' en tant que caractères séparés (par exemple lire comme tel dans un fichier), vous devrez écrire (ou utiliser un existant) une fonction de chaîne qui trouve les codes d'échappement et les convertit en d'autres valeurs, par exemple en convertissant un '\' suivi d'un 'n' en newline (valeur ASCII 10).

Questions connexes