回答編集履歴

1

コードを追加

2020/09/26 11:15

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -1,3 +1,75 @@
1
1
  main で、入力された code を使って検索することなしに、
2
2
 
3
3
  未初期化の mvp の値を表示しています。
4
+
5
+
6
+
7
+ **追記**
8
+
9
+ C++ なら map を使うと簡単になります。
10
+
11
+ ```C++
12
+
13
+ #include <iostream>
14
+
15
+ #include <fstream> // ifstream
16
+
17
+ #include <string>
18
+
19
+ #include <map>
20
+
21
+ using namespace std;
22
+
23
+
24
+
25
+ int main()
26
+
27
+ {
28
+
29
+ ifstream ifs("schools.dat");
30
+
31
+ if (!ifs) return 1;
32
+
33
+
34
+
35
+ map<string, string> extention;
36
+
37
+ string code, extnum, yes;
38
+
39
+ while (ifs >> code >> extnum) {
40
+
41
+ code.erase(code.end() - 1); // '|' の削除
42
+
43
+ extention[code] = extnum;
44
+
45
+ }
46
+
47
+ cout << "内線番号検索\n\n";
48
+
49
+ do {
50
+
51
+ cout << "学校コードを入力してください: ";
52
+
53
+ cin >> code;
54
+
55
+ auto i = extention.find(code);
56
+
57
+ if (i == extention.end())
58
+
59
+ cout << code << " という学校コードは見つかりませんでした\n";
60
+
61
+ else
62
+
63
+ cout << "333 444 5050 x " << i->second << endl;
64
+
65
+ cout << "他の検索をしますか? (Y)es: ";
66
+
67
+ cin >> yes;
68
+
69
+ } while (yes[0] == 'y' || yes[0] == 'Y');
70
+
71
+ cout << "検索を終了します\n";
72
+
73
+ }
74
+
75
+ ```