在C++中有哪些替代方案?

ajn*_*ral 0 c++

编程的一个方面是有几种方法可以实现相同的目标.在我用C++编写代码的过程中,我注意到实现某些常见功能的方法存在以下变化.我的问题是每个的优点/缺点是什么,我在很大程度上理解它们每个如何工作,但我想知道哪个在性能,可读性和符合标准方面更好,以及可接受性OOP.

cout vs printf

cin vs scanf

endl vs \n

谢谢

kar*_*eek 6

如果您的主要编程语言是C++并且您正在进行面向对象编程,那么它将是cout,cin和endl - 举手:)

这不是性能问题,而是风格和连贯编码的问题.

除此之外,您还可以获得cout的优势,cin也可以处理用户定义的类型 - 这是printf scanf无法实现的.

  • 问题对于''\n'`和`std :: endl`并不容易.后者做了两件事:在流中插入一个`'\n''并刷新它_(就像插入一个`std :: flush`).在大多数情况下,你只需要''\n'`.我已经看到一个应用程序(编写文件)通过用''\n'`替换不必要的`std :: endl`而从爬行到飞行. (7认同)
  • @Antonio Perez:如果流以文本(而不是二进制)打开,"\n"也会在Windows上写"\ r \n". (3认同)
  • @Antonio Perez - 它不是"Windows怪异行为",它是由C和C++标准定义的.例如在MacOS 9'\n'(10)应该变成'\ r'(13). (2认同)