我的C ++书提供了关于cout
的以下示例:
cout << "literals" << "to be" << "printed" ;
然后,它继续说:
语句以输出流的名称 cout
开头
这似乎意味着还有其他流。除了cout
在C ++中还有其他输出流吗?它们是什么?
答案 0 :(得分:7)
一些例子:
std::cerr
的{{1}} 值 - 标准错误流<iostream>
的{{1}} 类型 - 文件输入和文件输出流std::fstream
的{{1}} 类型 - 字符串流答案 1 :(得分:5)
C标准定义了3个常用文件描述符:
在C ++中,它们可以作为流使用。
cin是输入流。 cout和cerr都是输出流。
答案 2 :(得分:4)
首先,有写入标准错误的cerr。然后,您可以自己创建任何其他流,例如文件流,例如
ofstream mystream = ofstream("myfile.txt");
答案 3 :(得分:3)
默认情况下,标准错误也会cerr
。您还可以打开新的输出流。
答案 4 :(得分:3)
首先,输出流只是一个类的对象,它提供一个以某种方式在某处输出数据的流 - 通常是c ++ IOstream库,例如, Ostream
std::cout
是写入标准输出std::cerr
是写入标准错误频道这通常是您在编写控制台应用程序时使用的内容。
然后有
请参阅IOstream库的此图表,可视化标准库中的所有c ++流。
答案 5 :(得分:2)
例如(来自http://www.cplusplus.com/reference/iostream/cout/)有这些流:
cerr Standard output stream for errors (object )
clog Standard output stream for logging (object )
但是你对“输出”流意味着什么? “控制台”输出流?输出“哪里”流?
来自同一网站(但不同的网页http://www.cplusplus.com/reference/iostream/cerr/)
默认情况下,大多数系统都会将标准错误和日志记录输出定向到控制台,其中会显示文本消息,但通常可以重定向。
答案 6 :(得分:0)
答案 7 :(得分:0)
有cerr,但它和cout不一样。它专为输出错误而设计。
就标准流而言,有不同的方式来访问它们(例如,使用stdout / stderr就像fwrite的文件句柄一样),但是在一天结束时只有2个:
标准输出 - 专为标准输出而设计。程序状态,有用数据等。 stderr - 专为输出描述错误而设计。通常也用于调试数据。
有时实际输出将在stdout上完成,并在stderr上进行或调试相关输出。这样,用户可以将stdout传输到文件中并让stderr进入控制台。这使他们既可以捕获所需的信息,又可以看到进展等等。