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


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

C統合・質問スレッド



1 名前:デフォルトの名無しさん mailto:sage [03/11/09 15:37]
いろんなスレが乱立していますが、統合的なスレッドがないので立てました。
質問もOK

関連スレ
C#って死滅する理由がないよね! Part4
pc2.2ch.net/test/read.cgi/tech/1042464104/
C#最強伝説
pc2.2ch.net/test/read.cgi/tech/1061208152/
C#とJava、どっちをおぼえればいいの?
pc2.2ch.net/test/read.cgi/tech/1006715468/
C#Builder Professional 質問箱
pc2.2ch.net/test/read.cgi/tech/1062433418/

関連リンク
dir.yahoo.co.jp/Computers_and_Internet/Software/Programming_Tools/Programming_Languages/C_Sharp/


413 名前:デフォルトの名無しさん [2005/05/09(月) 10:14:46 ]
pdf791d.tokynt01.ap.so-net.ne.jp/

wwwおkwwwwwwうぇwwwwwwwwwっうぇ

おkwwwっうぇうはっwwwwうぇwww

wっうぇうはっwwwwwwwwwwwwwwwwww

414 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 16:35:01 ]
>>410
ビットシフトしたいときに役に立つ

415 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 18:01:05 ]
あと、2進数の桁をずらしたいときにも役に立つね。

416 名前:デフォルトの名無しさん mailto:sage [2005/05/10(火) 18:29:55 ]
>>410
任意の上位Nビットを取り出したいとかその逆をしたいときとかに。
DWORD dw = 0x12345678;
WORD wHigh = dw >> 16; // 0x1234
WORD wLow = dw & 0xffff // 0x5678
DWORD dw2 = dw << 16 | wLow // 0x12345678


417 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 18:16:54 ]
<質問>
ピクチャポックに表示した画像をマウスドラッグで範囲選択します。
その選択範囲をマウスのドラッグ中、リアルタイムに枠線で囲みたいのですが
どういう処理が一般的でしょうか?

DrawLineで線を書いたり消したりとかは、おかしいですよね?

418 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 18:53:11 ]
>>417
>>1-10 を見ろ。
回答が欲しければ Windows 系のスレに行くんだな。

419 名前:デフォルトの名無しさん mailto:sage [2005/05/11(水) 20:15:27 ]
XOR

