繁体   English   中英

如何使用scanf_s读取多个字符?

[英]How to read multiple characters using scanf_s?

我应该编写一个程序,输入 2 个字符,它们之间有一个空格。 出于某种原因,我无法使用单个 scanf_s,因为它会引发异常。

是我做错了什么还是根本不可能?

#include <stdio.h>

int main() 
{
  char character1, character2;

  printf("type in 2 small letters with a space inbetween: ");
  scanf_s("%c %c", &character1, &character2);

  //this part prints big letter version of the one i typed in and its integer value
  printf("%c %d\n", character1 - 32, character1 - 32); 
  printf("%c %d\n", characer2 - 32, character2 - 32);

  return 0;
}

因为我使用的是 scanf_s 而不是常规的 scanf 我需要像这样指定缓冲区大小:

scanf_s("%c %c", &character1, 1, &character2, 1);

另一种选择是使用 scanf 但我必须抑制警告:

#define _CRT_SECURE_NO_WARNINGS 1
#define _WINSOCK_DEPRECATED_NO_WARNINGS

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM