[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 01/29 10:31 / Filesize : 249 KB / Number-of Response : 964
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

はきだめC/C++下級者の質問箱 2



1 名前:デフォルトの名無しさん [2006/08/22(火) 09:21:31 ]
はきだめのスレへようこそ

ここは、C/C++に挫折し、それにもかかわらず、C/C++やらなければならない者達がたむろするスレです。
なお、質問する人は回答はあまり期待しないでください。


前スレ:はきだめC/C++下級者の質問箱
pc8.2ch.net/test/read.cgi/tech/1124256027/

914 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:34:20 ]
unicodeって文字コード統一する目的で作られたんでしょ?
なんでいくつも形式が存在するの?

915 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:36:32 ]
>>914
1文字に4バイトも食うからそりゃ敬遠するでしょ

916 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 16:40:55 ]
>>914
キャラクタセットとエンコーディングは区別しろよ

917 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:37:50 ]
UnicodeとUTF-8の違いは?
pc11.2ch.net/test/read.cgi/tech/1177930957/

918 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 02:44:25 ]
if(A&&B&&C){...}

if(A){
 if(B){
  if(C){...}
 }
}

これだったらどっちが高速なのですか?

919 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 02:47:05 ]
なんでそんなに高速性を気にする?

920 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 02:48:39 ]
完全に興味本位です。


921 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 02:59:55 ]
>>918
生成されるコードを見るしかない。
コンパイラによって違うかもしれない。

だが多分ショートサーキットを考慮すれば同じコードを吐くだろう。

922 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 03:11:44 ]
なるほど。
ありがとうございます。非常に勉強になりました。



923 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 08:19:33 ]
コンテナに入れたデータを一定の時間間隔で処理するために
コールバッククラスのインスタンスでイテレータを保持するようにしたんだけど、
これってどう思う?

for (Hoge::iterator i = hoge.begin(); i != hoge.end(); ++i)
みたいな、その場のループで使い捨てする用途しか今まで見たことがなくて、ちょっと不安。

要素が増えも減りもしないことが分かっている場合は、ポインタと同じ感覚でいいのかな?

924 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 09:20:29 ]
>>923
どういうときにイテレータが無効になるかをきちんと把握して、
(ちなみにこれはコンテナの種類によって異なる)
自分も他人もそういうコードを書かないという確信があるならそれでいいんじゃない?

普通にコンテナのポインタなり参照なりを保持させればいいと思うけど、
それじゃ無理なわけ?

925 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 19:49:44 ]
>>924
コンテナの要素をどこまで処理したか覚えておきたいんだ。
wavのストリーム再生をイメージしてもらえれば近いかな。
コンテナのポインタなり参照なりを保持するとして、どうすればいいのか分からないです。

926 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 20:47:48 ]
>>925
コンテナの中身が書き換わらないならイテレータは無効にならない

927 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 01:09:12 ]
>>926
じゃぁ今回はイテレータ保持のままでいいか。どうもありがとう。
もっと色んなソース読んでみないとなぁ。自分のしていることが一般的なのか分からなくて不安。

928 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:02:11 ]
Cのif文について質問です

if(a>0xffffffff){ 命令; }

とするとコンパイラが 条件が常に真 と警告を吐きますが
普通に動作します

また  -1(0xffffffff) を -2(0xfffffffe) に変えるとその警告は無くなります

変数 a はunsigned int型です

なぜこの警告は出るのでしょうか。

929 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:42:01 ]
>>928 条件が常に真だからだよ。

930 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:49:46 ]
>>929
でも普通にその条件式が動作するのは何でなんだぜ?

931 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:54:36 ]
>>930
常に真だから

932 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:54:52 ]
>>930
条件式の結果が真であることは誤動作じゃないだろ。



933 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:54:53 ]
>>1読まなかった俺を許してくれ

934 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:56:45 ]
常に偽という気がする。
>>928
おまえんとこのunsigned intの範囲が0から0xffffffffなんだろう。
a>0xffffffffという条件はaがどんな値でも成り立たない。
だからのその命令;は絶対に実行されない。
だったら初めからifなんて書くなよ無駄だからというのがその警告だ。

0xfffffffeにすると、aが0xffffffffの場合だけそこが実行されるという
意味のあるif文が出来上がるので、警告にならない。

あと、0xffffffffは-1ではない、4294967295だ。0xfffffffeも同様に4294967294。

935 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 01:58:41 ]
>>934
ガチですまん
俺ホント馬鹿
吊ってくる

936 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 02:03:01 ]
無駄だからというより、なんか間違っていないかって注意を促す意味合いのほうがおっきい気がしてきた。

937 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 02:22:25 ]
>>934
ばーか。コンパイラが「常に真」と言ってるんだよ。なにが「常に偽という気がする」だよ。

938 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 02:28:18 ]
>>937
いやだってa>0xffffffffが常に偽になる場合は容易に思い付いたけど、
常に真になる状態は考え付かなかったから。
常に真でも偽でも同じメッセージを使い回しているだけだろうと思うことにした。

939 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 02:33:03 ]
sizeof(unsigned int)よりもsizeof(unsigned long int)の方が大きい環境なら、常に真になるんだけどね。

