getch()与cout(在getch前用输不出来)混合使用会出现问题,为什么

来源:百度知道 编辑:UC知道 时间:2024/05/29 07:33:10
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
void main()
{
char a;
cout<<"wwwww";
// printf("dddddddd\n");
a=getch();
cout<<a;
}
cout<<输不出来东西,但是printf可以输出来.你说的有点不对,有个高手告诉我,在cout<<后面加上endl,把流结束,然后再用getch()就可以了,问题出现在两个流冲突.仍然谢谢你!getch()的头文件是#include<conio.h>,不是c的标准库函数.

getch()与cout混合使用会出现问题。因为cin和cout是预定义的流类对象,他们搭配使用才匹配,而getch()和printf()是c++的内置函数,原则上应该他们搭配使用。
看看你包含的头文件,<iostream.h> <stdio.h> ,cin和cout被定义在<iostream.h> 里,而getch()和printf()被定义在<stdio.h> 里,他们的运行机制是不一样的,两者混合使用就会出现问题。