トップページ⇒tech
1001コメント308KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/11/09(木) 00:31:01
C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 3
http://pc8.2ch.net/test/read.cgi/tech/1160682950/

過去スレ
Part 1 http://pc8.2ch.net/test/read.cgi/tech/1146700389/
Part 2 http://pc8.2ch.net/test/read.cgi/tech/1153818463/


関連スレ
くだすれC言語(初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1153542424/

【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 130
http://pc8.2ch.net/test/read.cgi/tech/1159613789/
0756デフォルトの名無しさん2006/11/26(日) 10:36:23
ptagmaってのはスメグマみたいなもんだ。
0757デフォルトの名無しさん2006/11/26(日) 13:23:19
リナックスのソースコードをダウンロードしたんだけど、どうやって
内容をみるのでしょうか。何か専用のツールがあるのかなあ。
こんな感じのファイルです。
MAKEDEV-3.1.0-19.src.rpm
ご存知の方教えてください。
スレちがいならすまん。
0758デフォルトの名無しさん2006/11/26(日) 13:29:48
>>757
それはインストール用パッケージだ。詳しくは犬板でどうぞ。

>>755
>754はpragmaと言いたかったのだろう。
要は、構造体のメンバ間に埋め草が必要になる可能性を排除しておけと言うことだ。
0759デフォルトの名無しさん2006/11/26(日) 13:33:21
>>753
モード,動作,ファイルがないとき,ファイルがあるとき
r,読み込み専用,エラー,開く
w,書き込み専用,作る,クリアする
a,追記専用,忘れた,開いて末尾に移動
r+,読み書き,エラー,開く
w+,読み書き,作る,クリアする
a+,追記部で読み書き,忘れた,開いて末尾に移動
0760デフォルトの名無しさん2006/11/26(日) 13:42:00
>>755
#ptagma ではなく #pragma
C言語の範疇では定義されていない部分について、コンパイラに対して
特殊な指示を出すためのもの。
VC++なら pragmaだったけど、他のコンパイラなら違ってるかも。良く知なくてすまん。

C言語の学習を始めたばかりなら、まだpragmaとかは意識しないほうがいいかも。
ある程度基礎ができてきてから出いいので、
変数をメモリに割り当てるときの境界調整だとか、
構造体のメンバの間に詰め物がされる場合があるとか、
そういう話も調べて見るといいかも。

以下のページの説明が分かりやすそう。
ttp://mag.autumn.org/Content.modf?id=20050430014843

とりあえず、今やっている構造体のメモリ内容をファイルに書き出す&読み込む
というのは、同じ環境でやっている分には使えるけど、
書き出したファイルを別の環境で読み出す上手く行かないことがあるというのを
知っていればいいと思うよ。
0761デフォルトの名無しさん2006/11/26(日) 13:42:02
曖昧なくせに講釈垂れんじゃねーよ
0762デフォルトの名無しさん2006/11/26(日) 13:50:48
そもそも構造体をそのままfread,fwriteするのがアレなんで、
中途半端にpragmaどうこうは気にしなくてもいいかもしれんけど。
0763デフォルトの名無しさん2006/11/26(日) 13:51:08
761 は
759 宛て
0764デフォルトの名無しさん2006/11/26(日) 15:58:57
int型の数値を送ってもらい、最上位ビットを反転して、
1以上の値だったらマイナスをつけて返す、
-1以下の値だったらプラスをつけて返す関数を作成したいのですが、
最上位ビットを確認し、反転する一番いい書き方ってどんなんでしょうか?
0765デフォルトの名無しさん2006/11/26(日) 16:01:15
int hoge(int x)
{
    return -x;
}
0766デフォルトの名無しさん2006/11/26(日) 16:12:31
2の補数で格納されてるから
最上位ビットを反転しても符号が逆でも絶対値が同じにはならん。
>>764が結局何をしたいのか書かないから

>1以上の値だったらマイナスをつけて返す、
>-1以下の値だったらプラスをつけて返す関数を作成したいのですが、

の部分より>>765が正解のように思える。
0767デフォルトの名無しさん2006/11/26(日) 16:25:27
1次元配列a[10],b[10]をそれぞれ0と’a’でクリアし、
ってなんだよ〜。くそorz
0768デフォルトの名無しさん2006/11/26(日) 16:35:31
>>767
クリアじゃなくフィルだな
int i;
for (i=0; i<10;i++) {
a[i]=0;
b[i]='a';
}
07697672006/11/26(日) 16:40:13
自己解決します・・ありがとうございます。
おっと>>768ありがとうございます。
0770デフォルトの名無しさん2006/11/26(日) 18:17:24
main関数内でkaikiという関数を呼び出し、
そのときmainの中にある配列atai[10]の値をkaikiに渡して,
kaiki内で計算した結果のkotae1,kotae2という二つの変数をmainに返したいのですが、
どのように書いたらいいのでしょうか?
0771デフォルトの名無しさん2006/11/26(日) 18:20:46
>>770

void kaiki(int n, int* kotae1, int* kotae2)
{
...
}

main()
{
int atai[100];
int kotae1, kotae2;
...

kaiki(atai[10], &kotae1, &kotae2);
...
}
0772デフォルトの名無しさん2006/11/26(日) 18:45:02
struct kotae {
int kotae1;
int kotae2;
};
struct kotae kaiki(int n, int const * atai)
{
struct kotae rtn;
//
rtn.kotae1 = 0;
rtn.kotae2 = 0;
//
return rtn;
}

int main()
{
int atai[100];
struct kotae kotae = kaiki(sizeof(atai) / sizeof(* atai), atai);
printf("kotae1:%d, kotae2:%d\n", kotae.kotae1, kotae.kotae2);
return 0;
}
0773デフォルトの名無しさん2006/11/26(日) 21:56:15
エクセルファイルで
Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm
0 23 0 374.2 0 0 0 0 0 0 0 0 0
1 22 ・・・
があるのですが、2行4列目の数字だけをfscanf等で取り込みたいです。
このようなエクセルファイルが365個あり、順々に2行4列目だけをP[i]へ格納していこうと思うのですが、読み込みの部分が上手くいきません。
よろしくお願いします。
0774デフォルトの名無しさん2006/11/26(日) 22:04:59
>>773
その365個のファイルは、ファイル名に規則性があるの?
それとも、全部、手入力?
0775デフォルトの名無しさん2006/11/26(日) 22:22:55
>>774
年間データで
1_1.xls〜12_31.xls(1月1日〜12月31)
です。
0776デフォルトの名無しさん2006/11/26(日) 22:37:36
>>773
読みこむ部分だけ。
一行256文字以下で、二行目が整数、整数、整数、実数の並びになっているとして。

int readVal(const char *filename, double* d)
{
FILE *fp;
char line[256];
int dmy1, dmy2, dmy3;

fp = fopen(filename, "r");
if (fp == NULL)
return 0;
if (fgets(line, sizeof line, fp) == NULL)
return 0;

if (fgets(line, sizeof line, fp) == NULL)
return 0;

if (sscanf("%d %d %d %lf", &dmy1, &dmy2, &dmy3, d) != 4)
return 0;

fclose(fp);

return 1;
}
07777762006/11/26(日) 22:39:50
もう寝なきゃならないので、他の部分は、
↓まかせた。
0778デフォルトの名無しさん2006/11/26(日) 22:40:45
>>777
来週もよろしく頼むぞよ
0779デフォルトの名無しさん2006/11/26(日) 22:46:58
2行4列目って決まってんのなら
fgets(s, sizeof(s), fp),
fgets(s, sizeof(s), fp);
P[i] = s[3]-'0';
で良いんじゃね?
0780デフォルトの名無しさん2006/11/26(日) 22:54:27
つか、perlかRuby使えよそんなの。
0781デフォルトの名無しさん2006/11/26(日) 23:04:28
>>779
テキストとしての4列目なのではなく、4セル目なんでね?
>>776
何故%*dとせずにダミーに格納する?
>>775
xlsファイルを読むのは途方もなく面倒なわけだが、csvか何かに変換できないのか?
0782デフォルトの名無しさん2006/11/26(日) 23:46:01
拡張子を直接txtかcsvに直せばどうにかなりますかね?
>>776の方法では駄目でしょうか?
もう少しで試せるので出来次第報告します。
0783デフォルトの名無しさん2006/11/26(日) 23:48:57
>>782
拡張子ではなく内容の問題
書式等の情報が含まれるからめんどくさい
0784デフォルトの名無しさん2006/11/26(日) 23:54:55
txtに直接直したら、セル間はタブで分けられてます。
行間は勿論改行です。
0785デフォルトの名無しさん2006/11/26(日) 23:58:56
>>784
データ保存する際にtxtとかにするって意味か
ファイル名の変更で拡張子変えるって意味かと思った
0786デフォルトの名無しさん2006/11/27(月) 00:28:19
>>785
スイマセン、そういう意味です。
伝わりにくい言い方で申し訳ないです。
0787デフォルトの名無しさん2006/11/27(月) 01:20:44
grepか何かでもっと単純な形に
とりあえず切り出したらどうだろ?
0788デフォルトの名無しさん2006/11/27(月) 03:03:39
某サイトより
#include <stdio.h>
#include <conio.h>

int main()
{
int a = -32769, b = 32768;/*コメント*/

printf("a = 15\nb = 20\n");
printf("a + b = %d\n", a + b);
printf("何かキーを押してください\n");
getch();
printf("End");
return 0;

これってVC++だとコンパイルできないようなんですが、BCCではコンパイルできてしまいます。何か理由ってあるんでしょうか。
0789デフォルトの名無しさん2006/11/27(月) 03:06:44
>>788
標準じゃないライブラリconioがあるかどうか。
0790デフォルトの名無しさん2006/11/27(月) 03:15:57
>>788
括弧が足りない。
0791デフォルトの名無しさん2006/11/27(月) 03:18:25
>>788
愛も足りないねぇ 標準で済むのに
0792デフォルトの名無しさん2006/11/27(月) 03:22:00
>>790
どの括弧が足りないんでしょうか?

それとコンパイルできないのが正しい形なんでしょうか?
0793デフォルトの名無しさん2006/11/27(月) 03:29:23
たぶん VC++ の方は
getch(); → _getch();
にすればコンパイルできるんじゃないかなかな。
0794デフォルトの名無しさん2006/11/27(月) 03:39:15
例えばsin2θ=xで、xがわかっている場合にθの値を求めるにはどうすればいいですか?
0795デフォルトの名無しさん2006/11/27(月) 03:40:57
>>794
ニュートン法とか二分法とか
07967942006/11/27(月) 04:02:27
>>795
具体的にはどうすればいいんですか?
まったくわからないので教えて下さい。
0797デフォルトの名無しさん2006/11/27(月) 04:04:12
>>796
ぐぐれよ

例えば平方根を求める場合
http://www.sm.rim.or.jp/~shishido/newton.html

これのx*xをsin(x)にかえて、2*xをcos(x)に変えるとか
07987942006/11/27(月) 04:50:43
>>797
ぐぐっていろいろ試してみましたができませんでしたorz
0799デフォルトの名無しさん2006/11/27(月) 05:17:08
>>798
だいたいこんな感じ
#include <stdio.h>
#include <math.h>

#define f(x) (sin(2 * (x)) - 0.5) /* x = 0.5 */
#define g(x) (2 * cos(2 * (x)))

#define MAXCOUNT 10

int main(void)
{
double x = 0.5;
int k;

for (k = 1; k <= MAXCOUNT; k++) {
x = x - f(x) / g(x);
printf("%17.12f %15.8e\n", x, fabs(f(x)));
}

return 0;
}
0800デフォルトの名無しさん2006/11/27(月) 06:43:31
>>794
theta=asin(x)/2;
0801デフォルトの名無しさん2006/11/27(月) 06:47:48
math.hをインクルードするのを忘れんようにな
0802デフォルトの名無しさん2006/11/27(月) 14:15:57
sin2θって表記は2が上付きなのをまんま書いてるかも。
そうだとasin(sqrt(x))とasin(-sqrt(x))。
0803デフォルトの名無しさん2006/11/27(月) 15:24:01
putchar,getcharを使って、20061109のように日付を入力すると
曜日を出力するプログラムを作成せよ、って課題が学校で出たんですが
全く分かりません・・・
誰か教えてください
0804デフォルトの名無しさん2006/11/27(月) 15:32:16
>>803
宿題スレへどうぞ。
08057942006/11/27(月) 17:18:45
>>799
>>800
ありがとうございました
おかげでできました
0806デフォルトの名無しさん2006/11/27(月) 17:45:31
なんで int *x じゃなくて int* x にする人がいるの?
0807デフォルトの名無しさん2006/11/27(月) 17:55:36
C++やると、参照型 (int& r;)との兼ね合いで、そっちも悪くないように思えてくる。
C++作った人もint* p;派だというし。

もちろんC++やったことがなくてもint* p;の人はいるし、その逆もそう。結局は好みの問題。
0808デフォルトの名無しさん2006/11/27(月) 17:57:51
こんばんわ。質問さしてください。
英数字とか漢字をを入力し、それを16進数で表示したいと考えています。
scanfで取り込んでprintfでみたいにしてみたんですがうまくいきません。
アドバイスいただけないでしょうか?よろしくお願いします。
また、このやり方で漢字を16進で受け取ることはできるのでしょうか?
0809デフォルトの名無しさん2006/11/27(月) 18:02:01
C++ より Objective-C の方が明らかに上。
仕様も性能も。
0810デフォルトの名無しさん2006/11/27(月) 18:15:28
>>808
漢字はchar型の変数に収まらないので、文字列(char配列)として扱え。

>>809
シェアはC++のほうが明らかに上。
でもたぶん、そもそもC++とObjective-Cが目指している方向は違うと思うんだ。比べるだけ無駄だと思う。
0811デフォルトの名無しさん2006/11/27(月) 20:41:12
>>808
入力された文字列の文字コードを表示するって意味だろうか。
0812デフォルトの名無しさん2006/11/27(月) 21:44:22
ひらがなとかを1バイト文字に変換するにはどうすればよくて?
2バイトURLを1バイトに直したくて・・・
0813デフォルトの名無しさん2006/11/27(月) 21:58:45
>>812
ひらがなは1バイトにできん
2バイト文字だ
0814デフォルトの名無しさん2006/11/27(月) 22:07:16
URLなら、英数字2バイトを1バイトにしたいわけだろ?
汎用関数みたいな都合のいいものはないみたいね。
変換するのが英数字なら、なんとか自分で(環境依存のものを)書こう。
適当だけど、
unsigned char hoge[] = "abcde:/";
int i;
for (i = 0; i < sizeof(hoge); i++)
{
printf("%x ", hoge[i]);
}
こんな感じでコードの規則性を調べて、
unsigned char hoge[] = "abcde:/";
char str[256];
int i;
for (i = 0; i < sizeof(hoge) / 2; i++)
{
switch(hoge[i * 2]) {
case 0x82:
str[i] = hoge[i * 2 + 1] - 0x81 + 'a';
break;
default:
break;
}
}
str[i] = '\0';
こんな感じで変換するしかないんじゃない?コロンとかスラッシュは
一つずつ対応して・・・ああめんどくさい。しかも移植性なし。
0815デフォルトの名無しさん2006/11/27(月) 23:55:54
812がやりたいことはURLエンコードのような気がする。
0816デフォルトの名無しさん2006/11/28(火) 06:39:06
case WM_CREATE時のコードをcase WM_KEYDOWNの時にも
使いたいのですが、関数にして何度も使うには文が長く
参照する変数が二次元配列などが多くてごちゃごちゃしてます。
どうすれば同switch内でもう一度使えるでしょうか?
教えてください。お願いします。
0817デフォルトの名無しさん2006/11/28(火) 06:52:16
関数にして何度も使うには文が長く、って、
その長い文を同じswitch文の中で二ヶ所使う方がさらにごちゃごちゃするんじゃないか?
まず、その長い処理を切り出して関数にする。
関数内で使うために渡すべき変数が多すぎて引数がごちゃごちゃするようなら、
構造体等でまとまりを作って呼び出しをすっきりさせる。
まとまった処理とのインタフェースが変数がごちゃごちゃしているせいで美しくないと感じるようなら、
データ構造の変数への切り出し方を再考することも考えてみたら?
0818デフォルトの名無しさん2006/11/28(火) 06:55:10
>>817
うっす。ありがとうございます。
0819デフォルトの名無しさん2006/11/28(火) 07:53:40
単純に、
case WM_CREATE:
case WM_KEYDOWN:
// 処理
って話ではないのかね。
08208082006/11/28(火) 12:48:13
>>811 そうです。文字コードを受けってそれを表示したいので
   scanfで取り込んだらコードが出てくるかなと思い質問さ
   していただきました。
   JISコードを表示することは簡単ではないのでしょうか?
0821デフォルトの名無しさん2006/11/28(火) 13:42:03
JISコードで入力してもらえれば簡単だろうけどな。
0822デフォルトの名無しさん2006/11/28(火) 18:00:27
整数を入力して、その数までを2のべき乗ずつ表示していくという
問題なんですが、エラーは出ずにコンパイルできても
実行したら何も起きません。
宜しければどこが間違ってるか教えて頂けないでしょうか?

#include <stdio.h>

int main (void)
{
    int i,no;

    printf("正の整数を入力して下さい:");
    scanf("%d", &no);

    i = 1;
    while (i <= no)
    {
        if (i == (2 * i))
            printf("%d ", i);
        i++;
    }
    if (no > 0)
        putchar('\n');

    return (0);
}
0823デフォルトの名無しさん2006/11/28(火) 18:04:14
if の条件が不備。 2のべき乗かどうかのチェックをしていない。

さらに i が 2 * i と等しくなるのは i=0 の時だけ。
0824デフォルトの名無しさん2006/11/28(火) 18:33:27
>>822
#include<stdio.h>

int main (void)
{
    int i,no;

    printf("正の整数を入力して下さい:");
    scanf("%d", &no);

    for(i=1;i<=no;i<<=1)
        printf("%d ", i);
    if (no > 0)
        putchar('\n');

    return (0);
}
0825電信男2006/11/28(火) 18:34:08
小文字から大文字に変換したいので↓のようなプログラムを作ったのののですが、
うまいことできません。
AppleがyPPLEになってしまいます。
どーすればいいでしょうか?
#include <stdio.h>

int main()
{
int i = 0;
char c[] = "Apple";
char b [80];

printf("String: %s\n", c);

for(i = 0;i < 5; i++){
if ('a' <= c[i] && c[i] <= 'z' )
b[i] = c[i] + 'A' - 'a';
}
printf("Upper case: %s\n", b);
return 0;
}
0826デフォルトの名無しさん2006/11/28(火) 18:36:50
>>825
c[i]が小文字以外の時の処理を加えるといいよ

または #include<ctype.h> と b[i]=toupper(c[i])
0827デフォルトの名無しさん2006/11/28(火) 18:46:19
>>823
アドバイスありがとうございます。
ですが、2のべき乗のチェックの式がわからないのです。

>>824
例題がwhileを使ってるのでできればwhileのままでやりたいのですが…
0828デフォルトの名無しさん2006/11/28(火) 18:53:01
>>827
2のべき乗なら1になるまでずーっと2で割り切れる。

forのループをwhileに直すことぐらい自分でしろ。
0829デフォルトの名無しさんNGNG?2BP(200)
>>827
「2のべき乗かどうか」をチェックする必要など無い。
「2のべき乗にしかならない」値を作ればいい。

i=0;while((2<<i)<=no){printf("%d ", (2<<i));i++;}
0830デフォルトの名無しさん2006/11/28(火) 18:59:04
>>829
2の0乗=1 も仲間にいれてやって
0831デフォルトの名無しさんNGNG?2BP(200)
間違いた。
i=0;while((1<<i)<=no){printf("%d ", (1<<i));i++;}
こうだな。
0832デフォルトの名無しさん2006/11/28(火) 19:01:46
>>825
文字列の終端に '\0' もいれないといけない。
0833デフォルトの名無しさん2006/11/28(火) 19:35:22
>>828
>>829
すみません。
アドバイスありがとうざいました。
0834デフォルトの名無しさん2006/11/28(火) 22:55:33
質問です。
C言語でフォルダの中身の一覧を表示させるには
どうすれば良いでしょうか。
0835デフォルトの名無しさん2006/11/28(火) 22:57:39
>>834
system("dir");
system("ls");
のどちらかでいいんじゃないかな?
0836デフォルトの名無しさん2006/11/28(火) 22:58:09
>>834
ls -R
0837デフォルトの名無しさん2006/11/28(火) 23:05:14
質問なのですがvisual C++ で         = :左のオペランドが,左辺値になっていません。
というエラーが出るのですがこれはどういうことなんでしょうか?
0838デフォルトの名無しさん2006/11/28(火) 23:06:07
左のオペランドが,左辺値になってないんじゃないか?
0839デフォルトの名無しさん2006/11/28(火) 23:08:00
すみません。オペランドってなんですか?
0840デフォルトの名無しさん2006/11/28(火) 23:09:38
手術室のこと
0841デフォルトの名無しさん2006/11/28(火) 23:10:26
>>839
x = y + z;
ってあれば、yとzはオペレータ'+'のオペランドで、
xとy+zがオペレータ'='のオペランド

>>840
ワロタ
0842デフォルトの名無しさん2006/11/28(火) 23:15:41
>>841
教えていただきありがとうございました。ということは=の左辺と右辺が矛盾してますよってことですか?
0843デフォルトの名無しさん2006/11/28(火) 23:23:51
>>842
矛盾しているということではなくて、=の左辺にあるものが
代入可能なものではないということ。
0844デフォルトの名無しさん2006/11/28(火) 23:24:07
代入できないってことじゃないの
エラーが出た行を貼り付けてくれれば簡単に答えられると思うが
0845デフォルトの名無しさん2006/11/28(火) 23:32:18
if(i>l && i>o){

if((l*l+o*o)>i*i)
printf("鋭角三角形");
if((l*l+o*o)=i*i)  ←ここです。
printf("直角三角形");
if((l*l+o*o)<i*i)
printf("鈍角三角形");
}               
0846デフォルトの名無しさん2006/11/28(火) 23:33:26
>>845
==
0847デフォルトの名無しさん2006/11/28(火) 23:36:23
どうもありがとうございました。おかげで完成しました。
0848デフォルトの名無しさん2006/11/28(火) 23:43:54
なんかの一行AAに見えた
0849デフォルトの名無しさん2006/11/28(火) 23:49:03
テキストエディターを作成しようと思うのですが、
fopen関数とかその辺のファイル入出力関係の関数を使って作っていけばいいんですよね?

なにかコツとか陥り易い問題点とかあったらアドバイスよろしくお願いします。
0850デフォルトの名無しさん2006/11/29(水) 00:01:02
ファイル操作の関数が何かを聞くということはたぶんかなりの初心者かと思うけど、
テキストエディタを実装するには理解すべきことがかなり多いと思うよ。
ファイル入出力だけじゃなく、GUI(描画、ユーザ入力)とか、メモリ上のデータ管理とか。

とりあえずアドバイスとしては
・いきなり高機能なものは目指さない。
・基本はしっかり学ぶ。入出力が良く分かってないなら、テキストエディタはいったん置いておいて
 ある程度自由に入出力が扱えるくらいには勉強してみる。
・ちゃんとテストする。いろいろ作りこんでから上手く動かないと分かっても、原因を調べるのは大変。
・自分でいろいろな情報を調べられるようにする。
・めげない。
0851デフォルトの名無しさん2006/11/29(水) 00:35:24
シューティングゲームで、
方向キーを押しっぱなしで弾をうちたい時などに、
何のボタンを押しているか というのを
取りたいのですがどうすればいいでしょうか。

kbhit()では最後に押されたキー1つしか取れないですよね・・
0852デフォルトの名無しさん2006/11/29(水) 00:41:47
Func(int byte_len)
{
int i = 1000;
char data[4], *pc;

pc = (char*)&i;
data[0] = pc[3];
data[1] = pc[2];
data[2] = pc[1];
data[3] = pc[0];
}

↑のdataに入る数字の並びをエンディアンを気にせずに、
ビッグエンディアン形式にしたいのですが、
エンディアンを気にしない書き方はありますか?
0853デフォルトの名無しさん2006/11/29(水) 00:48:39
>>852
1.バイトオーダーを隠してしまう関数を作る。
2.シフト演算を使う。
1,2のどちらかだな
0854デフォルトの名無しさん2006/11/29(水) 01:19:55
シフト演算で取り出す関数を作ろうと思います。
ありがとうございました。
0855デフォルトの名無しさん2006/11/29(水) 02:08:40
>>851
そもそもkbhitじゃ一つも入力取れないぜ?
■ このスレッドは過去ログ倉庫に格納されています