MusicRoomの作り方 その2

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Rittai_3D
記事: 525
登録日時: 13年前

MusicRoomの作り方 その2

#1

投稿記事 by Rittai_3D » 13年前

前回のトピックに返信してくださった方々、本当にありがとうございます。

今回は、前回の続きです。

詳しくは、前回のトピックを参照してください。

→ ttp://dixq.net/forum/viewtopic.php?f=3&t=12938

コード:

#include "DxLib.h"
#include <stdio.h>
#include <stdlib.h>

#define MUSIC_NUM 6

static int Key[256]; // キーが押されているフレーム数を格納する

// キーの入力状態を更新する
int gpUpdateKey(){
	char tmpKey[256]; // 現在のキーの入力状態を格納する
	GetHitKeyStateAll( tmpKey );//全てのキーの入力状態を得る
	for( int i=0; i<256; i++ ){
		if( tmpKey[i] != 0 )//i番のキーコードに対応するキーが押されていたら
			Key[i]++;		//加算
		else				//押されていなければ
			Key[i] = 0;		//0にする
	}
	return 0;
}

typedef struct{
	int x,y;	//座標
	int color;	//文字の色
	char music_name[128];//ぶんかちょうは6曲しかない
	char cmt_buf[6][256];//コメント
}music_t;

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
	ChangeWindowMode(TRUE),SetAlwaysRunFlag(TRUE),DxLib_Init(),SetDrawScreen(DX_SCREEN_BACK);

	int Font01 = CreateFontToHandle("平成ゴシック",16,16,DX_FONTTYPE_ANTIALIASING_EDGE_8X8,-1,1,0,-1);//フォンント
	int Font02 = CreateFontToHandle("平成ゴシック",14,10,DX_FONTTYPE_ANTIALIASING_EDGE_8X8,-1,1,0,-1);//フォンント

	int img_back01 = LoadGraph("title03a.png");		//背景その1
	int img_back02 = LoadGraph("title03b.png");		//背景その2

	int WHITE = GetColor(130,105,105);		//色
	int YELLOW= GetColor(240,210,210);		//GetColorの引数が白、黄色じゃないのは無視してください

	music_t music[MUSIC_NUM] = { // 構造体にこの順番で入れていく
		{ 60, 130, YELLOW, "No.1 天狗の手帖 ~ Mysterious Note",
			{
				"タイトル、メニュー画面のテーマです。",
				"いつもの曲です。",
				"今回は少し暗くレトロな感じが出るようにして、妖怪らしさが出る",
				"ようにしました。",
				"ザーというノイズは妖怪のミステリアスな部分です。決してモニタ",
				"とスピーカーが逝かれたわけでは無いのでご安心を。",
			}
		},
		{ 65, 150, WHITE , "No.2 風の循環 ~ Wind Tour",
			{
				"撮影曲1です。",
				"今回のゲームは、通常のボス戦のような曲ではなく、もっと日常感",
				"を出したかった為、こんな感じに",
				"随分と落ち着いた感じですが、実際文は余裕です。自分から被写体",
				"をおちょくりに出かけている様なもんですし。",
				"",
			}
		},
		{ 65, 170, WHITE , "No.3 天狗が見ている ~ Black Eyes",
			{
				"撮影曲2です。",
				"怖いような可愛らしいような奇妙なノリを持たせました。",
				"人を攫ったり喰ったりが当たり前の妖怪なのに、どこか陽気で人当",
				"たりも良さそうな所が、幻想の天狗のイメージ。",
				"この曲には、その怖さと陽気さ、暢気さを混ぜた感じになっている",
				"かと思います。",
			}
		},
		{ 65, 190, WHITE , "No.4 東の国の眠らない夜",
			{
				"撮影曲3です。中盤以降に使う曲として用意しました。",
				"",
				"ボスも文も楽しんでいる感じを出しつつ、ボスに威圧感を持たせる",
				"のは難しい物です。",
				"この曲はそれを意識して、軽快で明るいながらもボスが強そうに",
				"見える様に格好つけて書きました。特にピアノ。",

			}
		},
		{ 65, 210, WHITE , "No.5 レトロスペクティブ京都",
			{
				"撮影曲4のテーマです。後半に使う曲として用意しました。",
				"",
				"レトロな日本をイメージしたところ、私の中ではこんな感じに。",
				"雪の降る京の都。人気の少ない夜の道。",
				"でも、この曲のレトロさは私のレトロさでして……。",
				"この曲を聴いていると何となく昔を思い出してしまう。",
			}
		},
		{ 65, 230, WHITE , "No.6 風神少女",
			{
				"撮影曲5のテーマです。",
				"この曲は文花帖のテーマ曲なので入れないわけにはいかないと思い",
				"入っております。",
				"本編では殆ど使われておりませんが:-)",
				"",
				"",
			}
		},
	};

	int SelectNum      = 0;		//現在選択中
	int SelectFlag     = 0;		//現在表示している曲のコメントのフラグ
	int SelectMusicCmt = 0;		//現在表示している曲のコメント
	int SelectedMusicNo= 0;		//コメントを表示する曲の番号を保持

	while(!ProcessMessage() && !ClearDrawScreen() && !gpUpdateKey() && !CheckHitKey(KEY_INPUT_ESCAPE)){

		if( Key[ KEY_INPUT_DOWN ] == 1 || (Key[KEY_INPUT_DOWN]%5==0 && Key[KEY_INPUT_DOWN]>30)){// キーが押された処理
			SelectNum = ( SelectNum + 1 ) % MUSIC_NUM;	// 現在の選択項目を一つ下にずらす(ループする)
		}

		if( Key[ KEY_INPUT_UP ] == 1 || (Key[KEY_INPUT_UP]%5==0 && Key[KEY_INPUT_UP]>30)){
			SelectNum = (SelectNum + (MUSIC_NUM-1) ) % MUSIC_NUM;	//上にずらす
		}

		if(Key[ KEY_INPUT_UP ] == 1 || Key[ KEY_INPUT_DOWN ] == 1 ||(Key[KEY_INPUT_DOWN]%5==0 && Key[KEY_INPUT_DOWN]>30) ||(Key[KEY_INPUT_UP]%5==0 && Key[KEY_INPUT_UP]>30)){
			for(int i=0 ; i<MUSIC_NUM ; i++ ){	// 項目数である6個ループ処理
				if( i == SelectNum ){			// 今処理しているのが、選択番号と同じ要素なら
					music[i].color = YELLOW;	// 色を帰る
					music[i].x     = 60;		// 座標を買える
				} else {						// 今処理しているのが、選択番号以外なら
					music[i].color = WHITE;		// 色を変える
					music[i].x     = 65;		// 座標を替え
				}
			}
		}

	if(Key[KEY_INPUT_Z] == 1 || Key[KEY_INPUT_RETURN] == 1){
			for(int i=0; i<MUSIC_NUM ; i++ ){
				if(i == SelectNum){
					SelectedMusicNo = i;
				}
			}
		}

		// 描画フェーズ
		DrawGraph(  0,0,img_back01,TRUE);	// 画像を描写
		DrawGraph(512,0,img_back02,TRUE);	// 同上

		for(int i=0; i<6; i++ ){ // 項目を描画
			DrawStringToHandle(music[i].x,music[i].y,music[i].music_name,music[i].color,Font01);
		}

		for(int j=0;j<6;j++){// コメントの行数
			DrawFormatStringToHandle(80,350+18*j,YELLOW,Font02,"%s",music[SelectedMusicNo].cmt_buf[j]);
		}

		ScreenFlip();
	}
	DxLib_End();
	return 0;
}
コメントの部分を外部のテキストファイルから読み込んで、表示するプログラムを書きたいのですが、うまく作れません。

