[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 14:16 / Filesize : 113 KB / Number-of Response : 491
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 34



1 名前:静的領域の名無しさん mailto:sage [2008/08/12(火) 18:23:10 ]
C言語の入門者向け解説スレです。

教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
  C/C++の宿題を片付けます 114代目
  pc11.2ch.net/test/read.cgi/tech/1216746971/

・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
・開発環境や動作環境も晒すと答えが早いかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
  C言語なら俺に聞け(入門篇) Part 33
  pc11.2ch.net/test/read.cgi/tech/1217073697/
過去スレ
  makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000

82 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 20:12:24 ]
いいかげんスレ違い
pc11.2ch.net/test/read.cgi/tech/1217525513/1


83 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 22:18:19 ]
VC++で拡張子が.cのものをコンパイルすると

1>cl : コマンド ライン error D8045 : C ファイル '.\Test.c' を /clr オプションと共にコンパイルできません

とエラーになることがあるんですけど対処法を教えてください。

84 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 22:19:56 ]
素人すぎるだろ
プロジェクトとmain関数の意味ググってこいやボケ

85 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 22:43:21 ]
>>83
Win32プロジェクトを作れ

86 名前:デフォルトの名無しさん mailto:yosi0517@gmail.com [2008/08/13(水) 23:15:52 ]
Cを覚えるまえにベーシックをやっていたんですがベーシックの頃の癖が抜けません。やはりCから入ったほうがよかったのでしょうか? 

87 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:17:50 ]
ベーシックの頃の癖ってなんだ?

88 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:19:47 ]
後藤とか?

89 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:20:18 ]
グローバル変数じゃないか

90 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:23:33 ]
たとえばPRINT""って書いてみたり



91 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:25:43 ]
整数の変数をI%にしちゃうとか

92 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:28:22 ]
for i=0 to 9 とか

93 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:30:03 ]
どうせポインタがわからないとかそういうんじゃねーの?

READ/DATAは当然ないし

94 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:30:42 ]
>>84
1プロジェクト複数exeを期待したんだと思うよ
コマンドラインから入ったら結構そう期待してしまいそう

95 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:31:27 ]
行の最初に 10 20 30 とか

96 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:32:28 ]
言語の違いなんて気にスンナ

ベーシックとFORTRANとC++とJavaとアセンブラの仕事を同時並行した俺がいる
こつ、覚えすぎないことw

97 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 23:33:11 ]
GOSUBとかON ERROR GOTO とかかな

98 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 00:33:54 ]
行番号じゃないのか

99 名前:sage [2008/08/14(木) 02:38:20 ]
カンマ区切りのデータを配列に移すとき、

例)abc,def,ghi,jkl....
皆ならどういう風にするのでしょうか?
条件)
・strtokはなし。
・分かりやすさ重視。


100 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 02:41:59 ]
そんなもん頭から解釈していく意外にやることなかろう



101 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 02:45:18 ]
先頭から一文字ずつチェックしてカンマを検出したらその直前までの文字列を格納できる領域を割り付けてコピー以下繰り返し

以外にまっとうで安全な方法があるなら聞きたいわ

102 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 02:48:23 ]
>>101
元データを丸ごと領域確保&コピーしてカンマを\0に置換していったほうがいいんじゃないか?

103 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 02:53:32 ]
strtok使いたくない理由は引用符を特別扱いするからか?
それとも多バイト文字を扱うからか?
いずれにせよ状態を保持しながら先頭から手動で一文字ずつチェックする以外ないな

104 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 03:08:59 ]
awkだと考えるまでも無いんだけどね...

1)複数の、文字列のポインタを格納できる領域を確保(固定サイズである程度大きいものor区切りの数を数える)
2)元の文字列のコピーを作成,区切りを'\0'に置き換えつつ、1)の領域へ区切りの先頭アドレスを格納していく
って感じかな


105 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 03:13:54 ]
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int i, arrylength;
char basestr[] = "abc,efg,hij,klm, , asjelrhaesh";
char **arry;
char *temp;
i = 1;
temp = basestr;
while (temp = strchr(temp, ',')) {
temp++;
i++;
}
arry = (char**)malloc(sizeof(char*) * i);
arrylength = i;

i = 1;
temp = basestr;
arry[0] = temp;
while (temp = strchr(temp, ',')) {
*temp = '\0';
temp++;
arry[i] = temp;
i++;
}
for (i = 0; i < arrylength; i++)
puts(arry[i]);
return 0;
}
異論は認める

106 名前:デフォルトの名無しさん [2008/08/14(木) 03:26:02 ]
for(i=0;i<len;i++){

if(data[i]==','){
j++;
continue;
}
strncat(array[j],data[i],1)

}