940 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 03:03:50 ]
なかなか面白いジョークだな

941 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 04:21:35 ]
>>928 とりあえずコンパイラとバージョン教えて。試してみたいから。

942 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 07:40:50 ]
フォントが小さいので 常に夏 に見えて仕方ない
イヤなスレだなぁ・・・と思ったらイヤなのは俺だった



943 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 16:17:34 ]
VCなんですが、例外処理 (初回) は test2.exe にあります:
0xC0000005: Access Violation。とでます。
ループの回数を減らせば通るのですが、ループ数を減らさずに
実行するにはどうすればよいでしょうか?
iのループは60、jのループは1500程度です。

for(i=0; i < font->Tnum; i++){
// 1ブロックのフォント収録数
fontnum = font->Block[i].End - font->Block[i].Start;
fputs("const char data[] = {\r\n\t", fp);
for(j = 0; j < fontnum * 24; j++){ // 1ブロックのフォント分繰り返す */
dt = *p++;
fputs("0x", fp);
sprintf(tmp, "%02x", dt);
tmp[2] = 0;
fputs(tmp, fp);
fputs(", ", fp);
ct++;
if(ct == 8){ // 改行
fputs("\r\n\t", fp);
ct = 0;
}
}
fputs("}\r\n\t", fp);
}

944 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 16:58:13 ]
>>943
デバッグすればいいよ・・・・・・・・・・・・・・・・・・

945 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 22:30:00 ]
ソース生成しているのか。くだらんなぁ。それはさておき、こりゃ酷い。
--
fputs("0x", fp);
sprintf(tmp, "%02x", dt);
tmp[2] = 0;
fputs(tmp, fp);
fputs(", ", fp);
--
fprintf(fp, "0x%02x, ", dt)で事が足りるだろうに。処で、tmpはどう宣言されているんだ?

946 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 13:01:48 ]
c++使ってるといちいち型変換がめんどくさいんだけど
一番簡単な方法はboostの変換ライブラリ使う事?
他にいい方法があれば教えてください。

947 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 14:53:32 ]
sendmessageでwm_copydataが送れないんですけど、
何かプロジェクトの設定とかが必要だったりします?
他のメッセージは送れるんですがこれはデータのコピーとかやってるのでその辺でこけてるのかなあと。

948 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 15:25:26 ]
GetLastErrorで原因調べた?

949 名前:947 mailto:sage [2008/08/29(金) 15:25:28 ]
sendmessageなのにスレッドループで捕まえようとしてました
解決しました


950 名前:デフォルトの名無しさん [2008/08/30(土) 07:51:33 ]
オブジェクトのメソッドの呼び出し規約ってどうなるんですか?


951 名前:デフォルトの名無しさん [2008/08/31(日) 12:07:46 ]
>>950
とりあえずぐぐろう

952 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 12:18:42 ]
>>945
>>943ほどの低レベルなコードを書く奴ならどうせchar*tmp;と宣言していると予想



953 名前:デフォルトの名無しさん [2008/09/01(月) 08:01:13 ]
printfなどでの書式指定で、たとえば0.123の場合、
最初の0をつけずに、.123の様になるようにするには
どのように指定したらよいのでしょうか

954 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 08:41:46 ]
"%.3f"

955 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 10:23:10 ]
文字列を入力するときの例は、配列を使うものしか見たこと無いのですが、 
文字列を入力する場合は、常に配列を使わなければならないのでしょうか。 

たとえば、宣言は、 char st[100]; とかの例を見たりしますが、 
char st; だけじゃ不都合があるのでしょうか。文字が一文字しか入らないとか。。。 
 


956 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 11:15:33 ]
文字列 = 文字の配列
と思えばとりあえずなんとかなる

957 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 11:53:00 ]
>>955
Cには文字列形がないので、文字型の配列などに格納する必要がある。
文字型変数であるchar stには、当然ながら一文字しか入らない。

958 名前:デフォルトの名無しさん [2008/09/01(月) 21:53:28 ]
どなたかこの低脳野郎に知恵を授けてください・・・。実はいまC言語を学んでいるのですが
C言語はソフト開発が出来るのでしょうか?(窓の杜にあるようなやつ)
回答お願いします。

959 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:57:30 ]
低脳にもほどがある

960 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:11:12 ]
>>958
アインシュタインは紙と鉛筆で相対性理論を完成させたかもしれないが、俺にはできない。
たしかに偉大な先人達はCで作ったソフトを窓の杜に投稿したかもしれないが、
その軌跡を今の私たちが無理してなぞる必要は無いと思わないか。

ということで、もっと楽ちんな言語使おうぜ。
C++とか。

961 名前:デフォルトの名無しさん [2008/09/01(月) 22:48:25 ]
>>960
ありがとうございます。偉大な人とはいえ結局は人ですからがんばって見ます。


962 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:27:03 ]
がんばって何を見るというのだろう……



963 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:52:14 ]
そりゃあ、おい、青少年ががんばって見るといえばアレしかないだろ。
まぁ俺からのアドバイスとしては薄目にしても効果はないということだ。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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