ファイルは、

コード:

# 曲のコメント
# この記号でコメント
# 
 
 コメント1
 コメント
 コメント
 コメント
 コメント
 コメント
 
 コメント2
 コメント
 コメント
 コメント

 コメント3
 コメント
 コメント
 コメント
 コメント
 コメント

 コメント4
 コメント
 コメント
 コメント
 コメント
 コメント

 コメント5
 コメント
 コメント
 コメント
 コメント
 コメント

 コメント6
 コメント
 コメント
 コメント
 コメント
 コメント

 コメント7
 コメント
 コメント
 コメント
 コメント
 コメント

としております。

コメントは6行固定です。

コードが汚いのはご容赦下さい。
初心者です

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: MusicRoomの作り方 その2

#2

投稿記事 by softya(ソフト屋) » 13年前

2chみたいにhは省略しないでくださいね。
http://dixq.net/forum/viewtopic.php?f=3&t=12938

それと、こっちのトピックは質問項目が明確ではないので、再度質問内容を書いてください。
※ コードも最新をお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Rittai_3D
記事: 525
登録日時: 13年前

Re: MusicRoomの作り方 その2

#3

投稿記事 by Rittai_3D » 13年前

>>softya様

返信ありがとうございます。

>2chみたいにhは省略しないでくださいね。

