検索結果 2636 件

by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: int型のサイズが4でなかったらエラー
返信数: 12
閲覧数: 6789

Re: int型のサイズが4でなかったらエラー

いまさらですが

コード:

#include <limits.h>
#if UINT_MAX != 0xffffffff
#error sizeof(int) must be 4
#endif
で必要十分な気がしました。
もしcharが16ビットだとsizeof(int)が4でも64ビットですけどそれは望まれてない気がするのですが。

gcc 3.4.2で使えるか分かりませんがinttypes.hをインクルードしてint32_t型などを使うようにすると環境を選ばなくなる気がします。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: int型のサイズが4でなかったらエラー
返信数: 12
閲覧数: 6789

Re: int型のサイズが4でなかったらエラー

__SIZEOF_INT__ はgcc4で定義されますがgcc3では定義されないのですね。

コード:

#include <limits.h>
#if UINT_MAX != (1<<(CHAR_BIT*4))-1
#error sizeof(int) must be 4
#endif
これはどうでしょう。
Cygwin版gcc 3.4.4/gcc 4.3.4とvc++2010では使えました。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: C実践プログラミングの問題
返信数: 7
閲覧数: 4064

Re: C実践プログラミングの問題

剰余(%演算子)を使ってはいけないのですか?
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: c言語 慣例としてi=0からはじまるのはなぜ?
返信数: 7
閲覧数: 6248

Re: c言語 慣例としてi=0からはじまるのはなぜ?

bitter_fox さんが書きました:(補足:逆にデクリメントしていくアルゴリズムの場合は最大値を初期値にします。)
ポインタでデクリメントするときは最大値+1を初期値にしないと言語仕様的に動作保証外になってしまいます。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 助けてください。逆ポーランド記法で迷ってます。
返信数: 15
閲覧数: 8375

Re: 助けてください。逆ポーランド記法で迷ってます。

