![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
半角スペースとOで(O = 生存)ライフゲームを作ろうと思っていますが、
printf文で表示するとうまくいきません。
どうしたらよいでしょうか。回答お願いします。
#include<stdio.h>
#include<stdlib.h>
#define SIZE 20
int main(void)
{
int i = 0;
char board[ SIZE ][ SIZE+1 ];
FILE *fp;
if( ( fp = fopen( "life.dat", "r" ) ) == NULL )
{
printf("ファイルが見つかりません。---life.dat\n");
exit(EXIT_FAILURE);
}
for(i = 0; i < SIZE; i++)//初期設定
{
fgets( *(board + i) , SIZE+1, fp );
}//初期設定終わり
for(i = 0; i < SIZE; i++)
{
printf("%s", *(board + i) );
}
return 0;
}
No.2ベストアンサー
- 回答日時:
推測するに、20×20のデータなんですよね。
fgetsは、改行を捨てないので、
改行の分と'\0'の分とで
char board[SIZE][SIZE+2];
としてやればうまくいくと思います。
この回答への補足
それで追加質問をお願いしてよろしいでしょうか。
Enterを押すごとにボードの次の時刻の状態を
表すようにしたいのですがうまくいきません。
アドバイスよろしくお願いします。
char n;
for( ;; )
{
printf("Press Enter\n")
scanf("%c", &n);
if(n == '\n')
/*次の状態の表示*/
else
break;
}
No.5
- 回答日時:
scanf()でなくて
n = getchar();
ではどうですか?
No.4
- 回答日時:
>ボードの次の時刻の状態を
次の時刻の状態は、着目しているセルの回りの状態によるので、
最低限、そのセルが他から必要とされなくなるまで前の状態を保持(更新できない)しないといけませんが、そういう風につくると難しくなるので、
単純に、更新用(次世代)のボードを用意して、そこに、現在の状態から次世代の状態を計算して書き込んでいくといいんじゃないでしょうか。
そういうことではなくて、もっと細かい話なのでしょうか?
そういうことではなくて、コンソール上に表示された、ものを座標指定で更新していく方法がわからんということでしょうか?
コンソールで表示されているものを部分的に変更するのは、
DOSのプログラムでは、(ANSIで)エスケープシーケンスでやっていましたが、今は、(windowsのコンソールでは)うまくないようです。
UNIX系では、やったことはないですが、コンソール表示用のライブラリが使えると思いました
この回答への補足
説明不足ですみません。
次の時刻の状態の決定は問題ないのですが、
それをEnterを押すことによってくりかえし表示させていくやり方がわかりません。
アドバイスお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
C言語で複数列のデータを1列の...
-
fscanfの使い方
-
C++で指定文字列のカウント方法...
-
空白を含んだ文字列がうまく格...
-
C言語でのCSVファイルの読み出...
-
char型2つを結合し、short型に...
-
printf による16進表示について
-
#defineが使用するメモリ領域に...
-
独立係数について教えて下さい。
-
信頼区間の1.96や1.65ってどこ...
-
2÷3などの余りについて
-
マイナスからプラスへ転じた時...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語について。
-
「Aに対するBの割合」と「Aに対...
-
正負を反転させて出力するプロ...
-
EXCELの分散分析表のP-値が....
-
大学数学の問題です。 加法群Z/...
-
教えてください。数学Bの二項分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Enterキーを押されたら次の処理...
-
C言語で複数列のデータを1列の...
-
printf による16進表示について
-
C言語のプログラムで、途中で止...
-
char型2つを結合し、short型に...
-
矢印キーを押下してコンソール...
-
#defineが使用するメモリ領域に...
-
【C言語】全角文字の配列を、全...
-
終了条件Ctrl+zについて,結果表...
-
空白を含んだ文字列がうまく格...
-
プログラミングの授業の課題です
-
リストの作成と出力(C言語)
-
c言語で文書を読み込み、単語の...
-
構造体メンバの初期化
-
エラーについて質問です。
-
reallocでエラー
-
C言語でのCSVファイルの読み出...
-
なぜ無限ループになるかが分か...
-
Cプログラムについて
-
C++で指定文字列のカウント方法...
おすすめ情報