質問編集履歴
1
strcpyの第2引数の文字表記 困っている個所:実行後のファイルダンプ
title
CHANGED
File without changes
|
body
CHANGED
@@ -17,8 +17,8 @@
|
|
17
17
|
→ファイル形式を指定しているのはbが選択された場合に対応するためです。
|
18
18
|
|
19
19
|
困っている個所
|
20
|
-
以下のようにコードを書いていますが、
|
20
|
+
以下のようにコードを書いていますが、実行するとファイルダンプが発生します。
|
21
|
-
|
21
|
+
どのように変更すればopenModeStrにオープンモードの文字列を格納し、表示させることが出来るでしょうか。
|
22
22
|
|
23
23
|
```ここに言語を入力
|
24
24
|
#include<stdio.h>
|
@@ -29,36 +29,42 @@
|
|
29
29
|
|
30
30
|
int main(int argc, char *argv[])
|
31
31
|
{
|
32
|
-
char openModeStr[4] = "\0";
|
33
|
-
|
32
|
+
char openModeStr[4];
|
34
|
-
|
33
|
+
int check = makeModeStr(argv[1][0], argv[2][0], openModeStr);
|
35
|
-
|
34
|
+
|
36
|
-
|
35
|
+
printf("openModeStr = %s\n", openModeStr);
|
37
|
-
|
36
|
+
|
38
|
-
|
37
|
+
return 0;
|
39
38
|
}
|
40
39
|
|
41
40
|
int makeModeStr(char openMode, char fileType, char *openModeStr){
|
41
|
+
|
42
|
+
|
43
|
+
if (openMode == '1') {
|
44
|
+
strcpy(openModeStr, "r");
|
45
|
+
}
|
46
|
+
|
47
|
+
else if (openMode == '2') {
|
48
|
+
strcpy(openModeStr, "w");
|
49
|
+
}
|
50
|
+
else if (openMode == '3') {
|
51
|
+
strcpy(openModeStr, "a");
|
52
|
+
}
|
53
|
+
else if (openMode == '4') {
|
54
|
+
strcpy(openModeStr, "r+");
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
strcpy(openModeStr, "w+");
|
58
|
+
}
|
42
59
|
|
43
|
-
|
44
|
-
if (
|
60
|
+
if (fileType == 'b') {
|
45
|
-
|
61
|
+
strcat(openModeStr, "b");
|
46
62
|
}
|
47
|
-
|
48
|
-
|
63
|
+
|
49
|
-
strcpy(opneModeStr, "w");
|
50
|
-
}
|
51
|
-
else if (openMode == "3") {
|
52
|
-
strcpy(opneModeStr, "a");
|
53
|
-
}
|
54
|
-
else if (openMode == "4") {
|
55
|
-
strcpy(opneModeStr, "r+");
|
56
|
-
}
|
57
|
-
else {
|
58
|
-
strcpy(opneModeStr, "w+");
|
59
|
-
}
|
60
|
-
|
61
|
-
|
64
|
+
return 0;
|
62
65
|
}
|
63
66
|
|
67
|
+
|
68
|
+
|
69
|
+
|
64
70
|
```
|