#define <anyname>'\ n'而不是'\ n'

时间:2016-06-01 05:31:37

标签: c++

我想知道#define nd '\n'是否可以替代旧的'\n'

#include <iostream>
#define nd '\n'
int main(){
    std::cout << "Hello World !" << nd ;
}

我觉得在打印变量或迭代器时这会很方便,可以节省一些按键。

3 个答案:

答案 0 :(得分:1)

  

我想知道#define nd '\n'是否是可接受的替代方案   好老std::endl

不是真的。 std::endl做了两件事:

  1. 打印换行符
  2. 冲洗流
  3. 虽然你的解决方案只做前者,但它并不等同。

    另一方面,与文字&#39; \ n&#39;相比,这个宏节省了很少的击键次数,同时增加了我认为弊大于利的混乱。

答案 1 :(得分:1)

不。不能接受的。如果您需要换行符,只需键入'\n',如果您还要使用std::endl刷新缓冲区。没有人阅读你的代码会知道你的宏意味着什么,并且不会为你自己节省大量的精力。

答案 2 :(得分:1)

我想,对于一个操纵者来说有一些用处,它可以在没有刷新&#34;的情况下写一个新行,不是为了保存击键,而是因为天真的版本(os << '\n'或{{如果os << "\n"大于1,则可能会产生不合需要的填充,并且写os.width()很烦人。

所以:

os.put('\n')

关于你的宏,这只是毫无意义的混淆。