Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;混合打印和打印_C++_Printf_Cout - Fatal编程技术网

C++ C++;混合打印和打印

C++ C++;混合打印和打印,c++,printf,cout,C++,Printf,Cout,可能重复: 我正在使用Microsoft Visual Studio 6.0 下面的节目, #include "stdafx.h" #include "iostream.h" int main(int argc, char* argv[]) { printf("a"); printf("b"); printf("c"); return 0; } #include "stdafx.h" #include "iostream.h" int main(int argc, char* argv[

可能重复:

我正在使用Microsoft Visual Studio 6.0

下面的节目,

#include "stdafx.h"
#include "iostream.h"

int main(int argc, char* argv[])
{
printf("a");
printf("b");
printf("c");
return 0;
}
#include "stdafx.h"
#include "iostream.h"

int main(int argc, char* argv[])
{
printf("a");
cout<<"b";
printf("c");
return 0;
}
制作“abc”

而下面的节目,

#include "stdafx.h"
#include "iostream.h"

int main(int argc, char* argv[])
{
printf("a");
printf("b");
printf("c");
return 0;
}
#include "stdafx.h"
#include "iostream.h"

int main(int argc, char* argv[])
{
printf("a");
cout<<"b";
printf("c");
return 0;
}
#包括“stdafx.h”
#包括“iostream.h”
int main(int argc,char*argv[])
{
printf(“a”);

标准规定:

当标准iostream对象
str
与标准对象同步时 stdio stream
f
,插入字符
c
的效果

fputc(f, c);
效果是一样的

str.rdbuf()->sputc(c);
对于任何字符序列

默认情况下,除非调用
sync\u with_stdio(false)
cout
stdout
同步。因此,第二个代码段相当于:

printf("a");
fputc(stdout, 'b')
printf("c");
即使在您的实现中,也必须生成“abc”


一句话:MSVC6不符合标准,这一点也不奇怪,因为它已经很旧了。

能做到吗?我从来没有用过它。@Murphy船长:不是。宽-窄混合的语义没有具体说明,而上面代码的语义定义很好,必须打印“abc”,除非
sync_with_stdio(false)调用了
,这在这里没有发生。基本上,MSVC6是不符合标准的…”“这并不奇怪,因为它非常旧”在微软上没有人给出一个该死的标准。@ H2CO3:不完全正确…他们确实在改进他们的C++编译器。尤其是你不能说,例如,MVSc10不是MVC6.。这是长期的。现在MS是在眼睛水平。根据我们的便携性团队,在实现C++ 1方面更快。1@H2CO3你正在讨论讨论的话题。这里没有人谈论C,我把MSVC纯粹地看作是C++编译器。尤其是因为我不喜欢C支持。今天它是接近于一个符合C++编译器的,很难将它与GCC进行比较。是的,都有bug,但是两者都是好的。@ H2CO3:我的评论是针对你的。评论(我引用)说:“不管怎么说,在微软,没有人会在乎标准。”