【问题标题】:STDOUT not resolved in EclipseSTDOUT 在 Eclipse 中未解决
【发布时间】:2014-07-19 04:33:23
【问题描述】:

我在使用 Eclipse 和 CDT 时遇到问题,问题始于使用 printf() 要求输入和 scanf() 存储输入的初学者代码,但是控制台在获得 scanf() 参数之前不会显示 printf() 参数。

我发现许多与此问题相关的线程并理解这是 eclipe 中的一个错误,即使使用 \n 也没有正确刷新缓冲区。 解决方案似乎是在每个 printf() 之后使用 fflush(stdout) 或添加 setbuf(stdout, NULL, _IONBF, 0)ma​​in() 函数的开头。

我添加了 setvbuf(stdout, NULL, _IONBF, 0) 我也尝试了 fflush(stdout) 但 eclipse 说 stdout 无法解析。

谁能告诉我为什么以及如何解决这个问题。

谢谢。

米克·考顿

这是我的代码:

#include <stdio.h>

int main(){ 

//setvbuf(stdout, NULL, _IONBF, 0);

char letter; 
int num1,num2;

printf("Enter any one keyboard character:\n");
// fflush(stdout);
scanf("%c",&letter);

printf("Enter 2 integers separated by a space: \n");
//fflush(stdout);
scanf("%d %d",&num1,&num2);

printf("Numbers input: %d and %d\n",num1,num2);
printf("Letter input: %c",letter);
printf(" stored at %p \n",&letter); 

return 0; 

}

【问题讨论】:

  • 您好,欢迎来到 StackOverflow!你能产生一个仍然表现出这种行为的最小源吗? TBH 看起来你只是没有#include &lt;stdio.h&gt;
  • 感谢您的回复。我已经包含了 stdio 库——这是我检查的第一件事。我将在下面发布我的代码。就像运行时一样,eclipse的控制台保持空白。当您输入所需的输入(字母和两个数字后跟回车)时,它会打印出所有内容。请求和确认。注释掉的行是我在网上找到的用于刷新标准输出缓冲区的解决方案,每个人似乎都说这是解决方法,但正如我在 Eclipse 告诉我标准输出无法解决之前所说的那样。再次感谢您。
  • 'code' #include int main(){ //setvbuf(stdout, NULL, _IONBF, 0);字符字母;整数 num1,num2; printf("输入任意一个键盘字符:\n"); // fflush(stdout); scanf("%c",&letter); printf("请输入两个用空格隔开的整数:\n"); //fflush(标准输出); scanf("%d %d",&num1,&num2); printf("数字输入:%d 和 %d\n",num1,num2); printf("字母输入:%c",letter); printf("存储在 %p \n",&letter);返回0; }
  • 'code''code' #include int main(){ //setvbuf(stdout, NULL, _IONBF, 0);字符字母;整数 num1,num2; printf("输入任意一个键盘字符:\n"); // fflush(stdout); scanf("%c",&letter); printf("请输入两个用空格隔开的整数:\n"); //fflush(标准输出); scanf("%d %d",&num1,&num2); printf("数字输入:%d 和 %d\n",num1,num2); printf("字母输入:%c",letter); printf("存储在 %p \n",&letter);返回0; }'代码'
  • 哎呀,试图在这里解决格式我如何正确发布代码?

标签: eclipse eclipse-cdt


【解决方案1】:

如果您在 Windows 上进行开发,请记住行尾指示符是 \r\n(您只使用 \n),众所周知,Eclipse 控制台窗口只显示整行。

【讨论】:

  • 感谢您的回复,不幸的是它没有解决我遇到的问题。至于您对使用 \r\n 转义序列而不是像 linux 之类的 \n 的 windows 的评论,我只是尝试看看它是否有任何明显的差异,我不能说我通过 eclipse 控制台看到输出有任何差异。如果我错过了理解你,我很抱歉。如果您能够帮助我修改如何使上述代码按预期工作,请留下另一条评论。再次感谢您。
猜你喜欢
  • 2017-05-11
  • 2014-01-30
  • 2015-12-15
  • 1970-01-01
  • 1970-01-01
  • 2017-02-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-04
相关资源
最近更新 更多