注册 登录
编程论坛 C++教室

[讨论]cout 的一个奇怪而有趣的问题,怎么想都想不通,不应该呀......

冰的热度 发布于 2007-09-09 16:43, 1286 次点击
代码如下:
#include <iostream>
using namespace std;
int main()
{
int x=5;
cout<<x<<x++<<x<<endl;
return 0;
}

程序非常之简单,大家一看就能得出结果 556

但是.....

如果你考下去运行一下,会发现,答案是 655 !!!!

大家说奇怪不奇怪?

仔细分析一下,不应该呀......

我现在真是苦笑不得

哪位高人能指点一下

[此贴子已经被作者于2007-9-11 19:28:22编辑过]

19 回复
#2
aipb20072007-09-09 17:09
gcc下编译还是556,这样似乎更贴近"大家一看"的正确结果。

不是cout的问题,而是你写法问题,这要看编译器怎么去解析。

不提倡这种给编译器找麻烦的写法。
#3
冰的热度2007-09-09 17:41
通过我不断调试,终于搞明白了,

原来在VC++6.0的环境下,

cout中的计算是从右向左的,输出是从左向右的.




#4
qwl19822007-09-09 20:00
给编译器找麻烦的写法
#5
绝种好小伙2007-09-09 21:51
以下是引用冰的热度在2007-9-9 17:41:04的发言:
通过我不断调试,终于搞明白了,

原来在VC++6.0的环境下,

cout中的计算是从右向左的,输出是从左向右的.




好像是这个样子

#6
yuyunliuhen2007-09-09 22:19
#7
hgxwd3102007-09-10 00:57
回复:(冰的热度)[讨论]cout 的一个奇怪而有趣的问题...

有意识,呵呵!!

#8
從霝開匙2007-09-10 09:05

又学到一点!!呵呵谢谢

#9
manami2007-09-10 20:39
这种做法没有太多的意义!
#10
snakeImao2007-09-10 22:42
呵呵!每天进步一点点!!谢谢!
#11
hegj2007-09-11 00:37
谢谢
#12
sunkaidong2007-09-11 09:01

学到了知识,呵呵

#13
acrobat2007-09-11 15:11
高人呀!调的不错,这个麻烦找的值啊
#14
dandy2007-09-12 21:07

怎么我 得出的结果是656吖 用的是VC2005

#15
a95342819902007-09-12 21:21

了解了!

#16
yandongdido2007-09-12 23:46

如果cout中的计算是从右向左的,输出是从左向右的.
cout是输入流跟箭头的方向有关吗?
那么是不是在cin中会有正好相反的运算呢
#17
何苦而乐2007-09-13 00:02

为什么我拷下来会有这么个错误啊?
请高手指点一下,谢谢!
--------------------Configuration: guaiquti - Win32 Debug--------------------
Compiling...
guaiquti.cpp
d:\program files\microsoft visual c++ 6.0\vc6cn\vc98\include\ios(9) : fatal error C1083: Cannot open include file: 'streambuf': No such file or directory
执行 cl.exe 时出错.

guaiquti.obj - 1 error(s), 0 warning(s)

#18
blueness212007-09-13 08:15
嗯,虽然是学到了点东西,不过还是支持2楼的话,程序员的任务之一就是自己写的程序要让别人能读懂.
#19
yandongdido2007-09-13 12:20

17楼的同学 我觉得你那个错误是不是在什么也没有程序的情况下也回出现那种现象吗
这是由于你在按C++的时候有的是别人的安装的路径下得到的 你可以在进去的也面上找任务栏的工具下的选择,进去的对话框找目录该一下就行拉 你可以试试把
呵呵

#20
何苦而乐2007-09-15 22:25

19楼的兄弟,在什么也没有程序的情况下编译得:
--------------------Configuration: 2_2 - Win32 Debug--------------------
Compiling...
2_2.cpp

2_2.obj - 0 error(s), 0 warning(s)
而工具->选择下的路径四个项目都改成对应的文件夹目录了;
我编写如下一段简单的程序:
#include<iostream>
using namespace std;
void main(void)
{
cout<<"hello!\n";
cout<<"Welcome to c++!\n";
}
编译后就会有如下的错误:
--------------------Configuration: 2_2 - Win32 Debug--------------------
Compiling...
2_2.cpp
d:\program files\microsoft visual c++ 6.0\vc6cn\vc98\include\ios(9) : fatal error C1083: Cannot open include file: 'streambuf': No such file or directory
Error executing cl.exe.
编译器我已经用不同的原始文件装过三次了,问题依旧啊。
请各位帮帮忙,先说声谢谢了

2_2.obj - 1 error(s), 0 warning(s)

1