main関数の骨組みを作ってみました。 コメントのところに最初に書かれた関数を呼び出すコードを当てはめてみて下さい。 int main(void) { char buf[256]; Stack s; char c; int n; /* スタックを初期化して空にする */ for (;;) { if (scanf("%s", buf) != 1) break; if (buf[0] == '+' && buf[1] == '\0') { /* スタックから2つの整数値を取り出す */ /* 取り出した2つの整数値を足した結果をスタックに積む */ } else if (buf[0] == '-'...
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 助けてください。逆ポーランド記法で迷ってます。
返信数: 15
閲覧数: 8375

Re: 助けてください。逆ポーランド記法で迷ってます。

1.「逆ポーランド記法で書かれた式を入力させ、計算結果を出力するプログラムを作れ」 2.「qが入力されるまで動作を繰り返すこと」 3.「指定のスタックのプログラムを利用し、stack.hを各自で用意。構造体の定義も移動せよ」 4.「使用できるのは四則演算と=のみ」 5.「=はスタックの一番上の要素を表示するためのもの」 先に提示されたコードと合わせて、文法的におかしな点を除けば、十分な情報です。 しかし 入力はまとめて、5 + 4 * 3 + 2 / 6 q としていました 入力は一要素ごとに改行が必要でしょう。 あと逆ポーランド記法になっていませんけど。 (追記)要素ごとの改行はあってもな...
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 助けてください。逆ポーランド記法で迷ってます。
返信数: 15
閲覧数: 8375

Re: 助けてください。逆ポーランド記法で迷ってます。

そもそもどういう動作をするプログラムを作りたいのかを『日本語で具体的に』(例を挙げるなどして)説明していただくのが近道だと思うのですが。
「逆ポーランド記法で書かれた式を入力させ、計算結果を出力しろ」では情報が足りません。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: g++によるライブラリリンク
返信数: 7
閲覧数: 6622

Re: g++によるライブラリリンク

ぬっち さんが書きました:g++ -o [オブジェクトファイル] [スタティックライブラリファイル]
において、スタティックライブラリファイルのフルパスを指定すれば期待した結果を得ることが可能でした。
すみません。こちらも勘違いしていました。
-lはライブラリパスからライブラリファイル(-lXXX→libXXX.a)を検索するオプションですね。
gcc(g++)のコマンドラインにソースファイルと同じ並びでオブジェクトファイルやライブラリファイルを指定してちゃんと実行ファイルが作成されるのを確認しました。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: g++によるライブラリリンク
返信数: 7
閲覧数: 6622

Re: g++によるライブラリリンク

ぬっち さんが書きました:そうするとライブラリファイルは全てlibで始まり、拡張子をaとしなければいけないということでしょうか?
そういう仕様みたいですね。
リンカ(ld)を単独で呼び出すときもライブラリ指定オプションは同様なので、最低でもリンカを改造しないと自由に名前を付けるのは無理そうです。

【追記】
arで固めたらファイル名の最後に.aを付けるというだけで、UNIX文化には拡張子という考え方は無く.aがライブラリということにはなりません。
VC(MS-C)のlibで固めたファイルには.libが付き、拡張子libはライブラリとして扱うという文化の違いです。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: g++によるライブラリリンク
返信数: 7
閲覧数: 6622

Re: g++によるライブラリリンク

gcc(g++)ではライブラリを-lオプションで指定します。
-lfoo
とオプションを記述すると
libfoo.a
というライブラリファイルが検索対象になります。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 雑談
返信数: 4
閲覧数: 2649

Re: 雑談

いくら、いろんな手法でやってもプログラムはほとんど裏方で誰にも気づかれないので どんなに努力しても報われない、そんな気がしているのです そこらへんどうなのでしょうか? 報われるとはどういうことなのでしょうか。 フレームワーク化して使い回すことで開発効率があがりますけど、そういうことではないのでしょうか? 定型のコードを書かなくて済むようになってどんどんメインのソースファイルがシンプルになっていくのは楽しいですけど。 プログラムは手段であって、実行ファイルが完成すれば書き方なんてどうでもいい という考えが会社などでも通用してるのでしょうか? 同じ言い方でも心構えが180度違いますね。 会社では...
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 文字の表示について
返信数: 4
閲覧数: 2273

Re: 文字の表示について

コード:

#include <stdio.h>
int main(void)
{
	int start = 0;
	int end;
	int tmp, c;
	scanf("%d", &end);
	tmp = end;
	c = 0;
	while (tmp > 0) {
		tmp /= 10;
		c ++;
	}
	while (start <= end) {
		printf("%0*d\n", c, start);
		start++;
	}
	return 0;
}
これでどうでしょう。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: GETコマンドを送るC言語を作りたいのですが…
返信数: 29
閲覧数: 9093

Re: GETコマンドを送るC言語を作りたいのですが…

むじなさんが書いてますが、最初からmm(21)な研究生さんのプログラムではGETコマンドの最後に復帰・改行のコードを送ってないですよね。
HTTPプロトコルのリクエストは復帰・改行で完了します。
リクエストの途中でサーバーが応答しないのは当然かと。

【追記】No.22をちゃんと見てませんでした。でも何だろう?
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: utf-8をsjisに変換する
返信数: 16
閲覧数: 16242

Re: utf-8をsjisに変換する

AndroidアプリをCで作ろうとしているのですね。
JavaならOutputStreamWriterクラスで文字コード(Charset)を指定するだけで済むのですが。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: リリースビルドするとプログラムがきちんと動作しなくて困っています。
返信数: 4
閲覧数: 2049

Re: リリースビルドするとプログラムがきちんと動作しなくて困っています。

クライアントの99行目は文字列長ではなくてバッファの大きさを渡すのではないですか?
デバッグモードは未初期化のローカル変数でも特定の値で埋められるので、コピーする文字列長に十分なバッファ『より大きい』値になってたまたま期待通りに動いたのだと思います。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 2GBを超えるファイルのサイズ取得について
返信数: 3
閲覧数: 9225

Re: 2GBを超えるファイルのサイズ取得について

せっかくなのでVCとgccの両方で使えるコードを書いてみました。 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #ifdef _MSC_VER #define stat _stati64 #endif int main(int argc, char *argv[]) { int i; struct stat st; for (i=1; i<argc; i++) { if (stat(argv[i], &st) == 0) { printf("%s -> %llu bytes\n", argv[i], st.st_...
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 2GBを超えるファイルのサイズ取得について
返信数: 3
閲覧数: 9225

Re: 2GBを超えるファイルのサイズ取得について

unsigned longにキャストすればいちおう期待する数値になりますけど。

VCでは_stat64(あるいは_stati64)を使うと64ビット長でファイルサイズを取得でき、4GB越えにも対応します。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: c言語の基本を勉強しているものです
返信数: 6
閲覧数: 3983

Re: c言語の基本を勉強しているものです

Visual C++ではプロジェクトのプロパティの『構成プロパティ』→『デバッグ』→『コマンド引数』で指定できます。
そのプログラムは
enum foo bar
と指定したときはコマンド引数を一覧表示し、
count foo bar
と指定したときはコマンド引数の数を表示します。

そのプログラムがhoge.exeという実行ファイルだとしたら
コマンドプロンプトで
hoge enum foo bar
というふうに使います。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 日本語のリアルタイム入力
返信数: 7
閲覧数: 3750

Re: 日本語のリアルタイム入力

マルチバイト文字もgetch()して文字型配列に追加していくだけで問題ないですよね。
そのままputcharすれば表示もできますし。

IMEで確定するまでがリアルタイムにならないという問題なのであれば、リアルタイムに取得したキー入力に対応してプログラム内部でよみがな文字列を作ってImmGetConversionList APIに渡して漢字変換したものを表示するというふうにすれば良いと思います。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 日本語のリアルタイム入力
返信数: 7
閲覧数: 3750

Re: 日本語のリアルタイム入力

「日本語のリアルタイム入力」が示す仕様が曖昧ですね。
1) キートップにある文字を全角でも入力できるだけで良い
2) 漢字変換も必要(リアルタイムで無くなる気がしますが)
さて。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: BITMAPINFO構造体の使い方(カラーテーブルについて)
返信数: 3
閲覧数: 3104

Re: BITMAPINFO構造体の使い方(カラーテーブルについて)

BYTE *bi = new BYTE[sizeof(BITMAPINFO) + sizeof(RGBQUAD) * (256-1)];
でも良いですが
トム さんが書きました:BYTE *bi = new BYTE[sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 256];
のほうがスマートですね。
トム さんが書きました:これだとBITMAPINFOの存在意義がなくなってしまいます。
そんなことは無くて
((BITMAPINFO*)bi)->bmiColors[255]
というふうに参照するときにはちゃんと役立ちます。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: お願いします(/_;)
返信数: 10
閲覧数: 3629

Re: お願いします(/_;)

引用されたIDとパスが表示されたままですけど。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dプログラミングについて
返信数: 4
閲覧数: 4289

Re: 3Dプログラミングについて

> 1.3Dプログラミングで必要となる数学的な考え方、○○の公式を使う、物理の○○の法則を使うなど 行列を使った回転・並行処理の仕組み(というかパラメータの対応)を覚えてください。 モデルの姿勢を決める行列と、3D空間の配置場所を決める行列、を使います。 3D空間のどの範囲を画面に表示するかを設定する手順は決まっていますし丸暗記できる量だと思います。 > 2.1での基礎的知識を元に、xファイルなどの3Dモデリングを表現するのにはどのファイル形式がいいのか どんなファイル形式のモデルデータを使いたいかでライブラリを選択すると良いと思います。 X形式はD3DX9(DirectX9)までしか対応して...
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 動的割り当てをすると起こる不具合
返信数: 13
閲覧数: 6007

Re: 動的割り当てをすると起こる不具合

なぜいちいち添付ファイルを削除するのでしょう。
過去ログとしての価値が無くなってしまいます。
添付ファイルを削除しても容量が減るどころか編集履歴分増えると思いますけど。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 動的割り当てをすると起こる不具合
返信数: 13
閲覧数: 6007

Re: 動的割り当てをすると起こる不具合

添付ファイル見てみました。
"clas in.csv"ファイルに15列しか無いのに、ReadDataExで16列読み込んでいるところは間違っているのではないでしょうか。
scanf系の関数は戻り値(実際に取り込めた項目数)をチェックすべきかと思います。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 動的割り当てをすると起こる不具合
返信数: 13
閲覧数: 6007

Re: 動的割り当てをすると起こる不具合

添付ファイルとやらは削除されてしまったのでしょうか。
何が何やら。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: OpenGLでのテクスチャマッピング
返信数: 5
閲覧数: 4353

Re: OpenGLでのテクスチャマッピング

glEnable(GL_TEXTURE_2D)する前にWM_PAINTが呼ばれているとかではないのですね。
Win32APIのUpdateWindowの中からWM_PAINTがSendされますけど。

むかしSMPEGのglmovieサンプルをCygwinでコンパイルして動かしたら画面が出ないことがあって、Windowsではスレッドコンテキストが異なるとOpenGLのコンテキストも異なってしまうらしいというのはあるのですが。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: OpenGLでのテクスチャマッピング
返信数: 5
閲覧数: 4353

Re: OpenGLでのテクスチャマッピング

リンク先のソースコードの場合だと、disp関数のglBindTextureのすぐ後に
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
の2行を追加してください。
テクスチャのフィルタリング指定です。
#パラメータはお好みで変更してください。
by ISLe
13年前
フォーラム: 作品お披露目掲示板
トピック: 簡単なデモシーン
返信数: 2
閲覧数: 3744

Re: 簡単なデモシーン

エフェクトを球を中心にした点対称にすると球と追いかけっこをしているようなスピート感が出るような気がします。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルパスからファイル名の取り出し
返信数: 10
閲覧数: 15973

Re: ファイルパスからファイル名の取り出し

Windows 2000以降の環境であれば、PathFindFileName関数を使うのもいいかもしれません。 CRT関数ですが_splitpathだとWindows95以降に対応します。 #include <stdio.h> #include <stdlib.h> int main(void) { char fname[_MAX_FNAME]; char ext[_MAX_EXT]; const char *path = "C:\\Users\\guest\\Desktop\\sample.txt"; _splitpath(path, NULL, NULL, fname, ext); pr...
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列処理がうまくいかない
返信数: 7
閲覧数: 3952

Re: 文字列処理がうまくいかない

dic さんが書きました:WIndowsXP Home Editoin のメモ帳でEUCコードのソースを見たのですが
文字化けするのでJISコードの文字しか対応していないと推測できるのです
JISでなくてSJISですね。
あとメモ帳はUTF-16、UTF-8にも対応していますよ。
ユニコードに対応したのはXP以降だったかな。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: ある値を入力した場合・・・
返信数: 5
閲覧数: 2821

Re: ある値を入力した場合・・・

1が目的地
ある値が現在地
として考えてみたら分かりませんか?
#正負の向きがあるので比較は絶対値で。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 2Dマップ(チップ)の回転について
返信数: 8
閲覧数: 2507

Re: 2Dマップ(チップ)の回転について

#解決マークが付いてますが。 MakeScreenというリファレンスページには載っていない命令でオフスクリーンを作成できるそうです。 1) MakeScreenが返したグラフィックハンドルをSetDrawScreenで指定して描画対象をオフスクリーンにします。 2) 直交座標でマップを描画します。 3) SetDrawScreen(DX_SCREEN_BACK)で描画対象を裏画面に戻します。 4) MakeScreenが返したグラフィックハンドルでDrawGraph系の命令を呼び出しオフスクリーンに描いたマップを裏画面に描画します。 以上の手順でコードを大きく変更することなしに綺麗に回転させる...
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: テキストファイルの内容を一部書き換える
返信数: 3
閲覧数: 28448

Re: テキストファイルの内容を一部書き換える

'0'を'1'に書き換えるだけならファイルの該当データの上書きで済ますこともできます。
fopenでファイルを"r+b"モードで開いてfseekで書き換えたいデータの位置を指定してfputcで上書きしてください。
バイナリモードで文字コードや改行を適切に扱う必要があります。
by ISLe
13年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体の配列を引数にもつ関数の書き方
返信数: 13
閲覧数: 5556

Re: 構造体の配列を引数にもつ関数の書き方

void tama_liset(TAMA tt[50])
#void tama_liset(TAMA tt[])でも同じ

void tama_liset(TAMA2 tt)
で、呼び出すほうは
TAMA t[50];
tama_liset(t);
ですかね。
関数側で実際の要素数は分からないので注意。
by ISLe
13年前
フォーラム: ビット論理演算が好きな人♪
トピック: アナタのビット演算テクニック!情報交換トピ
返信数: 3
閲覧数: 11521

Re: アナタのビット演算テクニック!情報交換トピ

ゲームプログラムで役立つネタ二つです。 #include<stdio.h> int main(void) { int a, b; /* 整数値の交換 */ a = 123; b = 456; a ^= b; b ^= a; a ^= b; printf("a=%d, b=%d\n", a, b); /* ビットマスクデータのオフセットを求める */ a = 0x001f; /* 0000000000011111(2) */ printf("B offset =%d\n", (a & -a)); a = 0x07e0; /* 0000011111100000(2) */ printf("R of...

詳細検索ページへ移動する