博客专栏

EEPW首页 > 博客 > eclipse C/C+ CDT中scanf不能debug输入输出的问题

eclipse C/C+ CDT中scanf不能debug输入输出的问题

发布人:电子禅石 时间:2018-03-15 来源:工程师 发布文章


问题:

在使用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;
}


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。



关键词:

相关推荐

技术专区

关闭