107 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 07:52:20 ]
カンマで区切るだけでいい(ダブルコーテーションを考慮しない)のなら、sscanf()で%[^,]するのが一番簡単だろ。
カラム数が固定じゃないなら、%[^,],%nで。

108 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 08:06:22 ]
分かりやすさ重視(速度やメモリ効率は無視)なら考えるまでもない。

char** tokbycomma(const char* src)
{
char** result = NULL;
char* tmp;
while((tmp = cutbycomma(src)) != NULL){
 result = pushback(result, tmp);
 src += strlen(tmp) + 1;
 free(tmp);
}
return result;
}

cutbycommaとpushbackをどう作ればいいかは自分で考えましょう。

109 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:20:04 ]
typedef struct{

double a[10]={0.0}

char *mozi;

}HOGE;



HOGE data[200];

これで宣言したらaは初期化されていますか?

110 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:24:56 ]
コンパイルしてみればいい。

typedef struct{

double a[10]={0.0}

char *mozi;

}HOGE;

この段階だと実態は無いのでできない?



111 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:25:47 ]
そうですね。できませんねー

112 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:28:51 ]
書くならこっちじゃね?

HOGE data[200];

でも仮にかけたとしても200個とか手で書くのか?
どうせchar*もNULLでないと困るんだしどこかで

memset(data,0x00,sizeof(data));

としておけば全部0でクリアになるよ

113 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:31:09 ]
char * cutbycomma(const char * src)
{
char * tmp = malloc(strlen(src) + 1);
int pos;
int rtn = sscanf(src, "%[^,\n]%n", tmp, & pos);
if (rtn != 1) {
/* 抽出不可 */
free(tmp);
return NULL;
}
if (src[pos] != '\0') /* 継続あり */;
return tmp;
}

114 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:31:25 ]
typedef struct{

double a;

char *mozi;

}HOGE;

構造体はこうでした・・・


for(i=0;i<200;i++){
data[i].a=0.0;
}

とするのではどっちが早いですか?

115 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:34:00 ]
memset()でdoubleが0になることは規格では保証されていない。
それでもいいなら、自前で代入するよりも速いかもしれない。

116 名前:112 mailto:sage [2008/08/14(木) 09:35:42 ]
あ、そっかdoubleか、すまん0x00でうめるのはまずいな。
intとか整数型ならいいかもしれんが実数はやめたほうがいい。
よって>>114のループで

117 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:46:18 ]
>>113
毎回使いもしない長さの領域を確保してるじゃん。10点。

118 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:56:03 ]
皆さんのレベルに到達するのに何年ぐらい必要ですか??? 


119 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 10:41:01 ]
>>118
ひとそれぞれですし、取り組んだ課題によりさまざまな指向性を示すと思いますが、そんなことより、とりあえずやってみましょうよ。

120 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 10:44:11 ]
for(i=0;i<num;i++){

if(条件){
   処理
break;
}


}

この場合のbreak;はif文から抜けるだけですか?それともfor文からも抜けますか?



121 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 10:52:39 ]
for



122 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 10:53:07 ]
break文はfor文やwhile文から抜けるための文です

123 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 11:47:56 ]
まったくの初心者で変な質問してスイマセンが、
今、DOS画面のような画面に計算結果を出力するような練習をしています。 
C言語はこういうものだという狭い認識しか無いのですが、
C言語でゲームを作るとかいう場合は、グラフィックで動くソフトか何かを使うのですか? 
自分には、「C言語はDOS画面みたいなもので動かす」という固定観念があります。 
今のところそれしか見たこと無いので。 



124 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 11:50:29 ]
>>123
いやそんなことはないけどね。

ゲーム機の非公式開発なんかもCとかC++でかかれてたりするけど
普通にグラフィック扱ってるし。
むしろフォントの関係上英字が扱えるくらいで日本語とかになると
それなりに苦労するくらい。



125 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 12:07:12 ]
今は、そのDOS画面とやり取りする関数を使ってるだけだからそういういイメージになるんだよ。
まあ標準ライブラリだけだとそうなるけど。

126 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 12:13:50 ]
>>123
あなたは幼稚園程度の英語の知識を身に着けたばかりのような状態です。
例えば不思議の国のアリスを楽しむには、イギリスの生活習慣から当時の政治情勢まで知る必要があるのです。
プログラミング言語も同じようなものです。

127 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 12:41:09 ]
足し算と補数があれば引き算掛け算割り算を実装できるというのは理解したんですが
そのおおもとの、足し算ってどうやって実装してるんでしょうか?