すいません。直リンはまずいかな、と思いまして…

>それと、こっちのトピックは質問項目が明確ではないので、再度質問内容を書いてください。

すいません。もう一度書きます。

今回は、MusicRoom(言葉の通り音楽を再生するところ)をつくっています。
新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]の"選択画面を作ってみよう"を利用して自分なりに書いてみました。そこで質問があります。

ソースに書いたコメントの表示は前回のトピックで解決しました。しかし、自分はテキストファイルからコメントを読み取り、表示するようにしたいです。しかし、どのようにプログラムを書いていいのがわからずに困っています。コメントは上のように一曲は6行のコメントがあり、曲数は6となっています

>※ コードも最新をお願いします。

間違えて解決時のコードを載せてしまいました。大変申し訳ありません。
初心者です

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: MusicRoomの作り方 その2

#4

投稿記事 by softya(ソフト屋) » 13年前

> すいません。直リンはまずいかな、と思いまして…
直リンがなぜ嫌がられるかを考えた上で避けるのなら良いですが、良く分からず避けるのは単なる思考停止ですよ。
同じ掲示板同士の直リンを避ける理由ってなんでしょう?

>しかし、どのようにプログラムを書いていいのがわからずに困っています。
その質問だと半分丸投げ状態ですので、分からないなりに読み込み処理を書くべきだと思います。

とりあえずヒントとしては、構造体はそのままで初期値のコメントの文字列は削除して、ファイルからコメントの文字列を読み込んで構造体にコピー(strcpy)するように変更すれば完成します。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Rittai_3D
記事: 525
登録日時: 13年前

Re: MusicRoomの作り方 その2

#5

投稿記事 by Rittai_3D » 13年前

>>softya様

返信ありがとうございます。

>直リンがなぜ嫌がられるかを考えた上で避けるのなら良いですが、良く分からず避けるのは単なる思考停止ですよ。
>同じ掲示板同士の直リンを避ける理由ってなんでしょう?

プライベートでも直リンはしていないので、ついその癖でhを消してしまいました。
すいません

>>しかし、どのようにプログラムを書いていいのがわからずに困っています。
>その質問だと半分丸投げ状態ですので、分からないなりに読み込み処理を書くべきだと思います。

すいません、急いでいたのでコードを張っていませんでした。

コード:

#include "DxLib.h"
#include <stdio.h>
#include <stdlib.h>

#define MUSIC_NUM 6

static int Key[256]; // キーが押されているフレーム数を格納する

// キーの入力状態を更新する
int gpUpdateKey(){
	char tmpKey[256]; // 現在のキーの入力状態を格納する
	GetHitKeyStateAll( tmpKey );//全てのキーの入力状態を得る
	for( int i=0; i<256; i++ ){
		if( tmpKey[i] != 0 )//i番のキーコードに対応するキーが押されていたら
			Key[i]++;		//加算
		else				//押されていなければ
			Key[i] = 0;		//0にする
	}
	return 0;
}

typedef struct{
	int x,y;	//座標
	int color;	//文字の色
	char music_name_s[128];	//ぶんかちょうは6曲しかない(Select Mode)
	char music_name_p[128];	//曲名を表示する(Play)
	char music_path[256];	//曲のパス
	char cmt_buf[6][256];	//コメント
}music_t;

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
	ChangeWindowMode(TRUE),SetAlwaysRunFlag(TRUE),DxLib_Init(),SetDrawScreen(DX_SCREEN_BACK);

	music_t music[MUSIC_NUM];

	char Comment_buf[MUSIC_NUM][256];

	int Font01 = CreateFontToHandle("MSPゴシック",16,16,DX_FONTTYPE_ANTIALIASING_EDGE_8X8,-1,1,0,-1);//フォンント
	int Font02 = CreateFontToHandle("MSPゴシック",14,10,DX_FONTTYPE_ANTIALIASING_EDGE_8X8,-1,1,0,-1);//フォンント

	int img_back01 = LoadGraph("dat/title03a.png");		//背景その1
	int img_back02 = LoadGraph("dat/title03b.png");		//背景その2

	int se_select = LoadSoundMem("dat/se_select00.wav");

	int WHITE = GetColor(130,105,105);		//色
	int YELLOW= GetColor(240,210,210);		//GetColorの引数が白、黄色じゃないのは無視してください

	int fp = FileRead_open("music.txt");

	if(fp == NULL){
		MessageBox(NULL,TEXT("ファイルがないよー"),TEXT("エラー"), MB_OK | MB_ICONERROR );
		return -1;
	}

	for(int i=0 ; i<4; i++ )// 最初の4行はコメントなので飛ばす
		while(FileRead_getc(fp)!= '\n');
