すいませんどうもAPI関連っぽい話だったみたいなんで
質問取り下げます
別にAPIでもなんでも無いんだがな
scanf("%*[^\n]"); これで改行まで読み飛ばし
scanf("%*c"); その後これで改行読み飛ばし
FlushConsoleInputBuffer()
使ったほうがキモチイイ
>>955 それってどうゆう使い方をしてるのかkwsk
微妙な質問来るとおまえら質問者去ってから正解出す傾向ないか?w
>>956 入力バッファを流すと詰まりそうだからそんなAPIは存在自体気持ち悪い
それが俺に聞けクオリティ
fseek(stdin, 0, SEEK_END); って駄目なの?
>>962 まあそんな感じ
流してもプログラム側には文字は流れてこないから
# 別なところに流れていってるってのが正しい解釈なんだろうけど
>>955 バッファの破棄ってさ・・・直接コンソール入力で使いたいんじゃないか?
それ以外の場合なら破棄しなくてもどうにかなる気がするんだよね
>>963 規格では未定義
gccでは何も起こらなかった(クリアされなかった)
MSDNには多分期待した動作が載ってる、調べてないけど
>>964 破棄ってぽ〜んと消滅させてくれるんじゃなくて
どっか他のところに流すの?
なんか嫌だなそれ
969 :
デフォルトの名無しさん:2006/02/10(金) 16:12:17
標準入出力はfseekで送ったり巻き戻したりできんでしょ。
そんなこんなでgetchみたいな関数が巷で流行してる。
本当気持ち悪いな
なんだあの破棄ってAPI・・・
getchって流行してるのか?
ボタン押すまで次の処理しませ〜んとかの時には便利だけど
973 :
デフォルトの名無しさん:2006/02/10(金) 16:22:45
forループの変数 i が 0からはじまるのに、ループの中の if の条件の中に i-2 とか入れたいのですが、
int a[10]={0};
int i;
for(i=0;i<10;i++){
if(a[i-2]==xx)
a[i]=xx
}
このような書き方をしていいですか?
>>973 そのままだと当然、駄目
最初のi=0の時に思いっきり範囲外アクセスしてるから
976 :
973:2006/02/10(金) 16:34:32
>>974 了解しました。
>>975 実はプログラム中に誤りを見つけて、条件を付け加えたいのです。
>>976 まず、質問の仕方を勉強した方がいい。
# 具体的に、どんな事をしたいのか?
# を聞いているのに
>>976は無いだろう。
978 :
973:2006/02/10(金) 17:34:21
すみません。
int a[10]={0};
int i;
int b;
for(i=0;i<10;i++){
if(a[i]==xx)
b=a[i];
}
このような感じのプログラムで i の値でそのあともずっと処理が続いていくんですが
if(a[i]==xx)のとき、a[i]の一個前とか二個前とかの値が重要なことに気づきました。
で、プログラムを出来る限りいじらずに、
a[i-2]とかa[i-1]とかのデータを見て処理をするようにしたいです。
じゃあ
a[i-1]とかa[i-2]入れちゃえ
ただ実行前にif(i>0)とかi<1で範囲外にアクセスしないようにすりゃいい
int *a, data[12]={0};
int i, b;
a = data + 2;
for(i=0;i<10;i++){
if(a[i - 2]==xx)
b=a[i - 2];
}
/* a[-2] = data[0], a[-1] = data[1], a[0] = data[2] とする */
>>932 まだ見てるかな・・・?
> 最後の
> >}OAMEntry,*pOAMEntry;
> 部分がよくわかりません。
struct tagOAMEntry { いろいろ };
typedef tagOAMEntry OAMEntry;
typedef tagOAMEntry *pOAMEntry;
って分割して書くとわかるかな?
突っ込んでる人がいないんだけど、
>>940 は、typedef が消えてて実は同じ意味じゃない。
前者は型のエイリアス、後者は変数宣言。
2個前だか3個前だか知らんけど別のバッファに保存しとけば良いだけじゃ?
もうそんな時期か
立ててみるからまってなー
乙鰈
梅
うめぇ!m9っ`・ω・´)
990 :
デフォルトの名無しさん:2006/02/11(土) 07:31:42
不定長の1次元配列を作りたいのですがうまく出来ません。
その配列には要素を加えたり、取り除いたりしたいのですが、、任意の要素を動かすわけではなく、スタックのように一番最後のものだけを加えるか取り除くかすることを想定しています。
最初から固定的な配列をメモリに確保するともともとのサイズ以上の要素を入れたい場合たとえメモリが余っていてもダメです。ちょっとしか要素を使わなかった場合にはメモリがもったいないです。
かと言ってリンクドリスト構造にすると例えば100番目の要素にアクセスするのに100個の要素を辿る必要がありオーバーヘッドが大きいです。
要素を加える時と取り除く時に新たな配列を作り、古い配列の内容を全コピーした後、古い配列を削除するというのも考えたのですが、やはりオーバーヘッドが大きいし、メモリがガベージだらけになってしまうと思います。
どうやればいいのでしょうか?
間を取って、配列をリスト状に繋ぐといいよ。
スタックとして使うことを想定するんなら、何番目の〜は考えなくてもいいのでは?
使用目的によってはそうでもない。
| ヽ
|.´。. γ
|'; 'ё;゚ソ
| ノ
| ヘ、
| /`\_つ
|∩ 人
|ω、 \
| ヽ
|。. γ
| 'ё;゚ソ
| ノ
| ヘ、
|/`\_つ
|人
| \
| ヽ
|。. γ
| 'ё;゚ソ
| ノ
|
|/`
|人
| \
| ヽ
|。. γ
| 'ё;゚ソ
| ノ
| ヘ、
|/`\_つ ∩
|人 ω
| \
|ヽ
| γ
|ё;゚ソ
|ノ
|ヘ、
|\_つ ∩
| ω
|
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。