使用#的宏中的换行符

时间:2013-12-05 14:37:32

标签: c++ macros

为什么在宏中用#忽略换行符,空格和制表符并用一个空格替换?

有没有办法将这些空格分成#?

生成的字符串

示例:

#include <iostream>
using namespace std;

#define TOSTR(s) #s

int main() {
    cout <<
TOSTR(a newline at the end please
three   spaces
        tab first
) << endl;
}

输出:

a newline at the end please three spaces tab first

(没有新行,没有三个空格,没有标签)

1 个答案:

答案 0 :(得分:2)

您必须撰写换行符\n或标签\t字符