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


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

【初心者歓迎】C/C++室 Ver.40【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 09:10:30 ]
エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.39【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1182740506/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

730 名前:デフォルトの名無しさん [2007/08/02(木) 22:50:24 ]
>>727
726でCといったのはC++を含むわけだが・・・
単純に言って、一行読み込んで《・・》を書き換えるだけでしょ?
なぜ何工程も必要なんだよ???

731 名前:710 mailto:sage [2007/08/02(木) 22:52:11 ]
>>730
日本語を含む正規表現での置換処理ですので、wchar_tに変換しています。
置換を3段階行っているのは、もっと効率化できるかもしれませんが、
どの言語でもやっていることは同じです。

C++だけ特に遅くなるような書き方をしているつもりはありません。

732 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 22:52:15 ]
C++のlocale周りを理解している人間なんて本当に少ない。おれもよくわかんないし。
それはぐぐっても日本語英語問わず資料が少ないことからも想像が付く。
そして処理系の実装はバグ持ちで遅く、ますます誰も使わず、負の悪循環。

>>730
その処理を全部省いたとしても、ワイド文字ストリームという砦が待ち構えている。


733 名前:デフォルトの名無しさん [2007/08/02(木) 22:53:54 ]
>>731
正規表現使わずに、例えばchar c[1000]; に読み込んで
if ( c[i]=='<' && c[i+1]=='<' ) とやった方が速いだろ

734 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 22:56:18 ]
>>733
他言語との比較でそんな抜け道はだめだろ。

735 名前:デフォルトの名無しさん [2007/08/02(木) 22:59:27 ]
速く変換したいという目的なんでしょ?そのためにどれが速いか検討していると
普通に考えると正規表現使わず<<だけ見つけた方が速いだろって事だ

736 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 23:00:29 ]
wchar_t なんかに変換する必要ないじゃん。
その文字コードに合わせて処理すればいいだけ。

737 名前:710 mailto:sage [2007/08/02(木) 23:02:44 ]
>>735
いいえ。違います。
速くしたいのならmmap()でも使いますが、Perlで以下の3行で済む下らない
仕事に一体何行費やすつもりですか。
試しにCのコードを書いてみてください。可変長の文字列を使う時点で既に
Cでは面倒くさいです。

$s =~ s{(.+)[#「\1」に傍点]}{
        sprintf('<ruby>%s<rt>%s</ruby>', $1, 'ヽ' x length($1))}ego;

$s =~ s/|?([々\x{4E00}-\x{9FFF}\x{F900}-\x{FAFF}]+)《(.+?)》/<ruby>$1<rt>$2<\/ruby>/go;

$s =~ s{([||〔\s])([^|〔《》\s]+)《(.+?)》}{sprintf(
    '%s<ruby>%s<rt>%s</ruby>', ($1 eq '|') ? "" : $1, $2, $3)}ego;

738 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 23:03:43 ]
C++ならなんでも速いというのは幻想。
速くなるようにチューニングする余地が用意されているというだけで、
素のままで速いとは限らない。正に今回はその好例。



739 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 23:04:18 ]
文字コードが何かもわからないのに>>733はないだろ
UCS-2だったらどうする


740 名前:デフォルトの名無しさん [2007/08/02(木) 23:04:37 ]
どのコードでも、《》の配置は換わらないのでは???

741 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 23:06:57 ]
>>735
普通の考えなんか価値なす。
大事なのは現実の速度。


742 名前:710 mailto:sage [2007/08/02(木) 23:07:40 ]
>>740
漢字《ふりがな》
といったパターンを捕まえて、変換しなければなりませんので、
文字クラスにUnicodeが使えると便利なのです。

それに、「全ての言語で」Unicodeの正規表現を使っています。
C++だけわざわざそうしているわけではありません。

743 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 23:09:53 ]
>>735
他の言語でも同じことやったら、またC++より速くなったりしてw

