1 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 20:15:31 ] C言語の入門者向け解説スレです。 教えて欲しいのではなく宿題を丸投げしたいだけなら ↓宿題スレ↓へ行ってください。 C/C++の宿題を片付けます 117代目 pc11.2ch.net/test/read.cgi/tech/1225320579/ ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ・開発環境や動作環境も晒すと答えが早いかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 37 pc11.2ch.net/test/read.cgi/tech/1224000127/ 過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
121 名前:デフォルトの名無しさん [2008/11/02(日) 09:40:45 ] 誰か>>105 について教えて下さい
122 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 09:42:15 ] >>121 struct です
123 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 09:57:31 ] 1 は何故 int型なの? 'A' は何故 char 型なの? 0は何故偽値なの? if文は何故式じゃないの?
124 名前:デフォルトの名無しさん [2008/11/02(日) 09:58:46 ] >>122 何故オブジェクト型なのですか? 何故構造体型では無いのですか?
125 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:01:37 ] 構造体だって書いてあるじゃん。 バカなの?
126 名前:デフォルトの名無しさん [2008/11/02(日) 10:07:09 ] >>125 JIS X3010:2003にはオブジェクト型であると説明されているのですが、 あなたは構造体型であると言いたいのですか?
127 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:08:12 ] YES
128 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:12:13 ] >>127 どうして構造体型なの?
129 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:17:02 ] いや、間違った。別に構造体である必要は無いか。 規格でそこまでは決められてないな。 構造体以外で実装されている処理系は見たこと無いが。 Q.なぜ構造体ではなくオブジェクト型なのか? A.構造体です。 Q.なぜオブジェクト型なのか。 A.規格でそう決められてるから。
130 名前:デフォルトの名無しさん [2008/11/02(日) 10:18:58 ] >>129 、別に構造体型じゃなくても構わないッスw適当にやっちゃってよw、 って事?
131 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:21:37 ] 規格に書かれていないことは実装者の自由。 もっとも規格に沿ってない実装だってあるわけだから、 目指すものによって守るべきルールも決まってくる。 規格に無くても、世の中にはデファクトスタンダートと言うものもあるしな。
132 名前:デフォルトの名無しさん [2008/11/02(日) 10:21:57 ] ポインティンガーから構造体にアクセスするときだけ -> で いいのですか
133 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:25:09 ] >>131 なるほど、ありがとうございます。
134 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 13:00:04 ] っていうか、Cの規格のオブジェクトってのは、オブジェクト指向のオブジェクトとは別物だろ。
135 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 14:27:09 ] perlの処理系をC言語で作る事はできますか?
136 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 14:28:18 ] できますというかできてます
137 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 14:30:26 ] Perlの処理系はLarryの優しさから出来ています とりあえずこちらをご覧下さい ttp://www.cpan.org/src/README.html
138 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 14:36:02 ] 他にもC言語でできてる、代表的なソフトを教えて下さい。
139 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 14:39:41 ] Unix系OS
140 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 14:51:23 ] Cの処理系
141 名前:デフォルトの名無しさん [2008/11/02(日) 14:57:40 ] YO YO エビバーデー
142 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 15:29:45 ] フィンガー5じゃないが、リンリンしなくて良いからw
143 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 16:02:55 ] >>115 scanf("%f",&y); ↓ ^^ scanf("%lf",&y); ^^ printf("その電化製品で掛かる月の電気代は%e¥で、基本料金は%d¥です\n",ene,x); ↓ ^^^ printf("その電化製品で掛かる月の電気代は%.3f¥で、基本料金は%d¥です\n",ene,x); ^^^ これでいかがでしょう?(printfのほうは自分の好みで変更しました) ただ、xが使われていないような・・・
144 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 16:08:18 ] >>143 です 思いきりずれました つまり、scanfのフォーマット指定を"%f"→"%lf" pritnfのフォーマット指定を"%e"→"%.3f"(この3は小数点以下桁数なのでお好みで) でいかがでしょう?
145 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 17:49:25 ] いまひとつ有り得ない桁数というのが分からないのと それであってるのか分からないのだが eneは電気代じゃなくて一ヶ月分の消費電力しか計算して無くないか?
146 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 17:51:19 ] 普通、¥は接頭です。
147 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 17:55:35 ] 計算するときは、常に単位を意識するといい。 y * z * 30は、即ち y[W] * z[h/day] * 30[days/month]だからつまり、ene[Wh/month]となる。 つまり、月当たりの電力量と言うことだ。
148 名前:デフォルトの名無しさん [2008/11/02(日) 18:10:45 ] unsigned charの変数は初期化をしなくても問題は無いのですか? 大学の課題のサンプルプログラムの中に初期化も代入もせずに 値を参照している部分を見つけたもので気になって質問しました 試したところ確かに初期値?として0が格納されているみたいなんですが これをそのまま利用していいんでしょうか? 自分の知識や習慣だと変数を初期化等をしないまま参照するのは おかしい気がするのですが何かこうすることで問題が発生したりはしますか?
149 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 18:14:53 ] グローバルスコープやstaticな変数なら0で初期化される。 ローカル変数ならゴミが入ってる。
150 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 18:15:40 ] 型の問題ではなく、定義されている場所の問題。 関数内のローカル変数でstaticでないなら、初期化しないと不定値になる。
151 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 18:16:34 ] グローバル変数なら0で初期化される
152 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 18:19:43 ] >>149 あれ?関数内のstaticな変数は0初期化されないんじゃなかったっけ?
153 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 18:22:04 ] されます。
154 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 18:26:30 ] >>149->>151 おお、ありがとうございます! なるほど、型ではなくスコープの問題だったんですね 確かにそのプログラムではグローバル変数でした 今までそんなこと全く知らずに使ってました^^; 勉強になりました
155 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 18:32:39 ] スコープっていうか静的か動的かの話じゃないかな コンパイル時なら0で初期化とかやっても遅くならないし
156 名前:152 mailto:sage [2008/11/02(日) 18:36:12 ] >>153 確かにそうみたい。なんか勘違いしてた
157 名前:デフォルトの名無しさん [2008/11/02(日) 18:40:33 ] テキストファイルから1行ずつ読み込んで、 それをスペースを間に入れて表示したいです。 例えばテキストファイルの中身が a b だったら「a b」という感じに表示したいのですが、 以下のコーディングで正しいでしょうか? 環境はWindowsXP、VisualC++2008 ExpressEditionです。 char buf[1024]; FILE *fp = fopen("test.txt", "r"); while(fgets(buf, sizeof(buf), fp) != NULL){ buf[strlen(buf)-1] = '\0'; printf("%s ", buf); }
158 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 18:49:43 ] >>157 だいたいそれでいいんじゃないの? 一行が1024文字以上だったらどうするとか、細かいことは考えないで。
159 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 18:56:06 ] >>158 大丈夫そうですか? あ、でもこれだとテキストファイルの最後に空白行 入れないと駄目っぽいですね。
160 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 19:09:00 ] 聞く前に試せよ
161 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 19:24:35 ] 俺に聞けスレで試せで終わらすなんて。
162 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 19:33:25 ] 何故ダメなのか聞くためのスレだろ
163 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 19:35:35 ] >>159 fgetc()とfputc()で、一文字単位でしょりして、\nだったら空白に置き換えるってほうが、 簡単なんじゃね?
164 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 19:36:01 ] できることできるだけやってから質問するのは当たり前だろ
165 名前:デフォルトの名無しさん [2008/11/02(日) 19:38:22 ] 一番ダメな考え方 「動くからこれでいい」 動くからと言って、CPUの演算処理を独占するようなコードはクソである。 だから動くからいいと言うものではない
166 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 19:38:39 ] >143です >>145-146 さん 皆さん指摘の通り、中途半端な回答になっていました。 >>115 さん kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7916.txt に修正版をうpしたので許してください
167 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 19:45:17 ] >>163 その方が簡単ですね。効率性も考えるとfgetsですかね?
168 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 19:50:27 ] >>167 たぶん、大差ないんじゃないの? 昔、setvbuf()ってので、バッファのサイズを増やしたら速度が向上してたけど、 Windowsの時代になってから、同じようなことをやってもあんまり変わらなかった。 OSレベルでのバッファリングされてるからだと思うけど。
169 名前:デフォルトの名無しさん [2008/11/02(日) 20:19:51 ] 仮に、CPUの処理速度が無限大あって ビットシフトなんか使っても速くならないとしても 常に最適化を忘れてはいけない コンパイラが最適化してくれるとしても 自分の手で最適なコードを書くことを忘れてはいけない これが出来ない奴はルータも携帯電話も作れない
170 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 20:21:34 ] 携帯やルータってCで出来てるの?
171 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 20:29:30 ] 基本は読みやすさ。 要件をみたせないときに、最適化。
172 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 20:32:53 ] Cではありません。スパゲッティーで出来てます。 。。。ごめん
173 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 20:35:12 ] またド忘れしちゃった。。 左シフト演算って、常に論理シフトするんだっけ。 signed でも unsigned でも正値でも負値でも。 右シフト演算がちょっとめんどくさいことになってることは 覚えてるんだけど。
174 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 20:37:28 ] なぜコードを最適化するのですか?
175 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 20:40:24 ] めんどくさいものは使わない。
176 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 20:48:13 ] 組み込みは未だに、CとASMで出来ている
177 名前:デフォルトの名無しさん [2008/11/02(日) 20:59:00 ] >>172 ざる蕎麦ではできていないのか
178 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 20:59:47 ] >>173 #include <stdio.h> #include <limits.h> #define UPPER_BIT (1 << (sizeof(int) * CHAR_BIT - 1)) void print_bit_s(int n){ unsigned int mask = UPPER_BIT; for(;mask; mask >>=1) putchar(mask & n ? '1' : '0'); putchar('\n'); } void print_bit_u(unsigned int n){ unsigned int mask = UPPER_BIT; for(;mask; mask >>=1) putchar(mask & n ? '1' : '0'); putchar('\n'); } int main(){ int n1 = (-1); int n2 = n1 & ~UPPER_BIT; unsigned int m1 = n1; unsigned int m2 = n2; print_bit_s(n1 >> 1); print_bit_u(m1 >> 1); print_bit_s(n2 << 1); print_bit_u(m2 << 1); return 0; } // output 11111111111111111111111111111111 01111111111111111111111111111111 11111111111111111111111111111110 11111111111111111111111111111110
179 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 21:25:30 ] >>174 そこにコードがあるから
180 名前:173 mailto:sage [2008/11/02(日) 21:44:14 ] んー、たとえば右シフト演算について言えば、符号付き整数型の負値に対して演算を 適用した結果は処理系に依存しますよね。output の1行目でいうと、算術シフトするか 論理シフトするかは処理系に依存すると。。 上の2行は 01111111111111111111111111111111 01111111111111111111111111111111 こうなる可能性があるわけですよね。下の2行に関しては同様に処理系依存の問題は 大丈夫なのでしょうか。コードを解読し切れてないので結論が良く見えないのですが。
181 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 21:50:37 ] >>173 っMSDN と思ったけど、検索しても見つけにくかったので、ローカルから。 Shift Operators: >> and << (ごめん、英語なんだ) とりあえず適当訳。 左シフトは0埋め。論理シフト。 右シフトはunsignedは0埋め。signedは符号ビットで埋める。 unsignedは論理シフト。signedは算術シフト。 ・Microsoft Specific signed の負の数の右シフトは、実装によります。 MicrosoftのC++の場合は、MSBで空いたビットを埋めます。 MSのC++以外の場合は知らん。 だそうです。
182 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 21:53:03 ] なんでこういう細かいところ統一しないの?
183 名前:173 mailto:sage [2008/11/02(日) 22:12:18 ] わざわざ和訳までしてもらってすいません。Cの規格的な部分ではどうなんでしょうね。。 Microsoft仕様ではCとC++とでまた違うんですか。こちらでももうちっとしらべてみます。 あふん。。
184 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 22:20:14 ] >>182 なんでOSは統一しないの?なんで通貨も、言語も。 所詮、こんなものは、規格化した集団が幅広い用途を考慮して 決めるか、一部の団体の意見の押し付けでしかないってことだよ。 そして俺らはそれを使うだけ。開発、発案、研究するわけでもない・・・ まぁ、俺はとある有名大学で研究、実験はしたがな。
185 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 22:28:45 ] >>182 効率を重視するから
186 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 22:32:34 ] >>183 MSの場合Cでも>>181 と同じ。 そこに書いてある「MSのC++以外」とは、MS以外のC++という意味。 規格上は、負の値の左シフトは未定義。 正の数なら符号付き・符号無しいずれの型でも0埋めで定義されている。 CはJIS X3010、C++はJIS X 3014が国際規格の翻訳として存在する。 www.jisc.go.jp/
187 名前:173 mailto:sage [2008/11/02(日) 22:57:15 ] おお!そのものズバリのご回答ありがとうございます。 負値の左シフトは未定義でしたか。 正値ならば符号付き・無しに関わらず論理シフトすると、こういうことですね。 ややこしいなあ。。 ともかくこれでスッキリしました。 ありがとうございました。
188 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 23:05:13 ] 左シフト?
189 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 23:06:46 ] 「右も左も分かりません」
190 名前:デフォルトの名無しさん [2008/11/02(日) 23:14:23 ] アホか
191 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 23:16:59 ] ↑うん、お前アホ。
192 名前:デフォルトの名無しさん [2008/11/02(日) 23:27:23 ] 肝心のシフト演算子について話せない奴はすっこんでろ
193 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 23:28:34 ] >>187 算術左シフトという言葉があったとしても、負の値のそれはやっぱり0埋めだよ。 論理左シフトと全く同じだから、わざわざ算術と言わないだけ。 算術右シフトが負値で1埋めするのは符号を維持するための結果であって、 1埋めするから算術というわけではない。
194 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 23:29:41 ] 自分の論理を自分に適用できない奴はすっこんでろ
195 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 23:49:20 ] そんなに符号のことが気になるなら、unsignedをしっかり指定しとけ、な?
196 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 23:53:00 ] >>177 ざる蕎麦ではだめです。 もり蕎麦に、のりを盛るところから始めなくては。 きしめんでも可。 たぶん、時期的に、そうめんはだめだと思う。 (って何の話だっけ
197 名前:187 mailto:sage [2008/11/02(日) 23:55:37 ] 言葉の定義って難しいですね。。ややこしくて頭がパンクしそうです。 単純に 0埋め=論理シフト、1埋め=算術シフトと覚えてました。 算術(右シフト)だから符号を維持する必要がある→結果として1埋めになる 論理(右シフト)だから符号を維持する必要がない→結果として0埋めになる こういうことなのかな。考えたことも無かった。
198 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 00:00:01 ] そんなに心配なら shl, sal, shr, sar を直に使えよ
199 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 00:04:35 ] 算術シフトは 左にnビットシフトすると,元の数の2^n 倍 右にnビットシフトすると,元の数の1/2^n倍 これを保障するシフト演算。だから算術という。
200 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 00:10:33 ] RCL、RCR、ROL、RORとか混ぜると、さらにパンク。
201 名前:187 mailto:sage [2008/11/03(月) 00:20:29 ] なんで知らなかったんだろう今まで。。恥ずかしい。 算術って言うのは単に符号を維持するっていうことじゃなくて、そういうことなのね。。 それを保証するために符号の維持も当然必要で、その結果1埋めになる(右シフトの 場合)ということかな。
202 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 11:49:20 ] >>184 多様性のもつ可能性を吟味しなければなりません。
203 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 13:53:42 ] scanfで入力してもらった数字、例えば1234を合計した数字を変数に入れる方法を教えて下さい。(入門者にも理解できる範囲でお願いします)
204 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 13:59:03 ] 数字は1 2 3 4とバラバラに入力するのかそれとも連続で1234と入れるのか?
205 名前:203 mailto:sage [2008/11/03(月) 14:02:37 ] 連続で入力するほうでお願いします。
206 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 14:06:53 ] 文字列で受け取って、一文字づつバラして、数値に変換して、全部足す
207 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 14:16:20 ] >205 まず、%d指定子を使って1234という数字をまるごとあるint変数(仮にt)に読み込む 次に、合計を得る変数(仮にs)をゼロに初期化する そして、以後tが0より大きい間、tを10で割った余り(%演算子を使うこと)をsに加算してからtを10で割るということを繰り返す ※Cでは、正の整数の割り算は端数を切り捨てる 流れ: s:0 t:1234(読み込み) s:4 t:123(1234を10で割った余り4をsに足しtを123に) s:7 t:12(123を10で割った余り3をsに足しtを12に) s:9 t:1(12を10で割った余り2をsに足しtを1に) s:10 t:0(1を10で割った余り1をsに足しtを0に) (tが0になったので終了)
208 名前:デフォルトの名無しさん [2008/11/03(月) 14:21:45 ] int a; scanf("%d", &a); printf("%dの合計を暗算して入力してください"); scanf("%d", &a); printf("はい、ご名算!");
209 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 14:50:08 ] 宿題は宿題スレへ じゃないのか?
210 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:04:53 ] そういうのって、getchar() ループの方が楽じゃね? #include <stdio.h> void main( void ) { int loop = TRUE; int sum = 0; char c; while ( loop ) { c = (char)getchar(); // 1文字入力 switch ( c ) { case '0': // 0〜9が入力された場合、sumに足しこむ case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': sum += (int)( c - '0' ); break; case EOF: loop = FALSE; break; } printf( "合計値は %d \nです。", sum ); } }
211 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:08:52 ] '0'-'9'は連続が保障されてるから、そんなことしなくても
212 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:22:36 ] int c, sum = 0; while (isdigit(c = getchar())) sum += c - '0'; printf("%d\n", sum); これだけでいいじゃん
213 名前:>212 mailto:sage [2008/11/03(月) 15:25:30 ] 0〜9以外を無視していないから却下
214 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:27:06 ] え?
215 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:29:13 ] 123x4 と入力したら 10 が返ってくる仕様が求められてるのか?
216 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:30:18 ] >>209 丸投げでなければわからないことを聞くのは一向にかまわない >>210-212 scanfでって言ってるのにgetcharはないだろ
217 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:41:17 ] こういうので、質問者にscanf()が必須条件なのか、それ以外でもいいのかって質問してもめったに返事が返ってこないよな。
218 名前:210 mailto:sage [2008/11/03(月) 15:43:37 ] >>216 こういうのはふつうキーイベントループ制御だべよー。 WindowsのようなGUIでもテキストボックスに「1234」なんて連続して入力させるかぁ?
219 名前:203 mailto:sage [2008/11/03(月) 15:49:26 ] みなさん、お答えいただきありがとうございます。 アドバイスを受け、色々と試してはいるのですが、一向にうまくいきません。 ここで質問なんですが、1234を char str[5]; scanf("%s",str); で文字列として受け取って atoi(str)で整数値に変換 その後に1234を一文字ずつにバラす方法がさっぱりわかりません アドバイスお願いします。
220 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:52:30 ] >>219 4 = 1234 % 10; 123 = 1234 / 10;
221 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 16:07:33 ] 文字列入力ってテーマを見ると、すぐにgetchar()で一文字ずつ判断するロジック書く奴っているよね。 そういう奴に限ってろくでもないバグを仕込むから笑えない。