teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

文言修正

2016/01/22 07:49

投稿

catsforepaw
catsforepaw

スコア5944

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  何をやろうとしているのかはよく判りませんが、ファイル名の一部をオープンモードとするアイディアは聞いたことがありませんし、無用な混乱を招くので別の方法を考えた方が良いと思います。
2
2
 
3
- それとは別に例外が発生する問題ですが、C標準の仕様かどうかは定かではないのですが、VC++ではfopenの引数(ファイル名、モード)にNULLか空文字列を渡すと例外ハンドラーが呼び出されます。
3
+ それとは別にアサーションが発生する問題ですが、C標準の仕様かどうかは定かではないのですが、VC++ではfopenの引数(ファイル名、モード)にNULLか空文字列を渡すと無効な引数ハンドラーが呼び出されます。
4
4
  したがって、fopen関数を呼び出す前に引数のチェックをすれば問題を回避できます。
5
5
 
6
6
  コード例
@@ -10,4 +10,7 @@
10
10
  printf("引数に誤りがあります\n");
11
11
  return 0;
12
12
  }
13
- ```
13
+ ```
14
+
15
+ ---
16
+ C標準関数で例外はないですよね。アサーションに修正しました。

1

スペルミス修正

2016/01/22 07:49

投稿

catsforepaw
catsforepaw

スコア5944

answer CHANGED
@@ -8,6 +8,6 @@
8
8
  if(filename[0] == '\0' || mode[0] == '\0')
9
9
  {
10
10
  printf("引数に誤りがあります\n");
11
- retur 0;
11
+ return 0;
12
12
  }
13
13
  ```