744 名前:735 [2007/08/02(木) 23:09:59 ]
>>710、ちょっとまってて いま書くから
もとのファイル354Kしかないから100倍 (35M) に増やして比較しようぜ!
そしたら速度差は歴然になるからさ

745 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 23:11:22 ]
思わずどっちの方向に歴然とした差が生まれるのかwって言いたくなる。

746 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 23:12:45 ]
ソース見てなかった
》携帯からのtypoかと思ってた

747 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 23:12:52 ]
じゃあ俺はHSPで書く!!

748 名前:735 [2007/08/02(木) 23:16:30 ]
ちなみに漢字コードは元々のシフトJISに限定するけどいい??



749 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 23:18:52 ]
ついでだからwchar_tに変換するものも書いてよ。
変換方法は何でもいいからさ。

750 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 23:20:50 ]
>>731
まず入力にはboost::spirit::file_iteratorを使う
デコード用のiteratorは自分で書くかboostの中から探す
つぎにxpressiveのregex_token_iteratorでトークンに分ける(cvsのでないと遅くなるので注意)
そのトークンに付け加えつつストリームに出力する
こうしてstd::stringどころかヒープさえほとんど使わないで出力する
これで世界最速のプログラムの完成である (完)

751 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 23:23:05 ]
そもそも、Perl だろうが何だろうが、
ターゲットの文字コードは分かんないとあかんだろ?

752 名前:デフォルトの名無しさん [2007/08/02(木) 23:25:29 ]
文字コードを統一する部分を持っていればよい

753 名前:デフォルトの名無しさん mailto:sage [2007/08/02(木) 23:32:51 ]
標準ではないけど、mbs系の関数使えば?

754 名前:デフォルトの名無しさん [2007/08/03(金) 00:02:30 ]
やっぱ面倒になった
方針だけ書いておく

e[2]="《";
f[2]="》";

strに一行読み込み

str[n] str[n+1]がeと一致するものを探して
k=n-2、n-4・・・を調べて
(c[k]>134 && c[k]<160) || (c[k]>223 && c[k]<254)でないもの(漢字でない)を見つける
そのあとに<ruby>を挿入して、漢字もつなげる
以下同様にやる

755 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 00:21:35 ]
とりあえず、boostをベースに、iostreamをstdioにしてみた。
コンパイラはVC2005。対象は、SANSHIRO.txtを20回繰り返した7MBのテキスト
測定は面倒だったから、cygwinのbashのtimeで。

boost$ time ./boost ../input/20.txt
real 0m9.324s
user 0m0.031s
sys 0m0.015s

stdio$ time ./boost ../input/20.txt
real 0m7.356s
user 0m0.031s
sys 0m0.015s

756 名前:710 mailto:sage [2007/08/03(金) 00:24:26 ]
>>755
stdio版も意外に遅いですね。
time cygstart aozora.js ../input/20.txt
の結果はどうでしょうか?
(jsがwshext.dllに関連付けられているかどうか分かりませんが)

757 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 00:30:29 ]
710死ね

758 名前:673 mailto:sage [2007/08/03(金) 00:56:35 ]
どうやらBOOST_TYPEOFというのがあるらしいですね
VCのバグを使ってほぼ完全にGCCのtypeofをエミュレートできるようです
(しかし本当にtypeofという名前だったとは…^^;)

早速使って見ましたが意図したとおりに動いていい感じ
range_XXXとかのメタ関数やsmart_ptr,optionalのようなテンプレートと相性がよいようで、
変数から型の参照が文法の上で自在に行えるのは気持ち良いです

>>690
検索かけてみましたが0xではその名前になるようですね
Visual C++0x(仮)を楽しみに待ちます



