2010-03-20 46 views
2

首先,我是一個完整的初學者在C++。C++新行不翻譯

我使用API​​編碼的東西,並希望傳遞包含新行的文本,並打印出另一端的新行。

如果我硬編碼任何我想要它打印出來,像這樣

printInApp("Hello\nWorld"); 

確實出來在另一端單獨的行,但如果我檢索使用的方法從應用程序中的文本它返回一個const char,然後直接將它傳遞給printInApp(它將const char作爲參數),它以單行出現。

這是爲什麼,我該如何去解決它?

+1

您提供的信息不夠充分,無法獲得幫助。提供更多信息。您說「使用返回const char的方法從應用中檢索文本」。告訴我們該方法。 – codaddict 2010-03-20 15:48:43

+1

很明顯,火焰槍手的答案是什麼。 :d – pastapockets 2010-03-20 15:51:51

+0

我會檢查來自*方法的字符串,該方法在調試器中返回一個const char *,並且從「Hello \ nWorld」比較它是否真的包含'\ n'? – 2010-03-20 15:54:50

回答

2

這是編譯器在字符串文字中處理轉義碼,而不是運行時方法。這就是爲什麼你可以例如「char c ='\ n';」因爲編譯器只是將其編譯爲「char c = 10」。

如果您想要將字符串(如'\'和'n')中的轉義碼作爲單獨的字符處理(例如從文件中讀取),您需要編寫(或使用現有的)字符串函數它會找到轉義碼並將它們轉換爲其他值,例如,將'\'後跟'n'轉換爲換行符(ascii值10)。