【问题标题】:C - Error print char with scanf_s in Visual Studio 2012C - 在 Visual Studio 2012 中使用 scanf_s 打印字符时出错
【发布时间】:2013-07-14 22:28:55
【问题描述】:

首先,我的代码:

#include <stdio.h>

int main(){
   int a;
   char b;

   printf("Insert number: ");
   scanf_s("%i",&a);
   getchar();

   printf("Insert character: ");
   scanf_s("%c",&b);

   printf("Number: %i\n",a);
   printf("Character: %c\n",b);

   getchar();
   getchar();
   return 0;
}

我使用 scanf_s,但 Visual Studio 2012 说 scanf 出错。好的,int 没问题,但问题是我什么时候可以使用 char。

将char保存在var中,但是当我调用printf这个var时,什么都不显示,为什么?

我在 linux 上检查了这个并且工作正常。

对不起我的英语:)

【问题讨论】:

  • 代码在 Visual Studio 2012 中为我正确编译和执行。你确定你发布了正确的代码吗?如果有,您可以退出您的问题以记录您看到的编译器或运行时错误吗?如果您遇到运行时错误,请说明您提供的输入、接收的输出以及预期的输出。
  • 我没有错误代码,程序运行正常,但是当我用 var char 调用 printf 函数时,不显示结果。截图:i.imgur.com/2Ncz0bf.png
  • 如果我输入 5[space][enter] 作为数字,我可以重现这个。您是否在号码之前或之间输入了任何内容并输入?
  • nop,只插入 1 个数字和 1 个字符(5[enter]c[enter])

标签: c visual-studio-2012 printf scanf


【解决方案1】:

您必须在scanf_s中指定输入字符串或字符的大小。

改变

scanf_s("%c",&b);

scanf_s("%c", &b, 1);

【讨论】:

  • 谢谢!完美工作:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2016-11-09
  • 1970-01-01
相关资源
最近更新 更多