サンプル集 |
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■other |
Linuxコマンド |
用語集 |
debian メモ |
apache2 メモ |
MySQL メモ |
Oracle メモ |
HOME |
ファイルを読み込み内容を表示します。
P014.cpp | ||
|
2010/01/29 追記
Visual C++ 2008 Express Edition でテストしてみます。
◆環境OS | Windows XP Professional Version 2002 Service Pack 3 |
---|---|
VC | Microsoft Visual Studio 2008 Version 9.0.30729.1 SP |
[Win32] - [Win32 コンソール アプリケーション] でプロジェクトを作りソースを貼り付けます。
コンパイルエラーが出ました。
1>P014.cpp
1>c:\p014\p014\p014.cpp(10) : warning C4627: '#include <stdlib.h>': プ
リコンパイル済みヘッダーの使用を検索中にスキップされました
1> ディレクティブを 'stdafx.h' に追加するか、プリコンパイル済み
ヘッダーをビルドし直します
1>c:\p014\p014\p014.cpp(29) : fatal error C1010: プリコンパイル ヘッダ
ーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソー
スに追加しましたか?
1>c:\p014\p014\p014.cpp(10) : warning C4627: '#include <stdlib.h>': プ
リコンパイル済みヘッダーの使用を検索中にスキップされました
1> ディレクティブを 'stdafx.h' に追加するか、プリコンパイル済み
ヘッダーをビルドし直します
1>c:\p014\p014\p014.cpp(29) : fatal error C1010: プリコンパイル ヘッダ
ーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソー
スに追加しましたか?
そういえば、プロジェクト生成時に自動で作られた main 関数を含むファイルは次のものでした。
P014.cpp | ||
|
生成直後のソースでは stdafx.h がインクルードされています。
色々調べていたら、プロジェクト作成時に「プリコンパイル済みヘッダー(H)」のチェックを外せば普通の include で良いという情報を目にしました。 プロジェクトを再作成してみます。
チェックを外して再作成し、コンパイルしたところ別のエラーが出ました。
1>P014.cpp
1>c:\p014\p014\p014.cpp(18) : warning C4996: 'fopen': This function or
variable may be unsafe. Consider using fopen_s instead. To disable de
precation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\stdio
.h(237) : 'fopen' の宣言を確認してください。
1>c:\p014\p014\p014.cpp(18) : warning C4996: 'fopen': This function or
variable may be unsafe. Consider using fopen_s instead. To disable de
precation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\stdio
.h(237) : 'fopen' の宣言を確認してください。
fopen 関数の代わりに fopen_s 関数を使うべきなようです。 fopen_s 関数を使うようにプログラムを修正します。
P014.cpp | ||
|
修正後、コンパイルをしたところ問題なく通ったので実行してみます。 表示するファイルは、今回作ったプログラムを指定してみます。
>P014.exe P014.cpp
/* PROGRAM NAME : P014.cpp */
/* AUTHOR : ymlib.com */
/* MAKE DAY : 1996/07/11 */
/* */
/* ファイルの中身を表示する */
/* */
#include <stdio.h>
#include <stdlib.h>
void main(int argc, char*argv[]) {
if (argc < 2) {
fprintf(stderr, "ファイル名を入力して下さい。\n");
exit (0);
}
FILE*fp;
errno_t ret = fopen_s(&fp, argv[1], "r");
if (ret != 0) {
fprintf(stderr, "%s ファイルがありません。\n", argv[1]);
exit(0);
}
int c;
while ((c = fgetc(fp)) != EOF) {
putchar(c); /* 画面に出す */
}
fclose (fp);
}
/* PROGRAM NAME : P014.cpp */
/* AUTHOR : ymlib.com */
/* MAKE DAY : 1996/07/11 */
/* */
/* ファイルの中身を表示する */
/* */
#include <stdio.h>
#include <stdlib.h>
void main(int argc, char*argv[]) {
if (argc < 2) {
fprintf(stderr, "ファイル名を入力して下さい。\n");
exit (0);
}
FILE*fp;
errno_t ret = fopen_s(&fp, argv[1], "r");
if (ret != 0) {
fprintf(stderr, "%s ファイルがありません。\n", argv[1]);
exit(0);
}
int c;
while ((c = fgetc(fp)) != EOF) {
putchar(c); /* 画面に出す */
}
fclose (fp);
}
指定したファイルの内容が正しく表示されました。
Copyright (C) 2012 ymlib.com