目前我正在自学C ++。
C ++入门说:
set wbDash = workbooks.open(FileName:=(DashLocBox.Value + DashNameBox.Value + ".xlsm"), password:=PW1Box.Value, readonly:=True)
然而,C ++标准库第二版说:
cout << "hi!" << ends; //writes hi and a null, then flushes the buffer
cplusplus上的引用也没有提到刷新缓冲区 那么我应该遵循哪一个?
答案 0 :(得分:5)
namespace std { template <class charT, class traits> basic_ostream<charT,traits>& endl(basic_ostream<charT,traits>& os); }
效果:调用
os.put(os.widen(’\n’))
,然后调用os.flush()
。返回:os
。namespace std { template <class charT, class traits> basic_ostream<charT,traits>& ends(basic_ostream<charT,traits>& os); }
效果:在输出序列中插入空字符:调用
os.put(charT())
。返回:os
。
标准非常明确,std::endl
会刷新流,而std::ends
则不会。
答案 1 :(得分:2)
标准说(§27.7.3.8):
namespace std { template <class charT, class traits> basic_ostream<charT,traits>& ends(basic_ostream<charT,traits>& os); }
效果:在输出序列中插入一个空字符:调用
os.put(charT())
。
cppreference对于这些事情是一个很好的参考:
与
std::endl
不同,此操纵器不会刷新流。