首先,我是C ++的初学者。
我正在使用API编写代码,并希望将包含新行的文本传递给它,并让它在另一端打印出新行。
如果我硬编码我想要打印的东西,就像这样
printInApp("Hello\nWorld");
在另一端作为单独的行出现,但如果我使用返回const char的方法从应用程序检索文本,则将其直接传递给printInApp(它采用const char作为参数),它作为一个单独的行出现。
为什么会这样,我将如何解决它?
答案 0 :(得分:2)
编译器在字符串文字中处理转义码,而不是运行时方法。这就是为什么你可以举例说“char c ='\ n';”因为编译器只是将其编译为“char c = 10”。
如果要将字符串中的转义码(例如'\'和'n')作为单独的字符处理(例如从文件中读取),则需要编写(或使用现有的)字符串函数,找到转义码并将它们转换为其他值,例如将'\'后跟'n'转换为换行符(ascii值10)。