128 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 12:43:38 ]
>>127
CPUにそういう命令があって内部で計算してるの
C言語なんかはコンパイルのときにCPUがわかるように変換してる。


129 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 12:44:55 ]
じゃあそのCPUは・・・といわれるとトランジスタを使った足し算用回路が
組まれてて計算してる。

130 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 12:55:38 ]
>>127
半加算器、全加算器でぐぐるといいよ



131 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 13:35:26 ]
HOGE data[200]={0};

132 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 13:41:19 ]
>>131
構造体だとそれなんか警告でるんだけど全部初期化されるのは保証されてるの?

133 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 13:43:22 ]
>>132
それ以前にポインター抱えてる構造体でそんな初期化って

134 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 13:51:15 ]
>>132
警告の意味くらい、理解しなさいよ。
HOGE data[200] = {{0}};

135 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 13:53:21 ]
>>133
ゼロクリアではなく、きちんとヌルポインタで初期化されるよ。

136 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 13:58:05 ]
>>134
それでもでるんですけど

137 名前:1 mailto:sage [2008/08/14(木) 13:58:48 ]
いやむしろ悪化してコンパイルすら通らなくなるんですがw
試してから言ってくださいよw

138 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 14:09:51 ]
>>136
--
% cat foo.c
typedef struct{
double a;
char *mozi;
}HOGE;

HOGE data[200] = {0};

