#include <stdio.h>
#include <string.h>
//スクリプトは最大1000行まで読み込む
#define SCRIPT_MAX_LINE 1000
//スクリプト最大文字数
#define SCRIPT_MAX_STRING_LENGTH 300
typedef struct ScriptInformation_tag {
int maxLineNumber; //スクリプト行数
int currentLine; //現在何行目を実行しているか
const char* filename; //ファイル名
char script[SCRIPT_MAX_LINE][SCRIPT_MAX_STRING_LENGTH];
} ScriptInformation;
//スクリプトファイルを読み込む
//戻り値 -1 : 失敗 0 : 成功
int loadScript(const char* filename, ScriptInformation* scriptInfo)
{
int pos;
char c;
//スクリプトファイル
FILE* fp;
//スクリプト情報を初期化
memset( scriptInfo , 0, sizeof(ScriptInformation) );
//スクリプトファイルを開く
fp = fopen(filename, "r");
if( fp == NULL ) {
//ファイル読み込みに失敗
printf("スクリプト %s を読み込めませんでした\n", filename);
return -1;
}
//script書き込み時に使用
pos = 0;
for( ;; ) {
//一文字読み込み
c = fgetc( fp );
//ファイルの終わりかどうか
if( feof( fp ) ) {
break;
}
if( pos >= SCRIPT_MAX_STRING_LENGTH - 1 ) {
//1行の文字数が多すぎる
printf("error: 文字数が多すぎます (%d行目)", scriptInfo->currentLine );
return -1;
}
//改行文字が出てきた場合,次の行へ移動
if( c == '\n' ) {
//\0を文字列の最後に付ける
scriptInfo->script[ scriptInfo->currentLine ][ pos ] = '\0';
//次の行に移動
scriptInfo->currentLine++;
//書き込み位置を0にする
pos = 0;
}else {
//書き込み
scriptInfo->script[ scriptInfo->currentLine ][ pos ] = c;
//文字書き込み位置をずらす
pos++;
}
}
//最大行数
scriptInfo->maxLineNumber = scriptInfo->currentLine;
//読み込み中の行を0にする
scriptInfo->currentLine = 0;
//スクリプトファイル名を設定
scriptInfo->filename = filename;
return 0;
}
int main()
{
int i;
ScriptInformation script;
loadScript( "../dat/script.txt", &script );
//10行目までを表示
for( i = 0; i < 10; i++ ) {
printf("%d : %s\n", i + 1, script.script[i] );
}
return 0;
}
ここのやつのパスを変えただけなんですが
以下のようなエラーが出てしまいます
1>------ ビルド開始: プロジェクト: novel, 構成: Debug Win32 ------
1> novel.cpp
1>c:\users\desktop\novel\novel.cpp(29): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(234) : 'fopen' の宣言を確認してください。
1>LIBCMTD.lib(wincrt0.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
1>C:\Users\Desktop\ノベル第一弾\novel\Debug\novel.exe : fatal error LNK1120: 外部参照 1 が未解決です。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
原因がわからないんですが何故でしょうか?