質問編集履歴

1

strcpyの第2引数の文字表記 困っている個所:実行後のファイルダンプ

2020/11/02 05:09

投稿

ken21
ken21

スコア17

test CHANGED
File without changes
test CHANGED
@@ -36,9 +36,9 @@
36
36
 
37
37
  困っている個所
38
38
 
39
- 以下のようにコードを書いていますが、openMode, filetypeもにどうやらargvのポイン渡されているようです。
39
+ 以下のようにコードを書いていますが、実行するファルダ発生します。
40
40
 
41
- コマンドラインで入力した数字、ファイル形式の文字をchar型の仮引数へ渡たいのですどのようにすればよいでしょうか。
41
+ どのように変更すればopenModeStrにオープモードの文字格納、表示させること出来るでしょうか。
42
42
 
43
43
 
44
44
 
@@ -60,19 +60,17 @@
60
60
 
61
61
  {
62
62
 
63
- char openModeStr[4] = "\0";
63
+ char openModeStr[4];
64
64
 
65
- char openMode
65
+ int check = makeModeStr(argv[1][0], argv[2][0], openModeStr);
66
66
 
67
- int check = makeModeStr(argv[1][0], argv[2][0], openModeStr);
68
67
 
69
-
70
68
 
71
- printf("openModeStr = %s\n", openModeStr);
69
+ printf("openModeStr = %s\n", openModeStr);
72
70
 
73
-
74
71
 
72
+
75
- return 0;
73
+ return 0;
76
74
 
77
75
  }
78
76
 
@@ -80,48 +78,62 @@
80
78
 
81
79
  int makeModeStr(char openMode, char fileType, char *openModeStr){
82
80
 
81
+
82
+
83
+
84
+
83
-
85
+ if (openMode == '1') {
86
+
87
+ strcpy(openModeStr, "r");
88
+
89
+ }
90
+
91
+
92
+
93
+ else if (openMode == '2') {
94
+
95
+ strcpy(openModeStr, "w");
96
+
97
+ }
98
+
99
+ else if (openMode == '3') {
100
+
101
+ strcpy(openModeStr, "a");
102
+
103
+ }
104
+
105
+ else if (openMode == '4') {
106
+
107
+ strcpy(openModeStr, "r+");
108
+
109
+ }
110
+
111
+ else {
112
+
113
+ strcpy(openModeStr, "w+");
114
+
115
+ }
84
116
 
85
117
 
86
118
 
87
- if (openMode == "1") {
119
+ if (fileType == 'b') {
88
120
 
89
- strcpy(opneModeStr, "r");
121
+ strcat(openModeStr, "b");
90
122
 
91
123
  }
92
124
 
93
-
94
125
 
95
- else if (openMode == "2") {
96
126
 
97
- strcpy(opneModeStr, "w");
98
-
99
- }
100
-
101
- else if (openMode == "3") {
102
-
103
- strcpy(opneModeStr, "a");
104
-
105
- }
106
-
107
- else if (openMode == "4") {
108
-
109
- strcpy(opneModeStr, "r+");
110
-
111
- }
112
-
113
- else {
114
-
115
- strcpy(opneModeStr, "w+");
116
-
117
- }
118
-
119
-
120
-
121
- return 0;
127
+ return 0;
122
128
 
123
129
  }
124
130
 
125
131
 
126
132
 
133
+
134
+
135
+
136
+
137
+
138
+
127
139
  ```