% gcc -c -Wall foo.c
foo.c:9: warning: missing braces around initializer
foo.c:9: warning: (near initialization for `data[0]')

% sed -e 's/{0}/{{0}}/' foo.c > fooz.c

% !g:s/foo/fooz
gcc -c -Wall fooz.c

% gcc --version
gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
--
警告でなくなるけど。

139 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 14:20:22 ]
あれだっけ

初期化の指定が少ない場合コンパイラが勝手にやるんだっけ?

140 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 14:26:12 ]
-W とかつけてんじゃね?それでも警告ですむと思うんだけど



141 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 14:36:58 ]
>>140
>138では-Wallで警告が消えているね。

>>139
コンパイラがっていうか、0で補うのが仕様ですが。

142 名前:140 mailto:sage [2008/08/14(木) 14:53:48 ]
>>141
いや>>138踏まえて言ったんだが

143 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 15:00:14 ]
>>132
されてるよ
全部のメンバに対して=0;と書いたように初期化されるから
浮動小数点数でもポインタでも正しく0.0やヌルポインタになる

144 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 15:04:55 ]
>>136-137があほなだけだろ
次の質問どーぞ


145 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 22:36:59 ]
C言語撃退講座 ~K&Rは置いて、俺の話を聞け

この本ってどう?

146 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 22:41:47 ]
推薦図書/必読書のためのスレッド 41
pc11.2ch.net/test/read.cgi/tech/1215510861/
ここで聞けばいいんじゃね

147 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 01:46:50 ]
linuxでwin用のアプリをコンパイルすることはできるの?

148 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 02:14:01 ]
理屈の上では可能だが、現実問題としてありえない

149 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 03:54:01 ]
いや、結構普通だろw

150 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 03:55:08 ]
クロスプラットフォームだっけ?
コンパイラがあればできるんじゃね?
というかlinux上で動くwinコンパイラなんてあるの?



151 名前:デフォルトの名無しさん [2008/08/15(金) 03:58:51 ]
それは可能だろ
機械語を生成するだけだからな
でも使った事はないし知らない
32bitPCで64bitや携帯の機械語が生成できるのと同じ

152 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 03:58:56 ]
Cygwinターゲットのクロスgccはなんか聞いたことがある。

153 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:02:15 ]
MinGW

154 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:02:22 ]
>>147
とりあえず答えておくとmingwとか使えばできます

155 名前:デフォルトの名無しさん [2008/08/15(金) 04:04:44 ]
こういうケースだとJavaや.NETはいいな

156 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 11:57:51 ]
typedef union _BYTE{
unsigned char byte;
unsigned bit0:1;
unsigned bit1:1;
unsigned bit2:1;
unsigned bit3:1;
unsigned bit4:1;
unsigned bit5:1;
unsigned bit6:1;
unsigned bit7:1;
} BYTE;



sizeof(BYTE)がどうしても1になってくれないんですけど、どうすりゃいいんでしょう?

157 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:05:14 ]
>>156
つーかbitをくくれよ

158 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:06:31 ]
忘れてたよ
で、これ1byteにできないの?

159 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:08:13 ]
あ、なんか自己解決したわ
unsigned char bitn:1;にすればよかったのね

160 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:08:48 ]
つーかそんなので悩むなら普通に

byte に対してビット演算しろよ

byte | 0x01
byte ^ 0x01

とかすればいいだけだろ?




161 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:50:01 ]
共用体でビットフィールド使っても無意味じゃないの?

162 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:52:20 ]
ビットフィールド操作は大抵のコンパイラで糞なコードに展開されるわー
もうちっと最適化できないもんかね

163 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:56:01 ]
糞だとおっしゃるだけの英知をお持ちならそのご自分の能力でなんとかなさっては?

164 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:57:29 ]
そもそもワードを任意のビットで区切ろうという発想が糞 は言いすぎとしても処理効率なんぞ求めんな

165 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 12:57:57 ]
英知というほどの物じゃないけど、アセンブラでビット操作を書いたら
こういう風には書かないだろうなあというコードになる。

C言語の仕様なので我慢して使ってるけど。

166 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:00:22 ]
そこまで文句を言うならなぜ自分でアセンブらないの?

で、それに対する答えがそのまま>>162への答えだよ

167 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:02:15 ]
インラインアセンブラは時々使うけど可読性が・・・

168 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:10:52 ]
宿題で世界のナベアツプログラムがでたんですが
3の倍数はいいとして
3のつく数の判定はどうすればいいんでしょう

169 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:15:27 ]
非標準だがitoa()を使って文字列に変換しstrchr()で判定する

170 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:18:34 ]
>>168
それ、私が新人研修で出した課題だw
sprintf()で文字列にしてから、strchr()で探すのが一番手っ取り早い。
真面目にやるなら、一桁ずつ10で割った余りをチェックすればいい。



171 名前:168 mailto:sage [2008/08/15(金) 13:39:07 ]
なるほど、ありがとうございます
あまりを出して調べるやり方でやってみます。
ああ、でもそれだと32とか321は無理ですよね

一桁ずつというのは、
1、3を引く
2、10で割ってあまりが0か調べる
3、違うなら1へ

って感じですかね

ちなみに学校の宿題ですw

172 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:55:02 ]
12345

12345%10 = 5
12345/10 = 1234

1234%10 = 4
1234/10 = 123

123%3 = さぇぁ〜ん!

173 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:55:37 ]
%3じゃなくて%10ね

174 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:56:41 ]
321と言う数字があったとする
321 ÷ 10 = 32 … 1
32 ÷ 10 = 3 … 2
3 ÷ 10 = 0 … 3
余りに3が出たのでこの数字は3が含まれていると言う事がわかる
と言うこと

175 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 13:57:59 ]
>>170
そのやり方だと3の時に3を足さないと結果変わるね。
170の最後の行は
1 0かどうかチェック
2 %3の結果が0かどうかチェック
3 10で割った商と余りを別々に保存
4 余りが3かどうか
5 違うなら商を使って3へ
てことだろうから32でも321でも対応できるよ。
ただsprintf使った方がラク。

176 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 14:00:57 ]
C言語質問じゃなくてアルゴリズム質問だからスレ違い

177 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 14:45:08 ]
cursesを使ってブロック崩しのプログラムを作っているんですが、
return関数やscanfなどの標準入力関数を使うと、
なぜかprintfやmvaddstr関数などを飛ばしてしまい、ハイスコアの名前入力が作れません。
名前入力はどのようにすればいいでしょう?
メイン関数は下のようになってます

int main(int argc, char **argv){
int score;
char tmp[7];
initscr(); /* 画面の初期化 */
noecho(); /* エコーなし */
cbreak(); /* 一度に1文字入力をON */
keypad(stdscr,TRUE);; /* 矢印キーが使える */

if(LINES>MinY&&WCOLS>MinX){
window(); /* 画面描画 */
}
else{
printf("Windou size is too small!!!");
// return 0;
}
score = go(); /* ゲームを実行 */
GameEnd(score);
endwin(); /* ウィンドウ終了 */
return 0;
}

GameEnd関数では、mvaddstrで「GameOver」と出した後、
scoreの値とファイルの値を比較し、ハイスコアであれば
mvaddstrで「HighScore!put your name」と書いた後に
scanfで名前を受け取ろうとしたのですが、mvaddstrが抜かされてしまう感じです。

178 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:11:06 ]
cursesを使ったこと無いから的外れのことを言うかも知れないが
scanwを使っちゃ駄目なのか?

179 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:16:08 ]
fflush(stdout)とか?

180 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:19:28 ]
その肝心の部分を張らずに質問とはいい度胸だ



181 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:21:17 ]
環境依存すぎる
まずinitscrやらnoechoやらの仕様を詳細にチェックしなおすこと
モードを変えた後で元に戻さないとならないとかないか?

182 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 15:22:31 ]
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<113KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef