0

私はまだ C に慣れていないので、コード ブロックでエラーが発生し続け、プログラムを実行できなくなります。「関数 printf_s() および scanf_s() の暗黙の宣言」というエラーが表示されます。これが私のコードです。

#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>

int main(void)
{
  int age = 0;
  char name[20];

  printf_s("Enter your age: ");
  scanf_s("%d", &age);

  print_s("Enter your name: ");
  scanf_s("%s", name, sizeof(name));

  printf_s("Your name is %s and you are %d years old.\n", name, age);

  return 0;
}
4

3 に答える 3

3

printf_sがライブラリの実装によって定義されている場合scanf_sにのみ使用できます。__STDC_LIB_EXT1__C11規格から追加されています。

最初に__STDC_LIB_EXT1__が定義されているかどうかを確認する必要があります。次に、printf_sorを使用する必要がありますscanf_s

#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
int main(void)
{
  int age = 0;
  char name[20];
  #ifdef __STDC_LIB_EXT1__
      printf_s("Enter your age: ");
      scanf_s("%d", &age);
      print_s("Enter your name: ");
      scanf_s("%s", name, sizeof(name));
      printf_s("Your name is %s and you are %d years old.\n", name, age);
  #else
      printf("Enter your age: ");
      scanf("%d", &age);
      print("Enter your name: ");
      scanf("%19s", name);
      printf("Your name is %s and you are %d years old.\n", name, age);
  #endif
  return 0;
}
于 2016-05-25T03:55:48.467 に答える
-2

標準関数名には no がない_sため、プログラムの標準準拠バージョンは次のようになります。

#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
int main(void)
{
  int age = 0;
  char name[20];

  printf("Enter your age: ");
  scanf("%d", &age);

  print("Enter your name: ");
  scanf("%19s", name);

  printf("Your name is %s and you are %d years old.\n", name, age);

  return 0;
}
于 2016-05-25T03:28:41.787 に答える