问题:
在使用Eclipse IDE for C/C++ Developers 时候,发现调试scanf 等需要输入数据的时候,无法正常 输入,还老报错。最后查到解决方案,和大家一起分享。
1. 创新思路解决方案:使用文件进行读写代替控制台的读写
c语言和c++通用FILE *fp = fopen("data.txt", "r+");
使用fscanf(fp, "%d", &x)代替scanf("%d",&x)
使用fprintf(fp,"%d", x)代替printf("%d",x)
记得要fclose(fp)
c++专用fstream fio("data.txt")
使用fio >> x代替cin >> x
使用fio << x代替cout << x
记得要fio.close();
2. 传统思路解决方案:因为eclipse对c/c++的支持比较晚,所以不能100%通用
c语言和c++都适用
在main()函数的第一行写上如下语句
setvbuf(stdout,NULL,_IONBF,0);//亲测 可以使用。
实际例子:#include "stdio.h"
int main(void)
{
setvbuf(stdout,NULL,_IONBF,0);
printf("hello wrold");
int ch;
char cStr[10];
while((ch = getchar()) != EOF)//or while((ch = getchar()) !='\n")
{
putchar(ch);
}
scanf("%s",cStr);
printf("%s",cStr);
printf("hello wrold2");
return 0;
}
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。