- 1 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 16:45:25 ]
- C言語の入門者向け解説スレです。
・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 9 pc11.2ch.net/test/read.cgi/tech/1173284217/ 過去スレ Part 1 pc8.2ch.net/test/read.cgi/tech/1146700389/ Part 2 pc8.2ch.net/test/read.cgi/tech/1153818463/ Part 3 pc8.2ch.net/test/read.cgi/tech/1160682950/ Part 4 pc8.2ch.net/test/read.cgi/tech/1162999861/ Part 5 pc8.2ch.net/test/read.cgi/tech/1165022193/ Part 6 pc10.2ch.net/test/read.cgi/tech/1167325490/ Part 7 pc10.2ch.net/test/read.cgi/tech/1170064980/ Part 8 pc11.2ch.net/test/read.cgi/tech/1171946674/ 関連スレ C/C++の宿題を片付けます 84代目 pc11.2ch.net/test/read.cgi/tech/1172981618/ くだすれC言語(初心者用) Part.2 pc11.2ch.net/test/read.cgi/tech/1172099763/ 【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131 pc11.2ch.net/test/read.cgi/tech/1170338926/ 【初心者歓迎】C/C++室 Ver.35【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1171888583/ 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
- 652 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 11:26:54 ]
- PGに不向きな奴は1年持たない
1年持てば問題なす
- 653 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 12:42:16 ]
- もれなんて一切コメントがないという芸能人の浮気疑惑のようなプロジェクトを引き継いで
マイプライベートタア〜イムを返上して解読&コメントつけていったのに 1ヵ月後に会社が清算を迎えたo... rz
- 654 名前:デフォルトの名無しさん [2007/04/09(月) 15:35:11 ]
- >>640
ちゃんと動くんだが?
- 655 名前:デフォルトの名無しさん [2007/04/09(月) 20:53:17 ]
- フリーウェアの秀丸のサイトを教えてください
- 656 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 20:54:50 ]
- は?
- 657 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 20:55:17 ]
- ttp://www5.ocn.ne.jp/~hidemaru/
- 658 名前:デフォルトの名無しさん [2007/04/09(月) 21:15:23 ]
- #include <stdio.h>
int main(void) { /*文*/ return 0; } 入門書では上のように学んだんですが、コンパイルできれば次のような形式でも 問題ないのでしょうか? #include <stdio.h> main(){ /*文*/ }
- 659 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:22:17 ]
- >>658
コンパイルできても上の方が望ましい。
- 660 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:25:08 ]
- いや、下のでも問題ないよ。
- 661 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:30:00 ]
- 戻り値の書かれていない関数定義はintを返すと見なされる(Cではだっけ?)
ので、いいっちゃいい。(許容されるという意味で)
- 662 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:31:27 ]
- return 0のほうか。
戻り値を使う予定がないならなんでもいいよ。 型は>>661にあるようにintになるがどんな値になるかは不明。
- 663 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:46:13 ]
- >>659->>662
レスありがとうございます。他の人のプログラム見せてもらったとき たまたま見つけて疑問に思った程度なんです。とりあえず、 自分で書くときは習ったやりかたでやっていこうと思います。
- 664 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:58:14 ]
- >>663
たぶん書き忘れじゃないかと思ふ
- 665 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:58:37 ]
- >>662
>intになるがどんな値になるかは不明。 あれ?return書かない場合は0返すんじゃなかったか?
- 666 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:06:02 ]
- クラスのstaticで宣言したメンバー関数の関数ポインタを持つ事って可能ですか?
- 667 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:10:06 ]
- >>665
C++では前からそうだが、CではC99から >>666 C++はスレ違いだが、静的メンバ関数は、非メンバ関数同様に扱える。 ようするに静的メンバ関数へのポインタはただの関数へのポインタで扱える。
- 668 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:11:14 ]
- >>666
可能 VCで試した メンバーへのポインタじゃなくてC言語のように普通の関数へのポインタ
- 669 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:18:43 ]
- 参考書とかネットの記事とか見てるとmain()内の最後で、
return 0; return (0); って2種類の書き方見るんだけどこれらに明確な違いってあるのか? 低レベルな質問ですまん ><
- 670 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:24:11 ]
- >>669
括弧いらない あっても結果は変わらない
- 671 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:25:28 ]
- 違いはない。ただし括弧を付けない書き方が一般的。
昔はreturnに括弧を付けなければならなかった。 現在、括弧は不要になったが、あっても式の一部として扱われるのでコンパイルは通る。
- 672 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:26:01 ]
- >>670
レスありがとう。やたら気になってたんだ
- 673 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:28:21 ]
- >>669
returnは関数じゃなくてステートメントだから付けないてよい。 付けてもエラーにはならないが a = b + c を a = (b) + (c) などと書くのと同じことで冗長。 お作法的な話で言えば、綴りを間違って retrn 0 と書けば即コンパイルエラーだが、 retrn(0) と書いてしまうとそういう関数があるものと仮定されリンク時までエラーが発覚しない。
- 674 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:29:06 ]
- >>671
いつの話だ。
- 675 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 01:48:13 ]
- sizeof expr はつけなくてよいと分かっていても括弧つけてしまうな…
- 676 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 02:36:33 ]
- これは確かに使い分けに迷う。
sizeof(型); sizeof 変数;
- 677 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 02:42:05 ]
- 演算子もいってみりゃ関数みたいなもんじゃん
ってことで()付けてるけどいいのか?
- 678 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 03:55:13 ]
- >>676
変数ではなく式
- 679 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 04:01:44 ]
- >>677
別に構いませんよ。 ++(*(&(i)));
- 680 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 05:33:50 ]
- 激しくうっとうしいわw
- 681 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 06:05:28 ]
- 式だったら尚更()つけないとね
- 682 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 10:55:06 ]
- sizeof は、長い行の中に入ることもあって () なしだと見づらくなる場合があるからな
でもsizeof() じゃなくて、sizeof () にしてるな。 >>671 return に括弧が必要なときってあったか?
- 683 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 13:59:08 ]
- mem = malloc(len * sizeof * mem);
- 684 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 15:55:00 ]
- arrayという2次元配列にintの数値が入っています
for(i=0;i<array[0][j];i++)という風for文の条件式にしようとしても出来ませんでした こういう場合はどうすればいいのですか
- 685 名前:640 [2007/04/10(火) 16:10:53 ]
- やはりちゃんと動いてくれません(´Д`;)
>>650さんの意味がよくわからないのですが >>if((fin=fopen(argv[1],"r"))==NULL) の所のargv[]を1ではなくて他 の数値を渡せということでしょうか??
- 686 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 16:15:25 ]
- ちゃんと動かないって…もうちょっと他人にわかるように説明しろよ。
* どういう方法で起動していて、 * どういう挙動をして欲しいのか、 * そして実際はどういう結果になっているのか
- 687 名前:362 mailto:sage [2007/04/10(火) 16:38:24 ]
- >>363
型を見てみたらsignedcharでした。 この型しかソケット通信では送れないのでしょうか? >>364 ぐぐってもデータの転送順がかわることしかわかんなかったです>< 多くのデータを一度にsendで送るいい方法はないのですか><
- 688 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 17:06:16 ]
- bcpadから直接起動してるから引数渡せてないと予想
- 689 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 18:53:39 ]
- 趣味で麻雀をやってるんだけど、自分の打ち方がどれぐらい強いのか試そうと思ってC++のコンパイラさえあればあとは言語が書ければ代打ちソフトが作れるってdllを見たんでCをしてみようと思うんですけど。
これを読めばとりあえず素人はなんとかなるとか、このコンパイラが素人向けでわかりやすいなどありましたら教えてください。 一応Delphiは触るだけ触ったことはあるので言語そのものにアレルギー反応なんかは起こしませんけど、実用的なソフトを作ったことがないのでアルゴリズムなどちんぷんかんぷんです。
- 690 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 19:00:07 ]
- にh
- 691 名前::: [2007/04/10(火) 19:00:55 ]
- C言語習ったばかりなんですが、システムを組んでみたいと思ってます。
システムを組むための参考書や問題集は売ってますかね?自分で一から システムを作るのはやはり難しいですか?
- 692 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 19:01:30 ]
- システムの定義を教えてくれ
- 693 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 19:03:29 ]
- >>690
わかりにくかったなら省きますけど要は、素人におすすめできるコンパイラ(いつまでも使えるのならなおいいけどわかりやすさ優先。)と素人向けの参考書を教えてくださいってことです。 OKですか? 眠いのでちょっと日本語がおかしかったのは見逃してください。
- 694 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 19:41:38 ]
- >>693
おまいは、>>690を見て >にほんg(ry って分かったのかよw だったらなぜ、そもそも改行が出来ないんだ WindowsならBCCでおk
- 695 名前:687 mailto:sage [2007/04/10(火) 19:58:19 ]
- キャストしてもデータが途中までしか送れません><
どうすればいいんですか
- 696 名前:デフォルトの名無しさん [2007/04/10(火) 23:22:31 ]
- C言語で、char型の配列を確保する時に
領域を指定しないで宣言する方法ってありますか? char *s[]; ←のように宣言してもsのサイズが不明、もしくはゼロとか出て うまくいかないんですが、何かいい方法ありますか? 因みにこの問題ではmallocを使わないでやるという事が前提になってます。
- 697 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:24:37 ]
- callocもしくはreallocを使えばいい
- 698 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:28:27 ]
- >>695
じゃあ二回に分けて送れば
- 699 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:35:21 ]
- 質問です
AまたはBならCをする if( A || B ) { C ; } という条件文をA、Bわけて記述した時に、 if( A ) { C ; } else { if( B ) { C ; } } こう記述できると思いますが、Cを1回だけ使うような記述の方法はあるでしょうか?
- 700 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:39:14 ]
- 最近、こんなトンチみたいな問題だす学校、多いのかね?
- 701 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:41:08 ]
- >>689
それはつまり1人用の麻雀ゲームを作ろうというわけですね それなら簡単なGUIと思考ルーチンが必要です 思考ルーチンは現在の状況, つまり引いた牌と持ち牌(っていうのか?もれは麻雀やらないから言い方違うかも) と相手の打った牌などから次にどの牌を打つかを決める一連の思考の手順のことです これは一般的に一種類あるいは数種類の思考パターンを用意し, これらのような決まった処理のことを アルゴリズムと言う アルゴリズム(思考手順)そのものは言語に依存しないので(もちろん言語によって書き方は異なるかもしれないけど) すでに知っている言語があったら新たにCとかC++を勉強しなくてもOK 思考手順そのものを研究するのが目的ならVBやJavaなどの簡単にGUIが作れる言語が(個人的には)おすすめ これを足がかりにほかのゲームや実用ソフトを作りたいなら将来にわたって使っていけるような言語を選ぶのもあり(CとかC++) もしLinuxなどのUNIX系OSや, プラットフォーム非依存をターゲットとするならJavaが一番手っ取り早い GTKやwxWidgetなどのクロスプラットフォームのツールキットを使うこともできる (こういったツールキットは大抵複数の言語に対応している) あるいはPythonなどのスクリプト言語を使ってみるのもあり でも, ひとこと言わせてもらうと > 自分の打ち方がどれぐらい強いのか試そうと思って の意図はいまいちよくわからないが 作ったプログラムと自分で対戦すると言うなら それは一人二役でゲームをするのと同じだからちょっと無意味っぽいと(個人的に)思う また自分の思考をプログラミングしてほかの人やプログラムと戦わせたいのなら相当の覚悟が必要 人の思考は想像以上に複雑で, 無意識や勘なども作用してくるから 完全に自分の思考回路をプログラミングすることは(現実には)不可能に近い したがって出来上がったプログラムは君自身より弱い また, 何手か先を読むような(ありふれた)機能を盛り込む場合でも 計算しなければいけない手数は爆発的に増えるから(計算量とメモリーの増加), それをいかにして押さえるかとか いろいろとテクニックも必要になってくる ここまで考えるとかなり手間がかかる もれは大学の卒論がチェスのゲーム理論だったからよくわかる
- 702 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:44:16 ]
- >>699
do { if( !A ) { if( !B ) { break ; } } C ; }while(0);
- 703 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:48:24 ]
- >>699
なぜそうするのかはわからんが 単純にフラグをつけるのもいいんじゃない? Aが真ならflag = TRUE;してBのところでflag == TRUE;ならCを実行しないとか?
- 704 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:49:25 ]
- >>699
if( A ) { C ; } else if( B ) { C ; } これじゃダメなのか?
- 705 名前:704 mailto:sage [2007/04/10(火) 23:52:50 ]
- >>699
あー1回だけの記述か
- 706 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:54:18 ]
- >>699
if(A) { goto l; } else if(B) { l: C; }
- 707 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:01:42 ]
- >>699
if(A) goto label1; if(B) goto label1; goto label2; label1: C; label2: ;
- 708 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:18:16 ]
- >>699人気だなww
- 709 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:30:03 ]
- で、本当にこれ宿題なのか?
だとしたらこんな腐った問題を出す教師ってどんなやつなんだ。
- 710 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:35:24 ]
- Q.腐った問題を出す教師自体が腐ってる確率を求めるプログラムを作りなさい
- 711 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:40:44 ]
- >>710
int main() { printf("腐った問題を出す教師自体が腐ってる確率=%d%%",100); return 0; }
- 712 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 01:01:48 ]
- >>701
えっとですね、あんまり必要ないかと思って省いてしまったんですけど。 東風荘っていうネット雀荘みたいなものがあるんですけど、そのゲームの画面の状況から変数を作るdllを見つけてですね。 上がりや聴牌の判断もそのdllの関数がやってくれるので私はその変数の扱いを設定するだけで麻雀の代うちソフトが作れるようになるわけなんです。 だから、相手は人だし麻雀というゲームを遊ぶための土台の部分は配布されているので単純にアルゴリズムを考えるだけでOKってことなんですよね。 テクニックとしては、プログラムのテクニックよりは麻雀のテクニックのほうが重要だとおもうので簡単という言葉を使わせてもらってます。
- 713 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 03:44:18 ]
- そんな面白そうなものがあるのか。
ちょっと探してこよう……と思ったら一発で見つかった。
- 714 名前:701 mailto:sage [2007/04/11(水) 05:22:28 ]
- >>712
ほほー便利だなー それなら自分がどんな風に思考しているのかと どうやってそれをアルゴリズムにするのかを悩むだけでいいのかw
- 715 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 07:56:24 ]
- if (A) {
if (B) { C; } }
- 716 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:00:29 ]
- >>715
っ A==1 B==0
- 717 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:07:36 ]
- >>715
おちつけ それは、A||Bは(又は)ではなくてA&&B(喝)だ
- 718 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:07:36 ]
- 実際こういう場合はどうしたらいいの?
素直に判別式に論理演算使えってこと?
- 719 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:17:18 ]
- switch (x) {
case A: case B: C; }
- 720 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:22:28 ]
- 逆に論理演算を使いたくない理由ってのがわからない
- 721 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:22:53 ]
- というかその為に論理演算子があるんだから使ってやれよ…
論理演算子が泣いてるぞ。
- 722 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:23:43 ]
- >>719
なんじゃそりゃーーー!(松田優作風に
- 723 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:23:56 ]
- AまたはBならCをする。
=> AでないかつBでないならCはしない。 というド・モルガンの法則を理解するための課題であった。 なわけはないか。
- 724 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 09:22:50 ]
- >>719
caseは定数しかとらないので A, Bのような式はだめ
- 725 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 09:23:38 ]
- >>699
void f(void){ C; } int main(void){ if(A){ f(); }else if(B){ f(); } }
- 726 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 09:28:07 ]
- #define SHE C
void main(void){ if(A){ SHE; }else if(B){ SHE; } }
- 727 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 09:29:03 ]
- ↑訂正
×void main(void){ ○int main(void){
- 728 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 09:52:06 ]
- >>723
setjmp&longjmp関数の有用性を教えるための課題
- 729 名前:デフォルトの名無しさん [2007/04/11(水) 10:08:09 ]
- invalid digit "8" in octal constant
invalid digit "9" in octal constant このコンパイルエラーって何ですか?教えてください!
- 730 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:15:07 ]
- >>729
8進数なんだから0〜7までで表せよ、 8や9なんてねーよバーカ っていうエラー。整数の頭に0をつけてるだろ。
- 731 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:15:55 ]
- >>729
#include<stdio.h> int main(void){ printf("%d\n", 012); /* 数値の頭に 0 が付くと 8進数 */ printf("%d\n", 12); return 0; }
- 732 名前:729 [2007/04/11(水) 10:22:40 ]
- >730さん
>731さん ありがとうございます! 参考になりました。
- 733 名前:695 mailto:sage [2007/04/11(水) 10:35:06 ]
- 整数やら文字列が入った構造体を、ひとつの文字列にするいい方法はないですか?><
- 734 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:44:08 ]
- >>733
関数を作る
- 735 名前:733 mailto:sage [2007/04/11(水) 10:48:45 ]
- 整数やら文字列が入った構造体を、ひとつの文字列にする関数を作りたいのですが、いい方法はないですか?><
- 736 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:51:23 ]
- >>735
構造体晒せ
- 737 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 10:52:16 ]
- いつまでこのアホタレを甘やかす気ですか?><
- 738 名前:735 mailto:sage [2007/04/11(水) 11:02:14 ]
- struct test {
int i; char c[10]; struct kouzoutai { int seisuu; double kazu; int suu; char moji[10]; }kou; };
- 739 名前:デフォルトの名無しさん [2007/04/11(水) 11:04:39 ]
- >>738
釣り乙 死ね
- 740 名前:735 mailto:sage [2007/04/11(水) 11:04:41 ]
- 全部snprintfとかstrcatで繋ぐのはめんどくさいです
要するにバイト列と文字列を相互変換できる方法が知りたいのです><
- 741 名前:735 mailto:sage [2007/04/11(水) 11:05:18 ]
- 自己解決しました><
- 742 名前:753 mailto:sage [2007/04/11(水) 11:06:53 ]
- 爆釣ありがとうございました><
- 743 名前:740 mailto:sage [2007/04/11(水) 11:07:14 ]
- >>741
してないです>< とりあえず16進数でずらずらと数字を並べてみることにするです><
- 744 名前:743 mailto:sage [2007/04/11(水) 11:08:48 ]
- できました><
- 745 名前:743 mailto:sage [2007/04/11(水) 11:21:14 ]
- >>744
まだやってません>< ところで、 sprintf(text, "ABC"); と sscanf("ABC", "%s", text); って strcpy(text, "ABC"); と同じですか?
- 746 名前:743 mailto:sage [2007/04/11(水) 11:39:57 ]
- 隣の後輩が教えてくれました><
ありがとうございました><
- 747 名前:745 mailto:sage [2007/04/11(水) 11:44:37 ]
- >>746
>< なんとか自分でやってみます。ありがとうございませんでした><
- 748 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 12:20:11 ]
- カオスすぎです><
- 749 名前:747 mailto:sage [2007/04/11(水) 12:26:13 ]
- 初心者なのですいません><
- 750 名前:749 mailto:sage [2007/04/11(水) 14:57:11 ]
- 構造体へのポインタをunsigned char*型にキャストして
1バイトずつ2桁の16進数に直したら 構造体と文字列の相互変換ができました>< unsigned char *p; unsigned char text[1024], buf[1024]; strcmp(text, ""); p = (char *)&test1.kou; for(i=0; i<sizeof(test1.kou); i++) { sprintf(buf, "%02x", (unsigned char)p[i]); strncat(text, buf, 2); }
- 751 名前:749 mailto:sage [2007/04/11(水) 14:59:26 ]
- p = (char *)&test2.kou;
for(i=0; i<sizeof(test2.kou); i++) { strncpy(buf, &text[i*2], 2); sscanf(buf, "%02x", &((unsigned char)p[i])); }
- 752 名前:749 [2007/04/11(水) 15:00:31 ]
- 以上オナニーでしたありがとうございました><
|

|