/*
ここでファイルから読みとった文字をComment_bufに代入する作業を入れたい...

でも、やり方が分からない...

コメントは前にも書いたとおり、一曲6行*6曲となっています。
*/
             for(int i=0 ; i<MUSIC_NUM ; i++ ){
                    Comment_buf[i];
             }
	FileRead_close(fp);

	music[MUSIC_NUM] = {//座標、座標、文字の色、曲名、曲名2、音楽ファイルのパス、コメント
		{ 60, 130, YELLOW, "No.1 天狗の手帖 ~ Mysterious Note" , "♪天狗の手帖 ~ Mysterious Note" , "dat/文花帖/th095_01.wav" , Comment_buf[0],},
		{ 65, 150, WHITE , "No.2 風の循環 ~ Wind Tour"         , "♪風の循環 ~ Wind Tour"         , "dat/文花帖/th095_02.wav" , Comment_buf[1],},
		{ 65, 170, WHITE , "No.3 天狗が見ている ~ Black Eyes"  , "♪天狗が見ている ~ Black Eyes"  , "dat/文花帖/th095_03.wav" , Comment_buf[2],},
		{ 65, 190, WHITE , "No.4 東の国の眠らない夜"             , "♪東の国の眠らない夜"             , "dat/文花帖/th095_04.wav" , Comment_buf[3],},
		{ 65, 210, WHITE , "No.5 レトロスペクティブ京都"         , "♪レトロスペクティブ京都"         , "dat/文花帖/th095_05.wav" , Comment_buf[4],},
		{ 65, 230, WHITE , "No.6 風神少女"                       , "♪風神少女"                       , "dat/文花帖/th095_06.wav" , Comment_buf[5],},
	};

	int SelectNum      = 0;		//現在選択中
	int SelectMusicCmt = 0;		//現在表示している曲のコメント
	int SelectedMusicNo= 0;		//コメントを表示する曲の番号を保持
	int BGM[MUSIC_NUM];

	for(int i=0;i<MUSIC_NUM;i++){
		BGM[i] = LoadSoundMem(music[i].music_path);
	}

	PlaySoundMem(BGM[0],DX_PLAYTYPE_BACK);
	while(!ProcessMessage() && !ClearDrawScreen() && !gpUpdateKey() && !CheckHitKey(KEY_INPUT_ESCAPE)){

		if( Key[ KEY_INPUT_DOWN ] == 1 || (Key[KEY_INPUT_DOWN]%5==0 && Key[KEY_INPUT_DOWN]>30)){// キーが押された処理
			SelectNum = ( SelectNum + 1 ) % MUSIC_NUM;	// 現在の選択項目を一つ下にずらす(ループする)
		}

		if( Key[ KEY_INPUT_UP ] == 1 || (Key[KEY_INPUT_UP]%5==0 && Key[KEY_INPUT_UP]>30)){
			SelectNum = (SelectNum + (MUSIC_NUM-1) ) % MUSIC_NUM;	//上にずらす
		}

		if(Key[ KEY_INPUT_UP ] == 1 || Key[ KEY_INPUT_DOWN ] == 1 ||(Key[KEY_INPUT_DOWN]%5==0 && Key[KEY_INPUT_DOWN]>30) ||(Key[KEY_INPUT_UP]%5==0 && Key[KEY_INPUT_UP]>30)){
			PlaySoundMem(se_select,DX_PLAYTYPE_BACK);
			for(int i=0 ; i<MUSIC_NUM ; i++ ){	// 項目数である6個ループ処理
				if( i == SelectNum ){			// 今処理しているのが、選択番号と同じ要素なら
					music[i].color = YELLOW;	// 色を帰る
					music[i].x     = 60;		// 座標を買える
				} else {						// 今処理しているのが、選択番号以外なら
					music[i].color = WHITE;		// 色を変える
					music[i].x     = 65;		// 座標を替え
				}
			}
		}

		if(Key[KEY_INPUT_Z] == 1 || Key[KEY_INPUT_RETURN] == 1){
			SelectedMusicNo = SelectNum;
			for(int i=0 ; i<MUSIC_NUM ; i++ ){
				if(CheckSoundMem(BGM[i])==1){
					StopSoundMem(BGM[i]);
				} else {
					PlaySoundMem(BGM[SelectNum],DX_PLAYTYPE_BACK);
				}
			}
		}

		// 描画フェーズ
		DrawGraph(  0,0,img_back01,TRUE);	// 画像を描写
		DrawGraph(512,0,img_back02,TRUE);	// 同上

		for(int i=0 ; i<MUSIC_NUM; i++ ){ // 項目を描画
			DrawStringToHandle(music[i].x,music[i].y,music[i].music_name_s,music[i].color,Font01);
		}

		for(int i=0 ; i<MUSIC_NUM ; i++ ){// 曲名を表示
			DrawFormatStringToHandle(60,320,YELLOW,Font02,music[SelectedMusicNo].music_name_p);
		}

		for(int j=0 ; j<MUSIC_NUM ; j++ ){// コメントの行数
			DrawFormatStringToHandle(80,350+18*j,YELLOW,Font02,"%s",music[SelectedMusicNo].cmt_buf[j]);
		}

		ScreenFlip();
	}
	DxLib_End();
	return 0;
}