759 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:00:35 ]
bash-3.1$ perl -v
This is perl, v5.8.8 built for MSWin32-x86-multi-thread
Binary build 820 [274739] provided by ActiveState www.ActiveState.com(ry

bash-3.1$ time perl aozora.pl ../input/20.txt
real 0m7.738s
user 0m0.015s
sys 0m0.031s

bash-3.1$ time cscript aozora.js ../input/20.txt
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

real 0m7.637s
user 0m0.015s
sys 0m0.031s

760 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:00:43 ]
decltype という名前にしたのは、
動的な型は得られないということを分かりやすくしたのかね。

761 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:14:35 ]
ちなみに、当方ではどうやってもcscriptかwscriptが起動し、
(aozora.jsへの20.txtのD&Dでも)wshext.dllはどうやれば
使えるのかは判らずじまい

762 名前:710 mailto:sage [2007/08/03(金) 01:16:13 ]
>>759
わざわざ有難うございます。
JScriptは、cscript.exeやwscript.exeに実行させると私のところでも遅いです。
もしWindowsのレジストリ上でjsがwshext.dllに関連付けられている場合は、
>>756で書いたようにcygstartでaozora.jsを実行してみてください。
私のところでは、詐欺のような速さになっていました。

ともあれ、stdio版なら、PerlやJScriptよりはどうにか速くなる
といったところでしょうか。

763 名前:710 mailto:sage [2007/08/03(金) 01:19:46 ]
>>761
レスを読んでいませんでした。
自分も特別に何かしたわけではないので、分からない……

764 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:23:06 ]
wshext.dllって、実行がexplorerのスレッド内だったりして、
計測できるのはIPC(ファイルをexplorerに渡す)部分だけ、
みたいなオチはないよね?

765 名前:710 mailto:sage [2007/08/03(金) 01:27:50 ]
>>764
……んー。よく考えると、それ以前の問題として、cygstartで起動すると、
すぐに呼び出し側に制御が戻ってきてしまうので、timeで計測ができるはずは
ないですね。

失礼しましたm(_ _)m

766 名前:710 mailto:sage [2007/08/03(金) 01:49:44 ]
wshext.dllがバカみたいに速いらしいぞ、と勘違いする人がいるかもしれないので
念のため書いておきますが、全くのデタラメでした。
自分も>>755さんと同じように、cygwinのbashのtimeでいい加減に計測していたのです。
jsだけは関連付けで起動させるために、cygstartで実行させていました。
cygstartで走らせたものの実行時間を計れるわけがないのに。大ボケです。

とりあえず、iostreamさえ捨てればC++でスクリプトに勝てると分かりました。
が、コードを書くのが格段に面倒くさいのに、大して差があるわけでもないのが
悩ましいですね。
自分でもっとずっと複雑な計算をするプログラムなら、当然比較にならない
ほどC/C++が優位でしょうけれども。

767 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:56:15 ]
cygwin の GCC って遅かった気がする。
MinGW の方がいい。

768 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 01:56:45 ]
勘違いするのはお前くらい



769 名前:710 mailto:sage [2007/08/03(金) 02:09:08 ]
>>767
C++のプログラムは全てVC++7.1でコンパイルしました。
cygwinのnewlibは、ロケール周りの実装があまりにショボいので、実質的に
ワイド文字の処理には使えないと思います。
(VC++にしても、いくつも地雷を踏みましたが。boostも、boost::regexは
バグがあってダメでした)

>>768
そうですね><

770 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 02:12:39 ]
><

771 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 02:13:30 ]
xlocaleをちょっと弄ったらboost::regexも落ちないようになるらしいけど詳細は忘れた

772 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 02:18:51 ]
そうですね><

773 名前:710 mailto:sage [2007/08/03(金) 02:22:31 ]
>>771
xlocaleてことは、boost::regexのバグではなくVC++のバグってことですかね。

774 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 02:31:15 ]
勘違いするのはお前くらい

775 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 02:31:50 ]
ライブラリのバグかコンパイラのバグか知らんけど
動くコンパイラはあるわけだからね

776 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 02:38:02 ]
このスレの>>622に解決法あるじゃん


