fork download
  1. #include <stdio.h>
  2.  
  3. // 構造体PersonCardの定義
  4. struct PersonCard {
  5. int number; // 学籍・職員番号(整数)
  6. char name[31]; // 氏名(最大30文字+終端文字)
  7. char purpose[51]; // 入構目的(最大50文字+終端文字)
  8. };
  9.  
  10. // Gate関数:入力&構造体への格納(参照渡し)
  11. void Gate(struct PersonCard *p) {
  12. printf("学籍・職員番号を入力:");
  13. scanf("%d", &p->number);
  14.  
  15. // 改行文字を読み飛ばし
  16.  
  17. printf("氏名を入力:");
  18. fgets(p->name, sizeof(p->name), stdin);
  19.  
  20. printf("入構目的を入力:");
  21. fgets(p->purpose, sizeof(p->purpose), stdin);
  22. }
  23.  
  24. // Disp関数:確認表示(値渡しでもOKだが、ここでは分かりやすく値渡し)
  25. void Disp(struct PersonCard p) {
  26. printf("\n[確認]\n");
  27. printf("学籍・職員番号:%d\n", p.number);
  28. printf("氏名:%s", p.name);
  29. printf("入構目的:%s", p.purpose);
  30. }
  31.  
  32. int main(void)
  33. {
  34. // 構造体オブジェクトの宣言
  35. struct PersonCard card;
  36.  
  37. // Gate関数とDisp関数の呼び出し
  38. Gate(&card); // 参照渡し(アドレスを渡す)
  39. Disp(card); // 値渡し(中身をコピーして渡す)
  40.  
  41. printf("\n受け付けました。\n");
  42.  
  43. return 0;
  44. }
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
学籍・職員番号を入力:氏名を入力:入構目的を入力:
[確認]
学籍・職員番号:194
氏名:入構目的:
受け付けました。