专栏中心

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;
}


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

“flowerhuanghua”的MVI_SF30-48-12SATE测试视频

视频 2012-04-12

“cjingguo”的AD温度采集视频

视频 2012-04-12

“cjingguo”的跑马灯视频

视频 2012-04-12

芯片中的RDL(重分布层)是什么?

EDA/PCB 2025-01-09

“flowerhuanghua”的MVI_SF30-48-12S带载测试视频

视频 2012-04-12

PCB设计问题集

资源下载 2007-02-09

Ceva Wi-Fi 6和蓝牙IP助力恒玄科技全新组合产品

气相色谱传感器解决环境监测需求

变压器的啸叫原因

芯科科技助力涂鸦智能打造Matter over Thread模块,简化Matter设备开发

开关电源的输入电容

“shangziyun”的跑马灯视频

视频 2012-04-12

瑞萨推出性能卓越的新型MOSFET

Qorvo推出车规级UWB SoC芯片QPF5100Q,凭借可配置软件推动创新

Ceva与联发科携手升华身临其境的空间音频移动娱乐体验

贸泽开售用于复杂AI视觉应用的Raspberry Pi Hailo 8L AI套件

更多 培训课堂
更多 焦点
更多 视频

技术专区