777 名前:710 mailto:sage [2007/08/03(金) 02:41:17 ]
>>776
あれ、それと同じ問題なのかな?
実はそれを教えていただいた>>616は自分なんですよ。

ただ、>>616の場合はxpressiveの正規表現のコンパイル時にスタックが
壊れてSEGVになっていたのですが、
boost::regexの場合は、バックリファレンス含みの正規表現で検索すると、
SEGVではなく、boost::regexが例外をスローしていました。

778 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 02:49:13 ]
じゃあこれかな
ttp://capslockabcjp.kitunebi.com/faq.html#boost-bug



779 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 02:51:50 ]
バグってるのはお前くらい

780 名前:710 mailto:sage [2007/08/03(金) 02:54:02 ]
>>778
実はそれをboostスレに報告したのも自分なのです。
その正規表現の例を見ればモロバレでしょうが。

随分前にそれで「使い物にならん」と判断して放置していたのですが、
ここ数日、ふと思い立ってxpressiveで組みなおしてみたのです。

781 名前:デフォルトの名無しさん [2007/08/03(金) 02:58:01 ]
使い物にならんのはお前くらい

782 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 03:11:23 ]
この流れは酷いな。

783 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 04:53:07 ]
filter.hppってなんじゃらほい

784 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 08:14:09 ]
STLportとかApache C++ Standard Libraryとかはどう?

785 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:39:09 ]
script言語はC/C++で書いてある
比較すること自体バカらしい・・・

786 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 11:52:46 ]
cpythonよりIronPythonのが速いっつー話もあるけどな

787 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 21:58:54 ]
class Base{
protected:
  int a = 0;
public:
  int Test(){
   return ++a;
  }
}

class Dev : public Base{
public :
   int Test(){
    a += 2;
    return a;
   }
}

int main ()
{
  Base * b = new Dev();
  printf ( "%d", b->Test() );
}

こうやると 1 と表示されます
これを2と表示させる(Devクラスの方のTest関数を呼び出す)ことってできないですかね?

788 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 22:00:09 ]
virtual



789 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 22:13:27 ]
お、できました
ありがとうございます

790 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 23:25:50 ]
もう一つ質問です

Base * b = new Dev[10];

for( int i = 0; i < 10; ++i ){
  b[i]->Test();
}

こういうようなことをやっているとループが何回か回った後で
メモリ外アクセス落ちちゃうんですが何が原因かかわかりませんか?

791 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 23:33:59 ]
>>790
つーかそれコンパイル通らないだろ

792 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 23:35:03 ]
Base * b = new Dev[10];

for( int i = 0; i < 10; ++i ){
  b[i].Test();
}

こうですた

793 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 23:40:53 ]
配列をポリモルフィックに扱ってはいけない
それをやりたいならポインタの配列とかでやるべき

794 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 23:49:00 ]
boost::scoped_array<Base> b( new Dev[10] );

for( int i = 0; i < 10; ++i ){
  b[i].Test();
}
ならおk?

795 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 23:49:38 ]
>>793
そうなんですか?

ポインタの配列というと、下のような感じでいいんでしょうか?

Base **b = new Dev*[10];

for( int i = 0; i < 10; ++i ){
  b[i] = new Dev();
  b[i].Test();
}

796 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 23:53:33 ]
>Base **b = new Dev*[10];

これコンパイル通らないだろ。

797 名前:793 mailto:sage [2007/08/03(金) 23:55:00 ]
>>795 ソースはMore Effective C++の第三項。ぜひ一読を

798 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 23:56:31 ]
>>794 同じこと。



799 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 23:57:42 ]
>>795
ねたじゃn

800 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 23:59:41 ]
>>796
Base **b = new Base*[10]; はいけましたが
Base **b = new Dev*[10]; はダメみたいです

801 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:12:01 ]
ポインタの配列調べてきました、こんなんでいいんですか?
malloc久しぶりに使いますた

Base **b = (Base**)malloc(10 * sizeof(Dev*));