コード:

#
# 曲のコメント
#
#0123456789012345678901234567890

No.1 天狗の手帖 ~ Mysterious Note
♪天狗の手帖 ~ Mysterious Note
 
 タイトル、メニュー画面のテーマです。
 いつもの曲です。
 今回は少し暗くレトロな感じが出るようにして、妖怪らしさが出る
 ようにしました。
 ザーというノイズは妖怪のミステリアスな部分です。決してモニタ
 とスピーカーが逝かれたわけでは無いのでご安心を。

No.2 風の循環 ~ Wind Tour
♪風の循環 ~ Wind Tour
 
 撮影曲1です。
 今回のゲームは、通常のボス戦のような曲ではなく、もっと日常感
 を出したかった為、こんな感じに。
 随分と落ち着いた感じですが、実際文は余裕です。自分から被写体
 をおちょくりに出かけている様なもんですし。
 

No.3 天狗が見ている ~ Black Eyes
♪天狗が見ている ~ Black Eyes
 
 撮影曲2です。
 怖いような可愛らしいような奇妙なノリを持たせました。
 人を攫ったり喰ったりが当たり前の妖怪なのに、どこか陽気で人当
 たりも良さそうな所が、幻想の天狗のイメージ。
 この曲には、その怖さと陽気さ、暢気さを混ぜた感じになっている
 かと思います。

No.4 東の国の眠らない夜
♪東の国の眠らない夜
 
 撮影曲3です。中盤以降に使う曲として用意しました。
 
 ボスも文も楽しんでいる感じを出しつつ、ボスに威圧感を持たせる
 のは難しい物です。
 この曲はそれを意識して、軽快で明るいながらもボスが強そうに
 見える様に格好つけて書きました。特にピアノ。

No.5 レトロスペクティブ京都
♪レトロスペクティブ京都
 
 撮影曲4のテーマです。後半に使う曲として用意しました。
 
 レトロな日本をイメージしたところ、私の中ではこんな感じに。
 雪の降る京の都。人気の少ない夜の道。
 でも、この曲のレトロさは私のレトロさでして……。
 この曲を聴いていると何となく昔を思い出してしまう。

No.6 風神少女
♪風神少女
 
 撮影曲5のテーマです。
 
 この曲は文花帖のテーマ曲なので入れないわけにはいかないと思い
 入っております。
 本編では殆ど使われておりませんが:-)
 


>とりあえずヒントとしては、構造体はそのままで初期値のコメントの文字列は削除して、ファイルからコメントの文字列を読み込んで構造体>にコピー(strcpy)するように変更すれば完成します。

ヒントありがとうございます。strcpyは使った事が無いので調べながらプログラムを書いていきます。

環境:
OS Windows XP
コンパイラ VC++2008 EE
初心者です

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: MusicRoomの作り方 その2

#6

投稿記事 by softya(ソフト屋) » 13年前

またまた、インデントが狂っています。 → 既に何度か書いたはず。

処理としてはとりあえず読み込みバッファは1行分あれば十分です。
読み込み → 判定 → 必要に応じて転送。
もっと考えてみてください。なんか出来ないという思いで思考停止している様に見えます。
そして、プログラムに書けなかったとしても日本語での詳細説明は試みてください。

