PRINTF 与 COUT 区别
2012-07-27 11:51
232 查看
1. PRINTF
与 COUT
转载:http://www.cppblog.com/keroro/articles/167723.html
今天开始搞搞C++。
今天看了一下VC里的汇编代码,才有一点点搞懂了printf 和 cout 的工作方式(我用的是VC++6.0)。刚学汇编,有什么不对的地方请更正啊。
(1)printf
int i=5;
printf("%d,%d,%d\n",i,i++,i);
printf("%d",i);
结果是5,5,5
6
VC是先把要输出的3个变量push进栈里面,然后再做i++ 这一操作的,再调用printf函数。所以我们看到第一个printf输出的是3个未改变的i,到了第二个printf 时i 的值是5,所以push进栈的i=5,输出的是5。
(2)cout
int i=5;
cout<<i<<i++<<i;
结果是655
不太懂流,不过根据汇编代码来看,cout是从后往前操作的,push i<-- i++ <--push i <-- push i;
所以最后一个i=5,第二个i=5,i++后第一个i=6. 如果后面有<<endl;的话就是先做endl操作。
那cout<<i<<++i<<i 的结果呢?不难知道是 665.
可以看到,printf 和 cout 的操作顺序不同。
2. C++ primer
cin 和 cout 内置了所有的基本io格式。
printf C标准库里用来输出。
3. 代码例子测试显示 printf 输出 遭遇 cout输出到屏幕设备,这个待疑。
#include "stdafx.h"
#include <iostream.h>
int main(int argc, char* argv[])
{
printf("Hello World!\n");
cout<<"Hello World! Cout 1\n";
#ifdef __cplusplus
printf("now we are using c++\n");
cout<<"C++\n";
#else
printf("now we are using c\n");
//cout<<"C\n";
#endif
cout<<"Hello World! Cout 2\n";
printf("Hello World!\n");
int i=5;
cout<<i<<i++<<i<<endl;
int j=5;
printf("%d,%d,%d\n",j,j++,j);
printf("%d",j);
return 0;
}
与 COUT
转载:http://www.cppblog.com/keroro/articles/167723.html
今天开始搞搞C++。
今天看了一下VC里的汇编代码,才有一点点搞懂了printf 和 cout 的工作方式(我用的是VC++6.0)。刚学汇编,有什么不对的地方请更正啊。
(1)printf
int i=5;
printf("%d,%d,%d\n",i,i++,i);
printf("%d",i);
结果是5,5,5
6
VC是先把要输出的3个变量push进栈里面,然后再做i++ 这一操作的,再调用printf函数。所以我们看到第一个printf输出的是3个未改变的i,到了第二个printf 时i 的值是5,所以push进栈的i=5,输出的是5。
(2)cout
int i=5;
cout<<i<<i++<<i;
结果是655
不太懂流,不过根据汇编代码来看,cout是从后往前操作的,push i<-- i++ <--push i <-- push i;
所以最后一个i=5,第二个i=5,i++后第一个i=6. 如果后面有<<endl;的话就是先做endl操作。
那cout<<i<<++i<<i 的结果呢?不难知道是 665.
可以看到,printf 和 cout 的操作顺序不同。
2. C++ primer
cin 和 cout 内置了所有的基本io格式。
printf C标准库里用来输出。
3. 代码例子测试显示 printf 输出 遭遇 cout输出到屏幕设备,这个待疑。
#include "stdafx.h"
#include <iostream.h>
int main(int argc, char* argv[])
{
printf("Hello World!\n");
cout<<"Hello World! Cout 1\n";
#ifdef __cplusplus
printf("now we are using c++\n");
cout<<"C++\n";
#else
printf("now we are using c\n");
//cout<<"C\n";
#endif
cout<<"Hello World! Cout 2\n";
printf("Hello World!\n");
int i=5;
cout<<i<<i++<<i<<endl;
int j=5;
printf("%d,%d,%d\n",j,j++,j);
printf("%d",j);
return 0;
}
相关文章推荐
- cout与printf区别
- 浅谈cout和printf的区别
- printf()和cout的区别
- c中的printf和c++中的cout有什么区别
- cout和printf的区别
- cout和printf的区别
- printf和cout的区别
- cout和printf是有区别的
- cout,print,printf 和sprintf的区别
- ACM---------printf和cout区别
- C++中换行符‘\n’和控制符‘endl’的区别(cout和printf区别)
- cout和printf的区别
- HDU1215 与1406类似,但是要注意超时(cout 和 printf的区别!!!)
- cout与printf的区别
- C++中cout和printf在vc6.0中的区别
- 关于流文件输出cout与标准输出函数printf的区别
- c++中cin/cout与scanf/printf的区别比较
- cerr与cout的区别
- printf 输出 long long / windows 与 linux 平台编译器 有区别
- PHP echo, print, printf, sprintf函数的区别和使用