for( int i = 0; i < 10; ++i ){
  b[i] = (Dev*)malloc(10 * sizeof(Dev));
  b[i].Test();
}


802 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:13:52 ]
>>801
Base やら Dev やらは構造体なの?

803 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:14:46 ]
>>802
>>787のやつです

804 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:16:00 ]
mallocじゃコンストラクタが走らないだろう・・

Devを指すBase*の配列を作ればいいと思うよ、多分

805 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:27:19 ]
こうか?
typedef Base* PBase;

std::size_t n = 10;
PBase** b = new PBase[n];
for (std::size_t i = 0; i < n; ++i) {
  b[i] = new Dev;
  b[i]->Test();
}
いい加減boost::ptr_vector使えとか言いたい。

806 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:28:11 ]
ptr_vectorはalgorithmが使えないから・・・

807 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:33:47 ]
>>806
boost::indirect_iteratorでなんとかなる話?

808 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:39:59 ]
違う、アルゴリズム体操の話。



809 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:42:20 ]
>>807
くやしく

810 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:42:59 ]
なんだあほか

811 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:49:08 ]
>>809
www.boost.org/libs/iterator/doc/indirect_iterator.html#example
value_typeがT*(一般に*演算子が使える型)なイテレータをラップして
value_typeがTであるイテレータにするアダプタ。

812 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 00:55:04 ]
>>805さんの方法で上手くいきました、ありがとうございます

813 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 02:58:29 ]
こういうこんがらかるようなソースは嫌い

814 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 03:03:32 ]
こんがりコーン

815 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 03:04:27 ]
普通に一個一個newすればいいのに

816 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 03:12:07 ]
newが現れた。newが現れた。・・・おや?new達の揚子江が・・・・・!?

817 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 03:22:39 ]
兆候って言えよ

818 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:30:45 ]
template <typename T> void f( typename boost::call_traits<T>::param_type x);
みたいな定義で
type x;
f(x);
のようにして使いたいんですが(要はf<type>(x)とかするのがめどい)
何か良いアイデアありませんか?



819 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:53:48 ]
template <typename T> void f(T x)ならそのままf(x)できるけどboost::call_traitsってなんだっけ?

820 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:54:11 ]
f(x)で呼べるだろ。

821 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 12:55:27 ]
>>819
boost::call_traits<T>::param_typeは、
引数がクラス型ならconst T&、組込型ならTというように、引数に最適の型になる。

822 名前:819 mailto:sage [2007/08/04(土) 12:56:31 ]
>>821
だったら>820。

823 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:14:08 ]
普通に考えればそうなるはずなんですが、結果は

#include <boost/call_traits.hpp>

template <typename T> void f(typename boost::call_traits<T>::param_type) {}

int main() {
int x;
f(x);
}

error C2783: 'void f(boost::call_traits<T>::param_type)' : テンプレート 引数を 'T' に対して減少できませんでした
'f' の宣言を確認してください。

oops。。。

824 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:24:07 ]
コンパイラは何?
vc6だとboostの一部は使えないよ。

825 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:40:31 ]
工工工工工工エエエエエエ(´д`)エエエエエエ工工工工工工

826 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 13:42:43 ]
VC8です
あとGCC3.4でも試してみたが駄目ですた
型推論が上手く行かない為だと思うんですが、これはバグなのか
言語仕様上の限界なのかよくわかりません

827 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 14:14:16 ]
2.5 というのをファイルから読み込んだんですが、これを小数(Float)に変換するには
どうすればいいんでしょうか?

828 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 14:17:26 ]
↑質問をちょっと訂正です
変換する上で便利な関数はありますか?
atoiか何かで1文字づつ変換して入れてくしかないんでしょうか?



829 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 14:28:47 ]
atof(), strtod()

830 名前:デフォルトの名無しさん mailto:sage [2007/08/04(土) 14:29:03 ]
ありゃまatofなんて関数があったんですね
解決しました






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

前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