420 名前:417 mailto:sage [2005/05/11(水) 23:15:27 ]
すまそん。
他で聞いてきます・・・。(・・`)

421 名前:417 mailto:sage [2005/05/12(木) 00:23:25 ]
>419
もしかして、私へのヒント?
そうだったら、ありがとうございます。

ビット反転させたらいいのかなー。
とりあえず、C#の過去ログ見てます。




422 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 10:11:02 ]
int main(void)
{
double i;

for(i=1.0; (int)i<=9; i=i+0.1) {
printf("%d", (int)i);
printf("%lf ", i);
}

return 0;
}
iが5.000000のとき(int)iがなぜ4になるのか分かりません。
小数部を切り捨てて5になると思うのですが。

423 名前:デフォルトの名無しさん mailto:sage [2005/05/12(木) 11:35:49 ]
>>422
誤差の累積。誤差について調べられたし。

424 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 16:14:34 ]
>>417
まさしくそれ向けの関数がMFCにあった気がする。

425 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 16:21:49 ]
MFCつーか、、、APIであるけど
今はもうXORの時代じゃないのかもなあ

426 名前:デフォルトの名無しさん mailto:sage [2005/05/13(金) 16:26:18 ]
いちおー書いておくか
APIなら
DrawForcusRect
MFCだと
CDC::DrawForcusRect

それよりも、CRectTracker クラス使ったほうがいいかも

427 名前:426 mailto:sage [2005/05/13(金) 16:39:17 ]
ってここC#のスレだった・・・
スレタイで半角#使ったのか・・・

428 名前:デフォルトの名無しさん mailto:sage [2005/05/14(土) 07:08:29 ]
>>427
気にするな
ごみスレだ

429 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 09:16:29 ]
LSI C-86でコンパイルしてるんですが
unknown dimensionっていうエラーは
どんな間違いをしてる可能性があるんですか?

430 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 09:45:41 ]
>>429
>どんな間違いをしてる
コンパイラの選択。

まぁ、恐らくは二重以上の配列で、要素数の指定が漏れているんだろうけど。
int func(int a[][]);
とかね。

431 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 10:21:35 ]
二次元と表現せずに二重と表現するのが
Cらしいなw



432 名前:デフォルトの名無しさん mailto:sage [2005/07/05(火) 16:40:43 ]
クラス継承で教えて
class AandB : public A , public B
{

}
というのを作ろうとしたら
Aのメンバー関数で
A::data()

Bのメンバー変数で
char * B;;data
と名前が衝突していた.

B::dataのみにアクセスするにはどうすればいいの?

433 名前:デフォルトの名無しさん mailto:sage [2005/07/05(火) 17:26:48 ]
>>432
B::dataでダメなら、using

434 名前:デフォルトの名無しさん mailto:sage [2005/07/05(火) 21:16:22 ]
うまくいった
class AandB : public A , public B
{
AandB(){
this -> B::data
}
}
でアクセスできた

もうひとつ疑問が
class AandB : public A , public B
{
class B *pB;
AandB(): pB(&B)
{
}
}
pBにポインターの値を代入したいんだけどできない

435 名前:デフォルトの名無しさん mailto:sage [2005/07/05(火) 22:17:22 ]
>>434
class AandB : public A , public B
{
  class B *pB;
  AandB(): pB(static_cast<B *>(this))
  {
  }
};
キャストは要らないが一応書いておいた。

436 名前:デフォルトの名無しさん [2005/07/10(日) 11:50:07 ]
namespace your {
  struct girlfriend {
    void lips();
  };
}

namespace my {
  struct girlfriend {
    static void lips();
  };
  class wife : your::girlfriend {
  public:
    void kiss() { girlfriend::lips(); }
  };
}

さて、wife::kiss() するとgirlfriend::lips()によって
奪われるのは基底クラスの your::girlfriend::lips() か、
はたまた同じnamespaceにある my::girlfriend::lips() なのか?

VC7, gcc3.1 では基底クラス your:girlfriend::lips() で、
BCC564では 名前空間を優先して my::girlfriend::lips() でした。

どっちがせーかいでしょう? 
雰囲気からして基底クラスを採るのがスジっぽいけど。 


437 名前:デフォルトの名無しさん [2005/07/10(日) 14:17:24 ]
みなさん、コンパイラなどする時はコマンドプロントからやっていますか?
それとも編集もまとめて出来るフリーツールなど使ってらっしゃいますか?

まだプログラミング始めたばかりなんですが、コマンドプロントの方法もやはり覚えといた方がいいんですかね?

438 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 14:31:47 ]
プログラムを学習する目的が限定されていて、コマンドプロンプトを使わなくて済むなら、
覚える必要はない。
授業でどうしてもやらなきゃいけないとか。

プログラミング全般に詳しくなりたいなら、覚えておいた方がいい。


439 名前:デフォルトの名無しさん [2005/07/10(日) 19:03:07 ]
学習目的でプログラムを組む際、教科書によってはコマンドプロンプトを前提としているものがある。
だから、教科書しだいかな。
個人的には、ツールを組み合わせることが楽なので、覚えるといいとおもう。

440 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 20:20:05 ]
簡単な、初級プログラムというのはどうしても、コマンドラインを使った処理、
入出力になるからな。憶えるべきというか、憶えないと学習効率が悪いと思うぞ。
世の中に出ている初級者用のC言語情報なんて、ほとんどがコマンドラインを
前提としているからな。

441 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:20:27 ]
やはりそうですか
分かりました、ありがとうございました。



442 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 23:02:56 ]
IDEかmakeかって話だろ。
そんなの当面どうだっていいだろ。

443 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 19:15:31 ]
質問
int a = 1;
if ( a == (int)0) {
...
}
のように、キャストした方がいいの?

444 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 21:53:36 ]
いらない

445 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 22:06:14 ]
>>443
ただの整数は元からint型。

446 名前:デフォルトの名無しさん mailto:sage [2005/07/20(水) 17:02:19 ]
この速度ならぬるぽ

447 名前:デフォルトの名無しさん [2005/08/09(火) 01:41:05 ]
Cを使った開発で質問させて頂きたいのですが

ありがちなDBを使った業務システムを開発するときに
MFCと.netフレームワークを比べると
どちらの開発効率が上でしょうか。

漠然とした質問ですが
主観等々で構いませんので、ご意見いただけますでしょうか。

448 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 01:59:47 ]
MFCも.netもCじゃなくC++だが。

449 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 02:00:46 ]
ありがちなDBを使った業務システムは開発効率より優先する
ものがあるんでねぇ?
oo4o+vbに1票

450 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 09:50:43 ]
スレ違いだったらすみません。
自分用にデバグしやすいmalloc/realloc/freeを実装してみようと
思っていますが何を参考にすればいいかわかりません。
シンプルで小さい実装のソースがあったらURLを教えて下さい。


451 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 11:50:46 ]
void *my_malloc(size_t size) {
  void *p = malloc(size);
  ...hoge
  ...fuga
  return p;
}
みたいのじゃだめなのか。
メモリアロケーションを実装するのは大変だと思うが。



452 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 13:21:22 ]
#define malloc my_malloc

453 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 14:20:45 ]
すみません、質問が悪かったですね。
端的に、mmap を実装してみたいんです。
ある組込の環境で、malloc がかなり遅い
環境があるんですが、自分で実装してみたら
それを速くできるのか、それとも自分だともっと
遅くなってしまうのか、興味があったのです。



454 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 16:08:50 ]
mmapの実装って環境依存じゃないだろうか。ソースならunix系オープンソースosのを
見ればいいだろうけど、参考にはならないような。それはそのままハードorOSの性能
くさいし。欲しいのは多分メモリプールだろうからやるとしてもmallocをラップして
プールするのがいいんじゃないかと。
おもろい文章
www-6.ibm.com/jp/developerworks/linux/041217/j_l-memory.html

455 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 19:51:06 ]
>>453
www.uclibc.org/
あたりの実装は参考になるんじゃないかな。 MMUあり、無しの両方に対応する実装がある。


456 名前:デフォルトの名無しさん mailto:sage [2005/08/15(月) 12:17:32 ]
あるファイルが存在するかどうかを確認するにはどうしたらよいのでしょうか?
出来るだけ環境に依存しない方法がよいのですが

457 名前:デフォルトの名無しさん mailto:sage [2005/08/15(月) 13:06:53 ]
>>456
環境依存しないと言うことなら、存在する≒読めるということで
fopen(targetFile, "r")が成功するかどうかで判断するのが無難。

まぁ、大抵の環境でaccess()かstat()はあると思うがな。
#某環境では、access()がfopen()で実装されているのは内緒。

458 名前:デフォルトの名無しさん mailto:sage [2005/08/18(木) 12:41:09 ]
K&Rにmalloc/freeの実装が乗ってる。


459 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 23:34:15 ]
C言語一通り学んだらDirextXとWINAPIどっちやればいい?

460 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 00:28:38 ]
>>459
C++
特にDirectXをやるのなら絶対。WinAPIをやるのでもなるべく。
そもそもDirectXはライブラリなどで隠されていない限りある程度WinAPIで下準備が要るから、
結局WinAPIの知識が要る。

461 名前:デフォルトの名無しさん [2005/08/31(水) 11:32:56 ]
a, bが変数だとして(…の中で変更される可能性あり)、

(1)
if (a == b) {
 while(a == b) {
  …
 }
 // ★
}


(2)
if (a == b) {
 do {
  …
 } while (a == b) ;
 // ★
}

は同じ意味ですか?

今(1)のコードで★部分にコードを追加したいので、
(2)に変えても問題ないか知りたいです。




462 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 11:34:53 ]
while(a == b) {
 …
}
if (a == b) {
 // ★
}
のほうがまだ読みやすくない・・・?

463 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 11:39:19 ]
>>461
同じだと思う。

>>462
それは意味が変わってる。

464 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 12:01:38 ]
>>461
積極的に(2)に変えたい理由は?
別に(1)のままでもいいと思うのだけど。

465 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 14:03:12 ]
最初に一回無駄な比較が増える

466 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 14:12:57 ]
>>462
>461 (…の中で変更される可能性あり)

467 名前: ◆cFJoQcQH2U mailto:sage [2005/08/31(水) 14:16:11 ]
「神戸 330 ふ 1234 この車はどうのこうの(箇条書き)」
sscanfで、上のような文字列を読み取るのに、
"%s %d %s %d %s"を使っているのですが、最後の備考欄に
空白文字が入っているとすべてが読み取れません。
「残りすべての文字列」というマークはありますか?
WinXp,VS.netです。

468 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 15:15:43 ]
>「残りすべての文字列」というマークはありますか?
そんなものは無い。
fgetsで行末まで読んで、読んだ文字列を変換するのが良い

469 名前: ◆cFJoQcQH2U mailto:sage [2005/08/31(水) 15:25:43 ]
そうですか・・・ありがとうございます。
fgetsで読んで、4つ目の改行文字以降を読み取ることにします。

470 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 15:28:51 ]
"%s %d %s %d %[\x01-\xff]"

471 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 21:45:00 ]
条件演算子の? : は右結合ということですが、
a() { printf("a\n"); return 0; }
b() { printf("b\n"); return 0; }
c() { printf("c\n"); return 0; }
d() { printf("d\n"); return 0; }
e() { printf("e\n"); return 0; }
f() { printf("f\n"); return 0; }
g() { printf("g\n"); return 0; }

main() {
a() ? b() ? c() : d() : e() ? f() : g();
}

とした場合、結果が
a
e
g
となりました。

? : の右結合とは、どの部分に掛かってるんでしょうか?




472 名前:デフォルトの名無しさん [2005/08/31(水) 21:46:37 ]
↑結果を見ると左結合に見える、ということです。

473 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 21:52:57 ]
>461

なぜ(2)の形にしたいのかがわからない。
必ず一回余分な判定が入るのが嫌程度なら(1)の書き方をお勧めする。
上から下への流れで読みやすい。

(2)だとループ条件がループの終わりにならないと分からないので
一部の人間からは嫌われてたりする。

自分は(1)はだね。

474 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 21:55:04 ]
参考に
void loopfunc(void)
{
clock_t s[2], e[2], t[2];
int i, j;int a, b;
 s[0] = clock();
 for(j=0;j<100000000;j++){
  a = 4568992;
  b = -5621984;
  if(a==b){
   while(a==b){
    a %= b;
    a *= b;
   }
  b %= a;
 }
 e[0] = clock(); t[0] = e[0] - s[0];
 s[1] = clock();
 for(j=0;j<100000000;j++){
  a = 4568992;b = -5621984;
  if(a==b){
   do{
    a %= b;
    a *= b;
   }while(a==b);
  b %= a;
 }
 e[1] = clock(); t[1] = e[1] - s[1];
printf("t[0] = %d\nt[1] = %d\n", t[0], t[1]);
}

475 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 22:08:54 ]
>>474
if(a==b)の括弧が閉じてないので修正しましたが、
うちの環境では

t[0] = 2593
t[1] = 2384

(2)が速いみたいですね。


476 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 22:10:32 ]
>>471

C言語の有名なバグです。
条件演算子の仕様的にも左結合で合ってます。

477 名前:デフォルトの名無しさん [2005/08/31(水) 22:16:06 ]
>>476
違うよー
1?2?3:4:5
と書けるのは右結合だから。(結果は3)

>>471
結合規則と評価順序は関係ないよ。

478 名前:デフォルトの名無しさん [2005/08/31(水) 22:18:25 ]
つまり右結合の掛かる場所は、括弧で括ると
1?(2?3:4):5
こういうことね。

479 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 22:21:11 ]
>>478
し、知らなかった・・
これでもC言語暦10年なんだが。

480 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 23:21:11 ]
main(argc, argv)
int argc;
char *argv[];
{

↑↓

main ( int argc, char *argv )
{

どうちがうの??

481 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 23:35:22 ]
上 K&R
下 ANSI

上は古い書き方で、普通は下の書き方を使う。
意味上の差はない。



482 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 23:37:48 ]
と思ったが、よく見ると下のargvがchar*になってやがる。

それ以外は同じ。
あと、戻り値の型もちゃんと明示したほうが良い

483 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 23:51:47 ]
cdeclなら別にどうでもいいよ

484 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 00:00:31 ]
int func(float a)
{
return sizeof(a);
}

int func(a)
float a;
{
return sizeof(a);
}
では違う結果を返すコンパイラもある。

485 名前:480 mailto:sage [2005/09/01(木) 00:37:29 ]
ありがとうございます。

したのargvに[]が無いのは転記漏れでした。申し訳ない。



486 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 00:38:47 ]
なんで?
ビット長が違う環境とか?

487 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 00:44:35 ]
>484の後者はfloat aと書いてもdouble aと解釈されるのか。
流石にそこまで古いCは知らないなぁ。

488 名前:デフォルトの名無しさん [2005/10/02(日) 20:41:06 ]
以下の問題を配列を必ず使ってプログラミングしてください。

[課題2] 正整数を入力し、それをローマ数字で表示するプログラムを配列を使って作りなさい。
1000がM, 100がC, 10がX, 1がIであるので、たとえば、123と入力するとCXXIII、1365はMCCCXXXXXXIIIIIと出力できればよい。
<入力例>
Input: 3247

<出力結果>
MMMCCXXXXIIIIIII

お願いします。

489 名前:デフォルトの名無しさん [2005/10/02(日) 20:56:21 ]
初めて投稿します。
STLのiostreamヘッダを汎用テキストマッピングとして利用したいのです。
stringはtypedefで、std::basic_string<TCHAR>〜としたのですがが、
iostreamはどうすればいいんでしょ?

なお、MS-Visual C++ ver 6.0で実験しています。

<ソース>
#include <tchar.h>
#include <iostream>

int _tmain(void){

// この coutとwcoutを一つにまとめたい。
std::cout << _T("Hello C++ World!\n") << std::endl;

return 0;
}

識者の皆様、ご教授お願いしたいです。

490 名前:デフォルトの名無しさん [2005/10/02(日) 21:00:07 ]
関数化してください。

briefcase.yahoo.co.jp/light_blue_8671
問題はいってます

491 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 21:43:22 ]
>>489
coutとかは型ではないからtypedefできない。
だからこうするしかないと思う。cinやcerr、clogも同じ。
#ifdef UNICODE
#define tcout std::wcout
#else
#define tcout std::cout
#endif



492 名前:デフォルトの名無しさん [2005/10/02(日) 22:22:03 ]
>>491
ご返答ありがとうございます。

なるほど、
cin, cout, cerr, clogはIOストリームオブジェクトなので、
defineで置き換えるしかないですか・・・

ご指摘を参考にしてみます。

493 名前:デフォルトの名無しさん [2005/10/02(日) 22:57:40 ]
>>488(前半)

#include "ctype.h"
#include "string.h"
#include "stdlib.h"
#include "stdio.h"

// 文字
static char code[4][2]={"I","X","C","M"};

int main(void){
int i, j, max, len, dec[4];
char inpbuf[5];// 4桁 + NULL
char outbuf[37];// 9文字 x 4桁 + NULL

// 初期化
memset(outbuf, 0, sizeof(outbuf));
memset(inpbuf, 0, sizeof(outbuf));

// 入力
printf("input:");
scanf("%5s", inpbuf);



494 名前:デフォルトの名無しさん [2005/10/02(日) 22:59:11 ]
>>488(中)
// 入力チェック
len=strlen(inpbuf);
for (i=0; i<len; i++){
if (!isdigit(inpbuf[i])){
printf("数値を入力してください\n");
return -1;
}
}
i=atoi(inpbuf);
if (i>9999 || i<0){
printf("数値は0-9999までの範囲で入力してください。\n");
return -1;
}
_itoa(i, inpbuf, 10);
len=strlen(inpbuf);

// バッファを数値に変換して
max=len-1;
for (i=max; i >= 0; i--){
dec[i]=inpbuf[i]-48;
if (dec[i]!=0)
max=len-i-1;
}



495 名前:デフォルトの名無しさん [2005/10/02(日) 23:00:56 ]
>>488(後半)
// 文字列作成
for (i=0; i <= max; i++){
for (j=0; j < dec[i]; j++)
strcat(outbuf, &code[max-i][0]);

}

// 出力
printf("%s\n", outbuf);

return 0;
}

くどいので、部分部分は修正してね

496 名前:デフォルトの名無しさん mailto:sage [2005/11/01(火) 00:27:12 ]
質問させてもらいます。
SDL_ttfでの表示の際にUnicode文字列が必要なのですが、
S-JISからUnicodeへの変換にはやっぱりICU使うしか無い
でしょうか?



497 名前:デフォルトの名無しさん mailto:age [2005/11/01(火) 00:27:50 ]
質問なのでageさせて貰います。

498 名前:デフォルトの名無しさん mailto:sage [2005/11/01(火) 00:55:13 ]
いいえ

499 名前:デフォルトの名無しさん mailto:sage [2005/11/01(火) 03:39:10 ]
ぽいんた〜がわかりまっせ〜ん

おしえてくださ〜い

500 名前:ハーピィ mailto:sage [2005/11/01(火) 05:56:56 ]
E・∇・ヨノシ <500ゲット♫

501 名前:496 mailto:sage [2005/11/01(火) 10:13:50 ]
変換するのは大げさなのでデータにUTF-8で埋め込むことにしますた。



502 名前:デフォルトの名無しさん mailto:sage [2005/11/01(火) 18:29:34 ]
>>496
ちなみにマルチバイト文字(char型)にShift-JISが使われていれば、mbstowcsという標準関数が使えなくもない。

503 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 16:32:17 ]
文字コードについてなのですが・・

a b c d eなどはASCIIコードって事はわかってるのですが
"あ"とか"い"とかは何コードなのでしょうか

strcpy(str,"あ");

printf("0x%X\n",str[0]);
printf("0x%X\n",str[1]);

とか調べてみたのですが全然判らなくて・・

504 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 16:48:32 ]
> a b c d eなどはASCIIコードって事はわかってるのですが

ここで既に終わっている

505 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 16:52:52 ]
ぇー数値ASCIIの数値を当てはめて出力しても期待される文字が出力されましたが

506 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 16:55:18 ]
>>503
Windows系ならShift-JISでUnix系ならEUC-JP。ほかは知らん。
Cとしては文字コードは一定の基準さえ満たせば何でも良いということになっているから、
特定の文字コードに頼り切ったコードは書くな。

507 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 16:57:36 ]
>>502
すみませんorz
ありがとうございました

508 名前:デフォルトの名無しさん [2006/01/08(日) 18:59:22 ]
演算についてなんですけど
C言語において被除数=0の時の計算っていうのはまずいですよね?

例えば
0/3
0%7
などです。

うちの処理系では例外処理が加えられて0を返すようになってるみたいなんですけど
どうでしょうか

509 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 19:44:30 ]
んなこたーない。
もし、本当に例外処理が行なわれているとしたら、その処理系は糞未満だ。

510 名前:デフォルトの名無しさん [2006/01/08(日) 19:58:49 ]
>>508
0以外を返すのは数学的にもアーキテクチャから見てもおかしい。

511 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 20:00:12 ]
0 で割る方じゃなくて、0 が割られる方なのな。

>C言語において被除数=0の時の計算っていうのはまずいですよね?
なんでまずいって思ったの?いずれも答え 0 で数学的にも正しい結果でしょ?
どっちかに負数が入る場合は C89 では処理系定義の部分は入るけど、それでも結果自体は
規定されるから例外処理なんてない。
(C99 では 0 方向に丸めるよう規定されてる)

「5.4 整数除算」を参照の事
ttp://seclan.dll.jp/c99d/c99d05.htm#dt19990607



512 名前:デフォルトの名無しさん mailto:sage [2006/01/08(日) 20:55:50 ]
>>509-511
すいません少しこんがらがってました
0が除数である場合の計算でしたorz


513 名前:デフォルトの名無しさん mailto:sage [2006/01/09(月) 21:38:36 ]
>512
手元に C99 の規格書しかないけど、
> 9899:1999 6.5.5/5
>The result of the / operator is the quotient from the division of the first operand by the
>second; the result of the % operator is the remainder. In both operations, if the value of
>the second operand is zero, the behavior is undefined.
ということで未定義動作だから何が起こっても規格準拠だね。






[ 続きを読む ] / [ 携帯版 ]

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

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