以前に解決した質問でカズマさんや皆様に教えられたやり方でうまくいったので今回も同じように作ってみたのですがstrtalkの数値すら読み込めないようで困っています。
以下はプログラムです。
#include "DxLib.h" #include "stdio.h" #pragma warning(disable: 4996) int i = 0; int countchar = 0; char str[7]; int loop = 1; int Green = GetColor(0, 255, 0); int x = 0, y = 0; int a,b; int strtalk = 0; int mark = 0; void mozi(void) { if (countchar >= 0) { ++countchar; } if (countchar == 50) { countchar = 0; ++i; //ループを止めるためのプログラム。 if (i == 6) { countchar = 11; } } if (i == 1) { a = i; } //printf("str[%d]は%c", i,str[i-1]); if (a == 1) { DrawFormatString(100+10, 500, Green, "%c%c", str[0], str[1]); } if (i == 2) { b = i; } //printf("str[%d]は%c", i,str[i-1]); if (b == 2) { DrawFormatString(100 + 20, 500, Green, "%c%c", str[2], str[3]); } } int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { //ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK); //ウィンドウモード変更と初期化と裏画面設定 SetFontSize(25); //サイズを64に変更 SetFontThickness(10); //太さを8に変更 ChangeFont("MS 明朝"); //種類をMS明朝に変更 ChangeFontType(DX_FONTTYPE_ANTIALIASING); //アンチエイリアスフォントに変更 SetGraphMode(780, 680, 32); // ウィンドウの大きさを指定 ChangeWindowMode(TRUE); // 全画面ではなくウインドウを使用 if (DxLib_Init() == -1) return -1; // DXライブラリ初期化処理 SetDrawScreen(DX_SCREEN_BACK); // 裏画面を使用する設定 // ウインドウのサイズを手動ではできず、且つウインドウのサイズに合わせて拡大もしないようにする SetWindowSizeChangeEnableFlag(FALSE, FALSE); // 画面サイズは最大の780*680にしておく SetGraphMode(780, 680, 32); // 最初は 640x480 にしておく SetWindowSize(780, 680); // while(裏画面を表画面に反映, メッセージ処理, 画面クリア) while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) { DrawFormatString(300, 400, Green, "countcharは%d", countchar, Font00); // 文字を描画する DrawFormatString(10, 50, Green, "%d", i, Font00); DrawFormatString(20, 100, Green, "%d", a, Font00); FILE* fp = fopen("test2.txt", "r"); if (!fp); if (fscanf(fp, "strtalk = %d,str[7] = %c", &strtalk,&str[7]) != 1); fclose(fp); DrawFormatString(200, 200, Green, "str[7] = %c", str[7]); DrawFormatString(200, 300, Green, "strtalk = %d", strtalk); mozi(); } DxLib_End(); // DXライブラリ終了処理 return 0; }
試しにtest.txtにstrtalk = 1だけ書いて、strtalkの数値だけ読み取れるか書いてみましたが0のままでした。
FILE* fp = fopen("test2.txt", "r"); if (!fp); if (fscanf(fp, "strtalk = %d", &strtalk) != 1); fclose(fp); DrawFormatString(200, 300, Green, "strtalk = %d", strtalk);
編集1
#include "DxLib.h" #include "stdio.h" #pragma warning(disable: 4996) int i = 0; int countchar = 0; int loop = 1; int Green = GetColor(0, 255, 0); int x = 0, y = 0; int a,b,c; int mark = 0; int strtalk = 0; char str[7] = "あいう"; void mozi(void) { if (countchar >= 0) { ++countchar; } if (countchar == 50) { countchar = 0; ++i; //ループを止めるためのプログラム。 if (i == 6) { countchar = 11; } } if (i == 1) { a = i; } //printf("str[%d]は%c", i,str[i-1]); if (a == 1) { DrawFormatString(100+10, 500, Green, "%c%c", str[0], str[1]); } if (i == 2) { b = i; } //printf("str[%d]は%c", i,str[i-1]); if (b == 2) { DrawFormatString(100 + 30, 500, Green, "%c%c", str[2], str[3]); } if (i == 3) { c = i; } //printf("str[%d]は%c", i,str[i-1]); if (c == 3) { DrawFormatString(100 + 50, 500, Green, "%c%c", str[4], str[5]); } } int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { SetFontSize(25); //サイズを64に変更 SetFontThickness(10); //太さを8に変更 ChangeFont("MS 明朝"); //種類をMS明朝に変更 ChangeFontType(DX_FONTTYPE_ANTIALIASING); //アンチエイリアスフォントに変更 SetGraphMode(780, 680, 32); // ウィンドウの大きさを指定 ChangeWindowMode(TRUE); // 全画面ではなくウインドウを使用 if (DxLib_Init() == -1) return -1; // DXライブラリ初期化処理 SetDrawScreen(DX_SCREEN_BACK); // 裏画面を使用する設定 // ウインドウのサイズを手動ではできず、且つウインドウのサイズに合わせて拡大もしないようにする SetWindowSizeChangeEnableFlag(FALSE, FALSE); // 画面サイズは最大の780*680にしておく SetGraphMode(780, 680, 32); // 最初は 640x480 にしておく SetWindowSize(780, 680); // while(裏画面を表画面に反映, メッセージ処理, 画面クリア) while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) { DrawFormatString(300, 400, Green, "countcharは%d", countchar, Font00); // 文字を描画する mozi();//関数を置くことでiを含んだ描画の関数が働くようになる。 } DxLib_End(); // DXライブラリ終了処理 return 0; }
https://teratail.com/questions/223016 で示されたコードと酷似しています。
元となるコードが同一なのかしら。 お心当たりはありますか?
心当たりというかその人のコードを少し拝借しました。
なので似ている部分があるだけです。
Cの構文をもう少し勉強しましょう。特に条件分岐や関数の使い方。
・・・誤字・脱字・不要な文字・・・ソースを見直してd^^
うまくいってないコードを拝借する意味が分からない。
拝借したオリジナルにリンクを張らない意味もわからない。
副アカウントで書いたのがバレてコードを拝借したと言う言い訳をした前科あり。
副アカウントなら不届き者だし、そうでなければ無礼者やな。