stdio
用于 C 中的标准 IO。.h
最后应该有一个。在 C++ 中,所有 C 头文件都封装在cxxxxxx
头文件中(不带.h
)。所以,<stdio.h>
是一样的<cstudio>
。这些为简单的 IO提供函数,如printf
和。scanf
iostream
另一方面,它是一个用于 C++ 的 IO 库,并提供像cin
和之类的流cout
,正如您所提到的。
根据您的应用程序,您可以在大多数情况下互换使用它们。显然,语法会有所不同。
使用 C 函数可以更轻松地格式化文本。例如:
printf("item %04d has a value of %+.6e\n", index, value);
比(<iomanip>
除了需要<iostream>
)更容易编写:
std::cout << "item " << std::setw(4) << std::setfill('0') << index
<< "has a value of " << std::setprecision(6) << value << "\n";
但是,使用第一个时需要更加小心。例如,以下行不会产生编译错误(但正如 sharth 所提到的,编译时您可能会收到警告)但会导致运行时问题:
printf("I wonder what will happen? %d\n");
我认为它们的性能没有太大差异,因为大多数流“魔术”发生在编译时,它们应该产生相似的结果。不过,我不是 100% 确定,如果我错了,请纠正我。