可能重复:
我应该在我的C++代码中使用printf吗?
如果我只想string在屏幕上打印,我可以使用以下两种方式:
printf("abc");
std::cout << "abc" << std::endl;
Run Code Online (Sandbox Code Playgroud)
案例是,并且在上面显示的例子中,有使用printf结束的优点std::cout,反之亦然?
dan*_*n78 31
虽然cout是正确的C++方式,但我相信有些人和公司(包括Google)继续printf在C++代码中使用,因为使用格式化输出printf比使用格式化输出要容易得多cout.
这是我在这里找到的一个有趣的例子.
相比:
printf( "%-20s %-20s %5s\n" , "Name" , "Surname" , "Id" );
Run Code Online (Sandbox Code Playgroud)
和
cout << setw( -20 ) << "Name" << setw( 20 ) << "Surname" << setw( 5 ) << "Id" << endl;
Run Code Online (Sandbox Code Playgroud)
Zac*_*and 17
printf及其相关的朋友是C函数.它们使用C++,但没有C++ std::ostream的类型安全性.在使用printf函数根据用户输入(甚至从文件输入)格式化输出的程序中可能会出现问题.例如:
int main()
{
char[] a = {'1', '2', '3', '4'}; // a string that isn't 0-terminated
int i = 50;
printf("%s", a); // will continue printing characters until a 0 is found in memory
printf("%s", i); // will attempt to print a string, but this is actually an integer
}
Run Code Online (Sandbox Code Playgroud)
C++具有更强大的类型安全性(和std::string类),以帮助防止这些问题.
| 归档时间: |
|
| 查看次数: |
27762 次 |
| 最近记录: |