这可能是一个愚蠢的问题,但我无法找到我想要的答案。另外,我不确定这是一个C ++问题还是VS2010问题,但我正在寻找的答案是技术POV,所以我最终到了这里。
在VS2010中启动新的控制台应用程序项目时,它会自动包含stdafx.h,而stdafx.h又包含 stdio.h 。 我发现有关stdio.h与iostream的答案或多或少:
stdio.h用于C和iostream 在C ++中使用
我不知道这是对还是错,但是......
我的问题是:为什么stdio.h仍然自动包含在C ++项目中?没有iostream足够吗?
答案 0 :(得分:3)
通常使用Create Empty Project
创建项目,以便您可以自己自定义包含和预编译的标题。
我不知道为什么会出现这种“默认”,但是如前所述,从头开始设置项目是一件好事。
答案 1 :(得分:3)
较旧的C ++实现中的IO流非常慢,导致程序员继续使用stdio.h
。显然,它已经包含在stdafx.h
中,并且无法再从该标题中删除,因为删除它会破坏现有代码。
答案 2 :(得分:0)
即使您正在使用流输出,也可以进行一些格式化。所以,如果没有别的,有时会使用sprintf。 sprintf住在stdio.h
答案 3 :(得分:-1)
可能是因为视觉工作室针对的是Mort程序员,他们无法在没有printf的情况下完成“我的第一个c ++”程序,他们会认为该产品无法正常工作。
在投票之前请求google visual studio mort persona。