いまさらですが
で必要十分な気がしました。
もしcharが16ビットだとsizeof(int)が4でも64ビットですけどそれは望まれてない気がするのですが。
gcc 3.4.2で使えるか分かりませんがinttypes.hをインクルードしてint32_t型などを使うようにすると環境を選ばなくなる気がします。
検索結果 2636 件
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: int型のサイズが4でなかったらエラー
- 返信数: 12
- 閲覧数: 6822
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: C実践プログラミングの問題
- 返信数: 7
- 閲覧数: 4083
Re: C実践プログラミングの問題
剰余(%演算子)を使ってはいけないのですか?
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語 慣例としてi=0からはじまるのはなぜ?
- 返信数: 7
- 閲覧数: 6303
Re: c言語 慣例としてi=0からはじまるのはなぜ?
ポインタでデクリメントするときは最大値+1を初期値にしないと言語仕様的に動作保証外になってしまいます。bitter_fox さんが書きました:(補足:逆にデクリメントしていくアルゴリズムの場合は最大値を初期値にします。)
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 助けてください。逆ポーランド記法で迷ってます。
- 返信数: 15
- 閲覧数: 8416
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] == '-'...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 助けてください。逆ポーランド記法で迷ってます。
- 返信数: 15
- 閲覧数: 8416
Re: 助けてください。逆ポーランド記法で迷ってます。
1.「逆ポーランド記法で書かれた式を入力させ、計算結果を出力するプログラムを作れ」 2.「qが入力されるまで動作を繰り返すこと」 3.「指定のスタックのプログラムを利用し、stack.hを各自で用意。構造体の定義も移動せよ」 4.「使用できるのは四則演算と=のみ」 5.「=はスタックの一番上の要素を表示するためのもの」 先に提示されたコードと合わせて、文法的におかしな点を除けば、十分な情報です。 しかし 入力はまとめて、5 + 4 * 3 + 2 / 6 q としていました 入力は一要素ごとに改行が必要でしょう。 あと逆ポーランド記法になっていませんけど。 (追記)要素ごとの改行はあってもな...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 助けてください。逆ポーランド記法で迷ってます。
- 返信数: 15
- 閲覧数: 8416
Re: 助けてください。逆ポーランド記法で迷ってます。
そもそもどういう動作をするプログラムを作りたいのかを『日本語で具体的に』(例を挙げるなどして)説明していただくのが近道だと思うのですが。
「逆ポーランド記法で書かれた式を入力させ、計算結果を出力しろ」では情報が足りません。
「逆ポーランド記法で書かれた式を入力させ、計算結果を出力しろ」では情報が足りません。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: g++によるライブラリリンク
- 返信数: 7
- 閲覧数: 6655
Re: g++によるライブラリリンク
すみません。こちらも勘違いしていました。ぬっち さんが書きました:g++ -o [オブジェクトファイル] [スタティックライブラリファイル]
において、スタティックライブラリファイルのフルパスを指定すれば期待した結果を得ることが可能でした。
-lはライブラリパスからライブラリファイル(-lXXX→libXXX.a)を検索するオプションですね。
gcc(g++)のコマンドラインにソースファイルと同じ並びでオブジェクトファイルやライブラリファイルを指定してちゃんと実行ファイルが作成されるのを確認しました。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: g++によるライブラリリンク
- 返信数: 7
- 閲覧数: 6655
Re: g++によるライブラリリンク
そういう仕様みたいですね。ぬっち さんが書きました:そうするとライブラリファイルは全てlibで始まり、拡張子をaとしなければいけないということでしょうか?
リンカ(ld)を単独で呼び出すときもライブラリ指定オプションは同様なので、最低でもリンカを改造しないと自由に名前を付けるのは無理そうです。
【追記】
arで固めたらファイル名の最後に.aを付けるというだけで、UNIX文化には拡張子という考え方は無く.aがライブラリということにはなりません。
VC(MS-C)のlibで固めたファイルには.libが付き、拡張子libはライブラリとして扱うという文化の違いです。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: g++によるライブラリリンク
- 返信数: 7
- 閲覧数: 6655
Re: g++によるライブラリリンク
gcc(g++)ではライブラリを-lオプションで指定します。
-lfoo
とオプションを記述すると
libfoo.a
というライブラリファイルが検索対象になります。
-lfoo
とオプションを記述すると
libfoo.a
というライブラリファイルが検索対象になります。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 雑談
- 返信数: 4
- 閲覧数: 2672
Re: 雑談
いくら、いろんな手法でやってもプログラムはほとんど裏方で誰にも気づかれないので どんなに努力しても報われない、そんな気がしているのです そこらへんどうなのでしょうか? 報われるとはどういうことなのでしょうか。 フレームワーク化して使い回すことで開発効率があがりますけど、そういうことではないのでしょうか? 定型のコードを書かなくて済むようになってどんどんメインのソースファイルがシンプルになっていくのは楽しいですけど。 プログラムは手段であって、実行ファイルが完成すれば書き方なんてどうでもいい という考えが会社などでも通用してるのでしょうか? 同じ言い方でも心構えが180度違いますね。 会社では...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字の表示について
- 返信数: 4
- 閲覧数: 2293
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: GETコマンドを送るC言語を作りたいのですが…
- 返信数: 29
- 閲覧数: 9124
Re: GETコマンドを送るC言語を作りたいのですが…
むじなさんが書いてますが、最初からmm(21)な研究生さんのプログラムではGETコマンドの最後に復帰・改行のコードを送ってないですよね。
HTTPプロトコルのリクエストは復帰・改行で完了します。
リクエストの途中でサーバーが応答しないのは当然かと。
【追記】No.22をちゃんと見てませんでした。でも何だろう?
HTTPプロトコルのリクエストは復帰・改行で完了します。
リクエストの途中でサーバーが応答しないのは当然かと。
【追記】No.22をちゃんと見てませんでした。でも何だろう?
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: utf-8をsjisに変換する
- 返信数: 16
- 閲覧数: 16290
Re: utf-8をsjisに変換する
AndroidアプリをCで作ろうとしているのですね。
JavaならOutputStreamWriterクラスで文字コード(Charset)を指定するだけで済むのですが。
JavaならOutputStreamWriterクラスで文字コード(Charset)を指定するだけで済むのですが。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: リリースビルドするとプログラムがきちんと動作しなくて困っています。
- 返信数: 4
- 閲覧数: 2060
Re: リリースビルドするとプログラムがきちんと動作しなくて困っています。
クライアントの99行目は文字列長ではなくてバッファの大きさを渡すのではないですか?
デバッグモードは未初期化のローカル変数でも特定の値で埋められるので、コピーする文字列長に十分なバッファ『より大きい』値になってたまたま期待通りに動いたのだと思います。
デバッグモードは未初期化のローカル変数でも特定の値で埋められるので、コピーする文字列長に十分なバッファ『より大きい』値になってたまたま期待通りに動いたのだと思います。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 2GBを超えるファイルのサイズ取得について
- 返信数: 3
- 閲覧数: 9262
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_...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 2GBを超えるファイルのサイズ取得について
- 返信数: 3
- 閲覧数: 9262
Re: 2GBを超えるファイルのサイズ取得について
unsigned longにキャストすればいちおう期待する数値になりますけど。
VCでは_stat64(あるいは_stati64)を使うと64ビット長でファイルサイズを取得でき、4GB越えにも対応します。
VCでは_stat64(あるいは_stati64)を使うと64ビット長でファイルサイズを取得でき、4GB越えにも対応します。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語の基本を勉強しているものです
- 返信数: 6
- 閲覧数: 4004
Re: c言語の基本を勉強しているものです
Visual C++ではプロジェクトのプロパティの『構成プロパティ』→『デバッグ』→『コマンド引数』で指定できます。
そのプログラムは
enum foo bar
と指定したときはコマンド引数を一覧表示し、
count foo bar
と指定したときはコマンド引数の数を表示します。
そのプログラムがhoge.exeという実行ファイルだとしたら
コマンドプロンプトで
hoge enum foo bar
というふうに使います。
そのプログラムは
enum foo bar
と指定したときはコマンド引数を一覧表示し、
count foo bar
と指定したときはコマンド引数の数を表示します。
そのプログラムがhoge.exeという実行ファイルだとしたら
コマンドプロンプトで
hoge enum foo bar
というふうに使います。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 日本語のリアルタイム入力
- 返信数: 7
- 閲覧数: 3773
Re: 日本語のリアルタイム入力
マルチバイト文字もgetch()して文字型配列に追加していくだけで問題ないですよね。
そのままputcharすれば表示もできますし。
IMEで確定するまでがリアルタイムにならないという問題なのであれば、リアルタイムに取得したキー入力に対応してプログラム内部でよみがな文字列を作ってImmGetConversionList APIに渡して漢字変換したものを表示するというふうにすれば良いと思います。
そのままputcharすれば表示もできますし。
IMEで確定するまでがリアルタイムにならないという問題なのであれば、リアルタイムに取得したキー入力に対応してプログラム内部でよみがな文字列を作ってImmGetConversionList APIに渡して漢字変換したものを表示するというふうにすれば良いと思います。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 日本語のリアルタイム入力
- 返信数: 7
- 閲覧数: 3773
Re: 日本語のリアルタイム入力
「日本語のリアルタイム入力」が示す仕様が曖昧ですね。
1) キートップにある文字を全角でも入力できるだけで良い
2) 漢字変換も必要(リアルタイムで無くなる気がしますが)
さて。
1) キートップにある文字を全角でも入力できるだけで良い
2) 漢字変換も必要(リアルタイムで無くなる気がしますが)
さて。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: BITMAPINFO構造体の使い方(カラーテーブルについて)
- 返信数: 3
- 閲覧数: 3117
Re: BITMAPINFO構造体の使い方(カラーテーブルについて)
BYTE *bi = new BYTE[sizeof(BITMAPINFO) + sizeof(RGBQUAD) * (256-1)];
でも良いですが
((BITMAPINFO*)bi)->bmiColors[255]
というふうに参照するときにはちゃんと役立ちます。
でも良いですが
のほうがスマートですね。トム さんが書きました:BYTE *bi = new BYTE[sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 256];
そんなことは無くてトム さんが書きました:これだとBITMAPINFOの存在意義がなくなってしまいます。
((BITMAPINFO*)bi)->bmiColors[255]
というふうに参照するときにはちゃんと役立ちます。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: お願いします(/_;)
- 返信数: 10
- 閲覧数: 3660
Re: お願いします(/_;)
引用されたIDとパスが表示されたままですけど。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 3Dプログラミングについて
- 返信数: 4
- 閲覧数: 4309
Re: 3Dプログラミングについて
> 1.3Dプログラミングで必要となる数学的な考え方、○○の公式を使う、物理の○○の法則を使うなど 行列を使った回転・並行処理の仕組み(というかパラメータの対応)を覚えてください。 モデルの姿勢を決める行列と、3D空間の配置場所を決める行列、を使います。 3D空間のどの範囲を画面に表示するかを設定する手順は決まっていますし丸暗記できる量だと思います。 > 2.1での基礎的知識を元に、xファイルなどの3Dモデリングを表現するのにはどのファイル形式がいいのか どんなファイル形式のモデルデータを使いたいかでライブラリを選択すると良いと思います。 X形式はD3DX9(DirectX9)までしか対応して...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 動的割り当てをすると起こる不具合
- 返信数: 13
- 閲覧数: 6055
Re: 動的割り当てをすると起こる不具合
なぜいちいち添付ファイルを削除するのでしょう。
過去ログとしての価値が無くなってしまいます。
添付ファイルを削除しても容量が減るどころか編集履歴分増えると思いますけど。
過去ログとしての価値が無くなってしまいます。
添付ファイルを削除しても容量が減るどころか編集履歴分増えると思いますけど。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 動的割り当てをすると起こる不具合
- 返信数: 13
- 閲覧数: 6055
Re: 動的割り当てをすると起こる不具合
添付ファイル見てみました。
"clas in.csv"ファイルに15列しか無いのに、ReadDataExで16列読み込んでいるところは間違っているのではないでしょうか。
scanf系の関数は戻り値(実際に取り込めた項目数)をチェックすべきかと思います。
"clas in.csv"ファイルに15列しか無いのに、ReadDataExで16列読み込んでいるところは間違っているのではないでしょうか。
scanf系の関数は戻り値(実際に取り込めた項目数)をチェックすべきかと思います。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 動的割り当てをすると起こる不具合
- 返信数: 13
- 閲覧数: 6055
Re: 動的割り当てをすると起こる不具合
添付ファイルとやらは削除されてしまったのでしょうか。
何が何やら。
何が何やら。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: OpenGLでのテクスチャマッピング
- 返信数: 5
- 閲覧数: 4411
Re: OpenGLでのテクスチャマッピング
glEnable(GL_TEXTURE_2D)する前にWM_PAINTが呼ばれているとかではないのですね。
Win32APIのUpdateWindowの中からWM_PAINTがSendされますけど。
むかしSMPEGのglmovieサンプルをCygwinでコンパイルして動かしたら画面が出ないことがあって、Windowsではスレッドコンテキストが異なるとOpenGLのコンテキストも異なってしまうらしいというのはあるのですが。
Win32APIのUpdateWindowの中からWM_PAINTがSendされますけど。
むかしSMPEGのglmovieサンプルをCygwinでコンパイルして動かしたら画面が出ないことがあって、Windowsではスレッドコンテキストが異なるとOpenGLのコンテキストも異なってしまうらしいというのはあるのですが。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: OpenGLでのテクスチャマッピング
- 返信数: 5
- 閲覧数: 4411
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行を追加してください。
テクスチャのフィルタリング指定です。
#パラメータはお好みで変更してください。
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
の2行を追加してください。
テクスチャのフィルタリング指定です。
#パラメータはお好みで変更してください。
Re: 簡単なデモシーン
エフェクトを球を中心にした点対称にすると球と追いかけっこをしているようなスピート感が出るような気がします。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: ファイルパスからファイル名の取り出し
- 返信数: 10
- 閲覧数: 16006
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...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列処理がうまくいかない
- 返信数: 7
- 閲覧数: 3992
Re: 文字列処理がうまくいかない
JISでなくてSJISですね。dic さんが書きました:WIndowsXP Home Editoin のメモ帳でEUCコードのソースを見たのですが
文字化けするのでJISコードの文字しか対応していないと推測できるのです
あとメモ帳はUTF-16、UTF-8にも対応していますよ。
ユニコードに対応したのはXP以降だったかな。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: ある値を入力した場合・・・
- 返信数: 5
- 閲覧数: 2837
Re: ある値を入力した場合・・・
1が目的地
ある値が現在地
として考えてみたら分かりませんか?
#正負の向きがあるので比較は絶対値で。
ある値が現在地
として考えてみたら分かりませんか?
#正負の向きがあるので比較は絶対値で。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 2Dマップ(チップ)の回転について
- 返信数: 8
- 閲覧数: 2523
Re: 2Dマップ(チップ)の回転について
#解決マークが付いてますが。 MakeScreenというリファレンスページには載っていない命令でオフスクリーンを作成できるそうです。 1) MakeScreenが返したグラフィックハンドルをSetDrawScreenで指定して描画対象をオフスクリーンにします。 2) 直交座標でマップを描画します。 3) SetDrawScreen(DX_SCREEN_BACK)で描画対象を裏画面に戻します。 4) MakeScreenが返したグラフィックハンドルでDrawGraph系の命令を呼び出しオフスクリーンに描いたマップを裏画面に描画します。 以上の手順でコードを大きく変更することなしに綺麗に回転させる...
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: テキストファイルの内容を一部書き換える
- 返信数: 3
- 閲覧数: 28506
Re: テキストファイルの内容を一部書き換える
'0'を'1'に書き換えるだけならファイルの該当データの上書きで済ますこともできます。
fopenでファイルを"r+b"モードで開いてfseekで書き換えたいデータの位置を指定してfputcで上書きしてください。
バイナリモードで文字コードや改行を適切に扱う必要があります。
fopenでファイルを"r+b"モードで開いてfseekで書き換えたいデータの位置を指定してfputcで上書きしてください。
バイナリモードで文字コードや改行を適切に扱う必要があります。
- 13年前
- フォーラム: C言語何でも質問掲示板
- トピック: 構造体の配列を引数にもつ関数の書き方
- 返信数: 13
- 閲覧数: 5587
Re: 構造体の配列を引数にもつ関数の書き方
void tama_liset(TAMA tt[50])
#void tama_liset(TAMA tt[])でも同じ
か
void tama_liset(TAMA2 tt)
で、呼び出すほうは
TAMA t[50];
tama_liset(t);
ですかね。
関数側で実際の要素数は分からないので注意。
#void tama_liset(TAMA tt[])でも同じ
か
void tama_liset(TAMA2 tt)
で、呼び出すほうは
TAMA t[50];
tama_liset(t);
ですかね。
関数側で実際の要素数は分からないので注意。
- 13年前
- フォーラム: ビット論理演算が好きな人♪
- トピック: アナタのビット演算テクニック!情報交換トピ
- 返信数: 3
- 閲覧数: 11573
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...