「C言語/ファイル入出力」の版間の差分
削除された内容 追加された内容
同じファイルを重複して fopen() しているバグ多数。 タグ: 2017年版ソースエディター |
{{コラム|Visual Studio で、デバッグ セッションの終了時にコンソールが閉じてしまう場合| Visual Studio で、デバッグ セッションの終了時にコンソールが閉じてしまう場合は、 : [ツール] -> [オプション] -> [デバッグ] -> [デバッグの停止時に自動的にコンソールを閉じる] を無効にします。 }} タグ: 2017年版ソースエディター |
||
65 行
<code>#pragma warning(disable:4996)</code> が、fopenなどの関数の使用許可への指令である。これは、stdafx など一連のWindows用ヘッダのインクルードの後に指令する必要がある。
{{コラム|Visual Studio で、デバッグ セッションの終了時にコンソールが閉じてしまう場合|
Visual Studio で、デバッグ セッションの終了時にコンソールが閉じてしまう場合は、
: [ツール] -> [オプション] -> [デバッグ] -> [デバッグの停止時に自動的にコンソールを閉じる]
を無効にします。
}}
実際にWindows用のコードを書くと、下記のようになる。
71 ⟶ 76行目:
#include "stdafx.h"
#include <stdio.h>
#pragma warning(disable:4996)
80 ⟶ 84行目:
if (fp1 == NULL) {
perror("ファイルを開けませんでした。\n");
return 1;
}
fclose(fp1);
}
</syntaxhighlight>
199 行
#include "stdafx.h"
#include <stdio.h>
#pragma warning(disable:4996)
209 ⟶ 208行目:
if (fp1 == NULL) {
perror("ファイルを開けませんでした。\n");
return 1;
}
227 ⟶ 225行目:
fclose(fp1);
printf("ファイルをクローズしました。\n");
}
</syntaxhighlight>
272 ⟶ 267行目:
#include "stdafx.h"
#include <stdio.h>
#pragma warning(disable:4996)
282 ⟶ 276行目:
if (fp1 == NULL) { // ここを読み取りモード"r"にするのを忘れないように
perror("ファイルを開けませんでした。\n");
return 1;
}
300 ⟶ 293行目:
fclose(fp1);
printf("ファイルをクローズしました。\n");
}
</syntaxhighlight>
320 ⟶ 309行目:
このように、最初の1行(aaaaaaaaaaa)だけが読み取りされている。
329 ⟶ 316行目:
#include "stdafx.h"
#include <stdio.h>
#pragma warning(disable:4996)
339 ⟶ 325行目:
if (fp1 == NULL) {
perror("ファイルを開けませんでした。\n");
return 1;
}
345 ⟶ 330行目:
printf("ファイルをオープンしました。\n");
}
char str1[150];
358 ⟶ 342行目:
printf("ファイル2行目に書いてある文字列\n");
printf("%s\n", str1);
fclose(fp1);
printf("ファイルをクローズしました。\n");
}
</syntaxhighlight>
407 ⟶ 386行目:
<syntaxhighlight lang="C">
#include <stdio.h>
int main()
415 ⟶ 392行目:
if (fp1 == NULL) {
perror("ファイルを開けませんでした。\n");
return 1;
}
436 ⟶ 412行目:
fclose(fp1);
printf("ファイルをクローズしました。\n");
}
</syntaxhighlight>
471 ⟶ 443行目:
<syntaxhighlight lang="C">
#include <stdio.h>
int main()
479 ⟶ 449行目:
if (fp1 == NULL) {
perror("ファイルを開けませんでした。\n");
return 1;
}
500 ⟶ 469行目:
fclose(fp1);
printf("ファイルをクローズしました。\n");
}
566 ⟶ 532行目:
<syntaxhighlight lang="C">
#include <stdio.h>
int main()
574 ⟶ 538行目:
if (fp1 == NULL) { // ここを読み取りモード"r"にするのを忘れないように
perror("ファイルを開けませんでした。\n");
return 1;
}
580 ⟶ 543行目:
printf("ファイルをオープンしました。\n");
}
char str1[150];
597 ⟶ 559行目:
fclose(fp1);
printf("ファイルをクローズしました。\n");
}
</syntaxhighlight>
660 ⟶ 620行目:
<syntaxhighlight lang="C">
#include <stdio.h>
#include <string.h>
668 ⟶ 627行目:
if (fp1 == NULL) {
perror("ファイルを開けませんでした。\n");
return 1;
}
715 ⟶ 673行目:
fclose(fp1);
printf("ファイルをクローズしました。\n");
}
</syntaxhighlight>
763 ⟶ 718行目:
<syntaxhighlight lang="C">
#include <stdio.h>
#include <string.h>
773 ⟶ 727行目:
if (fp1 == NULL) { // ここを読み取りモード"r"にするのを忘れないように
perror("ファイルを開けませんでした。\n");
return 1;
}
887 ⟶ 840行目:
#include "stdafx.h"
#include <stdio.h>
#pragma warning(disable:4996)
int main()
898 ⟶ 848行目:
if (fp1 == NULL) {
perror("ファイルを開けませんでした。\n");
return 1;
}
904 ⟶ 853行目:
printf("ファイルをオープンしました。\n");
}
char str1[150];
916 ⟶ 864行目:
fclose(fp1);
printf("ファイルをクローズしました。\n");
}
</syntaxhighlight>
933 ⟶ 877行目:
#include "stdafx.h"
#include <stdio.h>
#pragma warning(disable:4996)
944 ⟶ 887行目:
//fclose(fp1); // ここでクローズするとエラー
return 1;
}
962 ⟶ 904行目:
}
}
</syntaxhighlight>
980 ⟶ 919行目:
fclose(fp1); // コメントアウトしないとエラーになる
return 1;
}
1,005 ⟶ 943行目:
// Linuxでエラーになる例
#include <stdio.h>
// #pragma warning(disable:4996) // Linux なので不要。未知の pragma は無視されるのでコメント化は必要ない
1,025 ⟶ 962行目:
printf("ファイルを閉じました。 \n");
printf("終了しています。 \n");
}
</syntaxhighlight>
1,038 ⟶ 972行目:
// Linuxでエラーにならない例
#include <stdio.h>
// #pragma warning(disable:4996) // Linux なので不要だし、あるとエラーの原因になる
1,057 ⟶ 990行目:
printf("終了しています。 \n");
}
</syntaxhighlight>
1,133 ⟶ 1,063行目:
// Linux用
#include <stdio.h>
// #pragma warning(disable:4996) // Linux なので不要だし、あるとエラーの原因になる
1,156 ⟶ 1,085行目:
printf("ファイルを閉じました。 \n");
printf("終了しています。 \n");
}
</syntaxhighlight>
1,220 ⟶ 1,146行目:
<syntaxhighlight lang="C">
#include <stdio.h>
#include <string.h>
1,229 ⟶ 1,154行目:
if (fp1 == NULL) {
perror("ファイルを開けませんでした。\n");
return 1;
}
1,235 ⟶ 1,159行目:
printf("ファイルをオープンしました。\n");
}
char buffer1[150];
1,372 ⟶ 1,295行目:
if (fp1 == NULL) {
perror("ファイルを開けませんでした。\n");
return 1;
}
1,512 ⟶ 1,434行目:
#include <stdio.h>
#include <locale.h>
#pragma warning(disable:4996)
1,524 ⟶ 1,445行目:
wprintf(L"ファイルを開けませんでした。\n");
perror(0);
return 1;
}
1,544 ⟶ 1,464行目:
fclose(fp1);
wprintf(L"ファイルをクローズしました。\n");
}
</syntaxhighlight>
1,562 ⟶ 1,475行目:
また、このことから、Windowsの自称する「Unicode」が、実際の国際規格とは実態が違っていることが分かる。
[[カテゴリ:C言語]]
|