【问题标题】:scanf Output not showing of C language in kali terminal在kali终端中scanf输出未显示C语言
【发布时间】:2021-01-25 06:04:27
【问题描述】:

我目前正在kali linux 2020.x的nano文本编辑器的终端中进行C编程。
15 分钟前,我写了一个不能正常工作的代码。我提到了那个代码。

#include<stdio.h>
int main(){
  int num;
  scanf("%d",&num);
  printf("number is %d",num);
  return 0;
}

我运行它。一切正常,它也编译了,但是当我尝试输入值并按回车键时,输出为空白/无输出。

【问题讨论】:

  • 尝试在输出行中添加换行符。 "number is %d\n"。一些终端模式是逐行而不是字符。
  • 谢谢,它有效。非常非常感谢兄弟
  • 你也可以在printf之后使用fflush(stdout)
  • 请注意,在使用可能未成功分配的值之前,您应该检查来自scanf()的返回值。计划以换行符结束所有打印操作;它有助于确保输出在发送到终端时及时显示。

标签: c terminal scanf kali-linux


【解决方案1】:

我不知道你是否有答案,但我试了一下你的问题并做了这个:

int main()
{

    int m_iValue = 0;
    
    scanf( "%i", &m_iValue );

    {
              char m_szBuffer[128]; // Note: We got a BIG buffer boy!
        sprintf( m_szBuffer, "Value: %i \n", m_iValue );

        printf( m_szBuffer );
    }

    return 0;

}

它工作得很好;希望有帮助!

【讨论】:

  • 在了解 sprintf 函数和 %i 格式说明符后,我会尝试一下。感谢我的代码的新方面。
  • 不要随意猜测缓冲区大小。安全漏洞就是这样产生的。
猜你喜欢
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-10
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多