2010-05-18 6 views
0

Lorsque j'ai fait la pratique ci-dessous pour effacer mon membre de pointeur et lui assigner une nouvelle valeur.Comment affecter un membre de pointeur avec une chaîne longue?

(*pMyPointer).member.erase(); 
(*pMyPointer).member.assign("Hello"); // Successfully 

Que j'ai essayé plus ...

(*pMyPointer).member.erase(); 
(*pMyPointer).member.assign("Long Multi Lines Format String"); // How to? 

Si la longue chaîne de lignes multiples ne peut pas citer en double quoter, comment le gérer. Je vous remercie.

+1

Quelle est la question? Où est le problème? – wilhelmtell

+1

Ai-je raison de supposer que vous voulez savoir comment écrire un littéral de chaîne avec des sauts de ligne dedans? Qu'est-ce que ça a à voir avec les pointeurs? – sbi

+0

Peut-être qu'il avait une intuition, il y a une meilleure façon d'accéder à un membre à l'intérieur d'un pointeur, et subtilement demandé un commentaire à ce sujet. – wilhelmtell

Répondre

3

Je n'ai vraiment aucune idée de ce que vous essayez de demander. Peut-être ceci:

(*pMyPointer).member.assign("Long Multi Lines Format String" 
          "more lines that will be" 
          "concatenated by the compiler"); 

Ou avez-vous dire des sauts de ligne comme celle-ci:

(*pMyPointer).member.assign("Long Multi Lines Format String\n" 
          "more lines that will be\n" 
          "concatenated by the compiler"); 
+1

+1: Je suppose que votre estimation est une bonne estimation. –

+0

@Binary: Je suppose que oui. –

2

sauts de ligne dans les chaînes littérales sont '\n':

"This is a string literal\nwith a line break in it." 
2

Je suppose que vous voulez dire passer une très longue chaîne constante en tant que paramètre, auquel cas C++ fait la chaîne de la fusion pour vous: printf("hello, " "world"); est la même chose comme printf("hello, world");

Ainsi:

(*pMyPointer).member.assign("Long Multi Lines Format String " 
     "and here's more to the string " 
     "and here's more to the string " 
     "and here's more to the string " 
     "and here's more to the string " 
     "and here's more to the string "); 
+0

Argh! Battez-moi! – Daniel

1

Je pense que la question est comment créer une chaîne multi-ligne.

Vous pouvez facilement le faire avec:

(*pMyPointer).member.assign(
    "Long Multi Lines Format String" \ 
    "Long Multi Lines Format String" \ 
    "Long Multi Lines Format String" 
); 

Vous devez ajouter un \ n à la chaîne si vous voulez revenir. Sinon, il restera sur la même ligne.

Questions connexes