表題の件、次のことを実現したいのでご協力ください。
最終的に実現したいこと。
コマンドライン引数より ファイルオープン分類(数字) ファイル形式 ファイル名を入力しfopen関数の引数として
利用する。
今回実現したいこと
fopen関数の第2引数である、オープンモードの文字列をコマンドライン引数の「ファイルオープン分類」、「ファイル形式」から作成する関数を作りたいと思っています。作成するにあたって以下が諸条件です。
条件
・main関数とは分離する
・ファイルオープン分類として入力する数値とオープンモードの対応は以下の通り
1:r, 2:w, 3:a, 4:r+, 5:w+
・ファイル形式は以下の通り
c:テキスト,b:バイナリ
→ファイル形式を指定しているのはbが選択された場合に対応するためです。
困っている個所
以下のようにコードを書いていますが、実行するとファイルダンプが発生します。
どのように変更すればopenModeStrにオープンモードの文字列を格納し、表示させることが出来るでしょうか。
#include<stdio.h> #include<string.h> int makeModeStr(char openMode, char fileType, char *openModeStr); int main(int argc, char *argv[]) { char openModeStr[4]; int check = makeModeStr(argv[1][0], argv[2][0], openModeStr); printf("openModeStr = %s\n", openModeStr); return 0; } int makeModeStr(char openMode, char fileType, char *openModeStr){ if (openMode == '1') { strcpy(openModeStr, "r"); } else if (openMode == '2') { strcpy(openModeStr, "w"); } else if (openMode == '3') { strcpy(openModeStr, "a"); } else if (openMode == '4') { strcpy(openModeStr, "r+"); } else { strcpy(openModeStr, "w+"); } if (fileType == 'b') { strcat(openModeStr, "b"); } return 0; }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/02 05:12
2020/11/02 05:16
2020/11/02 05:34
2020/11/02 05:37 編集
2020/11/02 05:44
2020/11/02 05:45
2020/11/02 05:47
2020/11/02 05:50
2020/11/02 05:53
2020/11/02 06:01
2020/11/02 06:06
2020/11/02 07:00
2020/11/02 07:07
2020/11/02 07:13