それと曲のコメントのフォーマットが最初のものと変わっていますよ。
No: 1 と No: 5 では 形式がまったく違うのでフォーマットをちゃんと決めてください。

【追記】
こういう練習問題で演習していないと思いますが、良かったらやってみください。
「納得C言語 [第18回]演習問題Ⅴ - ほぷしぃ」
http://www.isl.ne.jp/pcsp/beginC/C_Language_18.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Rittai_3D
記事: 525
登録日時: 13年前

Re: MusicRoomの作り方 その2

#7

投稿記事 by Rittai_3D » 13年前

>>softya様

返信ありがとうございます。

>またまた、インデントが狂っています。 → 既に何度か書いたはず。

なぜかコードが横一列に表示されているのでどこがずれているのか判りません。
画像を添付しておきます。

>処理としてはとりあえず読み込みバッファは1行分あれば十分です。
読み込み → 判定 → 必要に応じて転送。

一行有れば十分なんですか!?もっとかかるかと思ってました。

>もっと考えてみてください。なんか出来ないという思いで思考停止している様に見えます。
>そして、プログラムに書けなかったとしても日本語での詳細説明は試みてください。

判りました。前回のコメントがうまく表示出来たのと、音楽の再生の上手くいったので舞い上がってました。

もう少し考えてみます。
添付ファイル
screen_2.png
screen_2.png (14.64 KiB) 閲覧数: 5380 回
初心者です

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: MusicRoomの作り方 その2

#8

投稿記事 by softya(ソフト屋) » 13年前

> 一行有れば十分なんですか!?もっとかかるかと思ってました。

読み込み一時バッファですよ。 当たり前ですがコメントは曲数分・行数分必要です。

>なぜかコードが横一列に表示されているのでどこがずれているのか判りません。
>画像を添付しておきます。

そもそもVC++では、ずれていないのでしょうか?
あと、この表示が変なのは、どのブラウザですか?
※ 過去にWindowsUpdateしていないIE10で表示が変って聞いたことが有るような無い様な。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

usao

Re: MusicRoomの作り方 その2

#9

投稿記事 by usao » 13年前

少なくともこの質問内容で,長々としたコードを貼り付けてくる意味が不明というか…
(しかも 70行目~ あたりとても危険そう…)

> 一行有れば十分なんですか!?
やろうとしている処理の流れすらご自身で掴めていないのはないですか?

まずは「テキストファイルから1行読みこんで,その内容を表示する」
くらいのプログラムを自分で書いてみるとか,そういうことから初めてみたらどうでしょうか.
ご自身の現コードの処理内容をきちんと 理解/把握 されているのであれば,それだけで解決するものと思います.

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: MusicRoomの作り方 その2

#10

投稿記事 by softya(ソフト屋) » 13年前

上の方に一度追記したのですが、この練習問題をやってみてください。
softya(ソフト屋) さんが書きました: 【追記】
こういう練習問題で演習していないと思いますが、良かったらやってみください。
「納得C言語 [第18回]演習問題Ⅴ - ほぷしぃ」
http://www.isl.ne.jp/pcsp/beginC/C_Language_18.html
オフトピック
>少なくともこの質問内容で,長々としたコードを貼り付けてくる意味が不明というか…
>(しかも 70行目~ あたりとても危険そう…)

自分で質問に必要なコードの部分を的確により分けできたら、それだけ超初心者脱出だと思うわけです。
それが出来ないから質問しているという事なので、質問者ご本人にはもどうしようもないのでは?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: MusicRoomの作り方 その2

#11

投稿記事 by h2so5 » 13年前

東方文花帖のMusic Roomの説明文をそのまま転載する意図は何でしょう。
引用とも取れないですし、オリジナルの説明文を使ったほうがいいんじゃないでしょうか。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: MusicRoomの作り方 その2

#12

投稿記事 by ISLe » 13年前

3D_3D さんが書きました:なぜかコードが横一列に表示されているのでどこがずれているのか判りません。
IE10を使っているなら互換表示にしてください。
互換表示にすることで別の不具合もあります。
詳しくは過去ログを探してください。

Rittai_3D
記事: 525
登録日時: 13年前

Re: MusicRoomの作り方 その2

#13

投稿記事 by Rittai_3D » 13年前

皆様、返信ありがとうございます。

もう少し、基礎を勉強してからプログラムを書きたいと思います。

ありがとうございました。
初心者です

閉鎖

“C言語何でも質問掲示板” へ戻る