- 1 名前:デフォルトの名無しさん [2006/05/04(木) 08:53:09 ]
- 入門者向けの俺に聞けスレです。
なんでもきいてよね
- 599 名前:582 mailto:sage [2006/07/01(土) 00:25:26 ]
- >>583,584,585
ありがとうございます。system("PAUSE");を利用することにしました。 >>597 #include <stdio.h> int main(){ int n; do{ scanf("%d",&n) if(n<1) printf("1以上の整数を代入してください!"); }while(n<1); do{ n--; }while(n!=0); return(0); } 実行してないからバグあるかもしらん。
- 600 名前:デフォルトの名無しさん mailto:sage [2006/07/01(土) 01:04:31 ]
- 598、599さん、素早い返答ありがとうございます。実は猫でもわかるシリーズの本にあった例で、do〜while(n)で終わってて理解できなかったんです。初学者ゆえこれからも質問しますが、よろしくお願いいたしますm(__)m。
- 601 名前:デフォルトの名無しさん [2006/07/02(日) 13:57:54 ]
- double a=123456.6789
b=-12345.6789 printf("a=%10.4f b=%10.4f\n",a,b); printf("a=%7.4f b=%7.4f\n"),a,b); の結果が両方とも a=123456.6789 b=-12345.6789になるのはどうしてでしょうか?
- 602 名前:・∀・)っ-○◎● ◆toBASh.... [2006/07/02(日) 14:07:24 ]
- >>601
%10.4fは、浮動小数の「小数点以上」ではなく「全体の幅」を10文字で表すと言う意味。 もちろん小数点以上の桁数が足りない場合は自動的に補われる。 小数点以下の「4」の部分は、小数点以下に使う桁数の指定。 どっちも7文字でも10文字でも表しきれないので11文字に拡張されて同じ表示になる。
- 603 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 14:15:07 ]
- >>601
pc8.2ch.net/test/read.cgi/tech/1148993760/671
- 604 名前:デフォルトの名無しさん [2006/07/02(日) 14:15:33 ]
- >>602
よくわかりました。ありがとうございます。
- 605 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 14:30:09 ]
- 目がおかしくなったかなぁ。
>601の後者はコンパイルさえ通らないし、二番目の%10.4fの結果は12桁になるようにしか見えない。
- 606 名前:デフォルトの名無しさん [2006/07/02(日) 16:02:02 ]
- Boland C++ Compiler 5.5でアプリケーションプログラムをコンパイルする方法を
教えてください。 パラメータ 'hWnd'は一度も使用されない パラメータ 'hPrevInstance'は一度も使用されない パラメータ 'lpCmdLine'は一度も使用されない といった警告はどうしたら消えるのでしょうか?
- 607 名前:・∀・)っ-○◎● ◆toBASh.... [2006/07/02(日) 16:09:20 ]
-
int WINAPI WinMain( HINSTANCE /* hInstance */ , HINSTANCE /* hPrevInstance */ , LPSTR /* lpCmdLine */ , int /* iCmdShow */ ) { // ほげほげ }
- 608 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 16:36:34 ]
- その気持ちの悪いカンマの位置はどんなメリットがあるんだ?
たまに見かけるんだが。
- 609 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 17:50:20 ]
- Borland Developer Studio 2006 No.06
pc8.2ch.net/test/read.cgi/tech/1151562315/l50 int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int, ) { // ほげほげ }; ってやっちまって、コンパイルエラー出て悩むのを防ぐ馬鹿除けでは?
- 610 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 18:10:34 ]
- 俺ならint WINAPI WinMain(HINSTANCE, HINSTANCE, PSTR, int)って1行に書く。
- 611 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 18:11:34 ]
- 一応言っておくと>>607-610のように仮引数名を省略できるのはC++だけで、Cではできない。
- 612 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 18:40:04 ]
- あれ? C99でできなかったっけ?
- 613 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 18:47:37 ]
- nに入力した数字の数だけ$を表示するプログラムを作ったんですが
数字を入力するとなんか沢山$が出てきちゃいます。 改善方法はありませんか。よろしくお願いします。 #include <stdio.h> int main(void){ int a; char c; while(1){ printf("C="); scanf("%c",&c); if(c==0) break; if((c <= 'A' && c <= 'Z') || (c <= 'a' && c <= 'z')){ printf("英数字ですぅ\n"); continue; } else{ for(a=1;a<=c;a++) printf("$"); } } }
- 614 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 19:58:25 ]
- >>613
・scanf()の戻り値をチェックしないとcの値が有効かどうか判らない。 ・cには文字が入っている。それは数値ではないので0と比較する意味が殆どない。 ・同じ理由で、$の数は文字コードの値に依存してしまう。 やりたいことがよく判らんが、入力と処理を分けて考えた方がいいんじゃないか?
- 615 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 20:54:59 ]
- cを入力
↓ 英字か?no→→→数字か?no→→→→→それ以外 yes↓ yes↓ ↓ 上に戻る cの数だけ$を表示 終了
- 616 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 21:01:46 ]
- 上のようなプログラムを作りたかったんですが
10進数型で入力にして if((c <= 'A' && c <= 'Z') || (c <= 'a' && c <= 'z')){ printf("英数字ですぅ\n"); else if((c <= 0){ for(a=1;a<=c;a++) printf("$"); } else break; このようにしても英字を入力したらダメですし・・・。 上のようなプログラムを作るのは無理ですか。
- 617 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 21:05:30 ]
- >>616
つ isalpha(), isdigit()
- 618 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 21:05:51 ]
- >>616
>>616読め
- 619 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 21:13:22 ]
- cが0以下ってのはどういう事よ
- 620 名前:デフォルトの名無しさん [2006/07/02(日) 21:44:18 ]
- signed char であれば、ASCII範囲外を除外しているといえなくも無い。
- 621 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 21:48:38 ]
- ASCII範囲内を除外しているように見えるが...
- 622 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 22:17:10 ]
- #include <stdio.h>
#include <string.h> #include <stdlib.h> int main() { // ここから入力 char buf[200]; if (fgets(buf, sizeof(buf), stdin) == NULL) { // 入力終端or異常 } char * ptr; long foo = strtol(buf, & ptr, 10); if (ptr[0] != '\0') { // 数字以外の入力 } // ここから文字処理 for (unsigned ic = 0; ic < foo; ++ic) { putchar('$'); } return 0; }
- 623 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 22:40:48 ]
- 見たことのない文字がいっぱい・・・。
c言語って難しいですね。 あと、616は間違いだらけでした・・・。 皆さんありがございました。皆さんが言ってることが理解できるようにもっと勉強します。
- 624 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 22:45:12 ]
- >見たことのない文字がいっぱい・・・。
確かにそれでは文字コードの処理は難しいだろう …とかいうツッコミは置いといて、 ガンガレ。
- 625 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 22:55:52 ]
- >>622
改行を除去するか、'\0' || '\n'で判定しないと、 常に数字以外と判定されるよ。
- 626 名前:622 mailto:sage [2006/07/02(日) 23:36:30 ]
- あ、いけね、忘れてた。
>>625 THX! こんなもんかな。 #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char buf[200]; if (fgets(buf, sizeof(buf), stdin) == NULL) { printf("No input.\n"); return 0; } char * ptr = strchr(buf, '\n'); if (ptr) { * ptr = '\0'; } if (strlen(buf) == 0) { printf("Empty input.\n"); return 0; } long foo = strtol(buf, & ptr, 10); if (ptr[0] != '\0') { printf("Not a number.\n"); return 0; } for (unsigned ic = 0; ic < foo; ++ic) { putchar('$'); } return 0; }
- 627 名前:デフォルトの名無しさん [2006/07/02(日) 23:36:32 ]
- 初歩的な質問ですみません。
main関数とは別のファイルに作ったユーザー定義関数を 呼び出すのはどうしたらいいですか? #includeで取り込めばいいのでしょうか? そのときは、やっぱり関数のプロトタイプ宣言は必要ですか?
- 628 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 23:37:57 ]
- extern付けて宣言する必要がある
- 629 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 23:38:16 BE:314515679-#]
- >>627
環境は?
- 630 名前:デフォルトの名無しさん [2006/07/02(日) 23:39:01 ]
- >>629
WindowsXPです
- 631 名前:デフォルトの名無しさん [2006/07/02(日) 23:42:36 BE:239631168-#]
- >>630
VCとかなら、プロジェクトに別ファイルを追加すればいいよ。 コマンドラインなら、引数で、mainのファイルと、別のファイルを渡せば勝手にリンクされる。
- 632 名前:デフォルトの名無しさん [2006/07/02(日) 23:44:39 ]
- すごく初歩的なんですが
c言語を学校で習ってるんですが 家のPCでソース組むにはどうしたらいいでしょうか?
- 633 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 23:46:01 ]
- 答え:先生に聞く
はい次の方どうぞー
- 634 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 23:47:57 BE:359446098-#]
- >>632
メモ帳
- 635 名前:デフォルトの名無しさん [2006/07/02(日) 23:48:54 ]
- コンパイラがどれがいいのかわからなんです・・・・
- 636 名前:・∀・)っ-○◎● ◆toBASh.... [2006/07/02(日) 23:49:08 ]
- コンパイルまでやるなら
Visual C++ Express
- 637 名前:デフォルトの名無しさん [2006/07/02(日) 23:52:17 ]
- 学校じゃコマンドプロンプトでlcc ソース名でコンパイルできるんですが
- 638 名前:・∀・)っ-○◎● ◆toBASh.... [2006/07/02(日) 23:55:23 ]
- Visual C++ Expressならコマンドプロンプトから cl ソース名 でおk
- 639 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 23:59:08 ]
- >>632
コマンドプロンプトでnotepad[Enter]だ。
- 640 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 23:59:45 ]
- ttp://www.borland.com/jp/products/cbuilder/freecompiler.html
ttp://www.vector.co.jp/soft/win95/prog/se141451.html VC++ Expはダウソに時間が掛かるから、今すぐちゃちゃっとやるならこっつで
- 641 名前:・∀・)っ-○◎● ◆toBASh.... [2006/07/03(月) 00:05:42 ]
- lcc-win32も自分で環境変数通せばコマンドラインで使えそうだけどな
- 642 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 01:23:42 ]
- >>637
lccと言えば、LSI C-86のような気がする。 準備(インストール)はなれないと面倒かもしれないが、学校と同じというのは利点かもしれない。
- 643 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 02:02:18 ]
- 4つ程度なら、int WINAPI WinMain(HINSTANCE, HINSTANCE, PSTR, int)って1行でもいいけど、世の中にはもっといっぱい受け渡す関数もあるよ。
今更、lccって気もするなあ。 実務経験的に、gccかVCのインスコと環境構築方法も学習すべき。
- 644 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 07:34:30 ]
- lccと言ってもLSI-Cではないと思うけどね。
授業でLSI-C使っているならそれはそれで、よっぽど阿呆で楽しいが。
- 645 名前:仕様書無しさん [2006/07/03(月) 13:16:25 ]
- 配列でhoge[i*j]と*(hoge+i*j)はどちらがいいのでしょうか?
メリットなどがあれば教えてください 見やすいのはhoge[i*j]なのでこっちで書くほうが多いのですが
- 646 名前:デフォルトの名無しさん [2006/07/03(月) 13:34:54 ]
- >>645
a[i] は *(a + i) の略記法なんだからコンパイラにとってはどっちでも同じ。 見やすい方で書けばいい。
- 647 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 15:55:19 ]
- pow()や、malloc()は重い関数と聞いたのですが、
ではclock()は重い関数なのでしょうか。 というか、重い関数というのはどこでどうやって知るのでしょうか?
- 648 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 15:58:51 ]
- >>647
OSのソースを読むとか実際に測定してみるとか。
- 649 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 16:06:47 ]
- >>648
ということは重いかどうかというのは環境依存なんですね。 分かりました。どうもありがとうございます。
- 650 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 18:46:45 ]
- >>647
>というか、重い関数というのはどこでどうやって知るのでしょうか? というか、重い関数というのは何を基準に決めるのでしょうか?
- 651 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 19:14:34 ]
- 主観
- 652 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 21:21:28 ]
- 相対的なもんじゃね。
- 653 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 22:04:21 ]
- 他に手段があるならそれと較べて重い(≒遅い)か判断すればいいんじゃない?
pow()はpow(5, 2)と5*5を較べれば一目瞭然だし、malloc()の代わりにC99の可変長配列を使うとか、 malloc(100)を1万回の代わりにmalloc(100 * 10000)すればずっと早くなるわけだし。
- 654 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 23:06:35 ]
- 各辺が全て500以下であるようなピタゴラスの三整数を全て求めよ。
ただし、三重にネストしたforループを使う事。 #include<studio.h> main() { int x,y,z; for( z = 1, z <= 500 , z++ ){ for( x = 1, x <= 500 , x++ ){ for( y = 1, y <= 500 , y++){ if( pow(z,2) == pow(x,2) + pow(y,2 )) printf("%dの二乗は%dと%dの二乗の和に等しい\n",z,x,y);}}} return0; } 上記で合ってますか?
- 655 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 23:15:42 ]
- 宿題スレで会おう!
- 656 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 23:21:42 ]
- >>655
スマソ サンクス
- 657 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 01:57:58 ]
- ちょっと質問です。
a , b ? c , d : e , f; は a , (b ? (c , d) : e) , f; と同じでしょうか? あと、 a = b ? c = d : e = f; は a = (b ? (c = d) : (e = f)); ですか? どうも3項演算子の優先順位が今ひとつ…。 括弧つけろってのは別の話ということで、 よろしくお願いします。
- 658 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 02:11:37 ]
- www.google.co.jp/search?q=%E6%BC%94%E7%AE%97%E5%AD%90+%E5%84%AA%E5%85%88%E9%A0%86%E4%BD%8D
で、その式はコンパイル通るのか?
- 659 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 09:13:57 ]
- >>658
VC6で試したけどコンパイルは通りました。 たとえば条件演算子と、代入演算子やカンマ演算子は、条件演算子の方が優先順位の方が高いじゃないですか。 なら、そのまま解釈すると a = b ? c = d : e = f; は a = (b ? c) = (d : e) = f; a , b ? c , d : e , f; は a , (b ? c) , (d : e) , f; こうなっちゃいそうだけどそれじゃあ本当にコンパイルが通らないし、それで聞いてみたんです。 a , b ? c , d : e , f; これは、 (a , b) ? (c , d) : (e , f); こう括弧でくくってもコンパイル上は問題になりませんが、優先順位としては明らかにカンマの方が高くなっているから ありえない。実際動作もそうなってはいないようです。 で、演算子を解釈していくときのプロセスで、3項演算子だけは二項演算子とは違った特異な処理をしているんしょうか? ちょっと入門の質問じゃないかも知れないですが、どうも自分の考え方が理解の域に達していないので、初心者とし て質問させていただきました。 グーグル先生以外の人間の達人の方、出来ましたら演算子の解釈順序なんかをご教示くださいませんでしょうか。 よろしくお願い致します。
- 660 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 09:28:04 ]
- >>659
a = b ? c = d : e = f; は a = (b ? (c = d) : e) = f; a , b ? c , d : e , f; は a , (b ? (c , d) : e) , f; だ。 ? と : の間は分離なんかできるわけがないから、 ここは常に ? ... : は ? (...) : と同じになる。
- 661 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 10:12:54 ]
- >>660
どうもありがとうございます。ただ、まだちょっと納得いってません。aを除いて、 b ? c = d : e = f; これはご教示に従えば (b ? c = d : e) = f; こうなりますよね? ここで、bが偽なら 最初の括弧の中は (e) となって、 e = f が実行されますが、 b が真のとき、(c) = f が実行されないのでしょうか? (b ? c = d : e) = f; ↓ (c = d) = f; ↓ (c) = f; bが真のとき、実際に挙動を見てみると、 b ? (c = d) : (e = f); こうなっているように思えるのです。なので、 a = b ? c = d : e = f; このケースでも、bが真か偽かによって、 a の値が d か f のどちらかになります。
- 662 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 10:13:39 ]
-
改行が多いみたいで、上の続きです。 a = (b ? (c = d) : e) = f; a = b ? c = d : e = f; これはトレースすると、挙動が違うんです。もし手軽に試せる状況なら、 追試していただけないでしょうか? お手数ですが、よろしくお願い致します。
- 663 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 10:33:12 ]
- (b ? c = d : e) = f; ってコンパイル通るか?
三項演算子は左辺に置けないと思うんだけど。
- 664 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 11:11:47 ]
- ちと勘違いしてました。VC6でWinMainで試してました。
C++だと変数の参照を返すからコンパイル通るんだ…。 ここはC言語スレでしたかorz たしかにCだと b ? c = d : e = f; これは書けませんね。 ただ、演算子の優先順位というに点だけ着目すると、Cでは (b ? (c = d) : e) = f; こうなって左辺値に不適合でエラー C++だと b ? (c = d) : (e = f) このように実動作しているようです。直感的にはC++流の解釈の方が 素直な気がしますが、三項演算子の コロン以降だけを特別処理している 気がしてならない…。 スレ汚し失礼しました。C++スレに行って来ます。
- 665 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 11:13:34 ]
- 言語の優先順位に頼った可読性の悪いソース書くなよ。
括弧使え括弧。
- 666 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 11:24:20 ]
- >>665
ですので、最初に書いたとおりに、括弧をつけるのは別の話です。 コンパイラの式処理がどうなっているのか勉強しているので。
- 667 名前:初心者 [2006/07/06(木) 10:08:35 ]
- 初心者レスですよね?!心優しい皆さんよろしく!!
数列の長さを設定しました。 キーボードで文字を入力します。 入力した文字が設定した長さを超えるとごみが出て 次の入力を影響します。 設定した長さ以後のごみをメモリからとる方法は??
- 668 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 12:47:59 ]
- むり
- 669 名前:デフォルトの名無しさん [2006/07/06(木) 13:05:30 ]
- FreeBSDやMac OS Xならば、
fpurge(stdin) で入力バッファに入っている文字を落とせる。 これが無いとちょっと面倒だけど、とりあえず改行文字まで 落としたかったら while(getchar() != '¥n'); でいいんじゃない?
- 670 名前:初心者 [2006/07/06(木) 13:06:42 ]
- 何が無理?
- 671 名前:初心者 [2006/07/06(木) 13:13:37 ]
- >>669御免初心者なんで、FreeBSD<<わからない。
例として: #include <stdio.h> int main(void) { char gg[22],*gu; char hh[33],*jj; printf("数列入れて>\n"); fgets(gg,22,gu); printf("数列いれ>\n"); fgets(hh,33,jj); getc(stdin); } 数列を多い目に入れると、次の入力ができない。
- 672 名前:もはもは [2006/07/06(木) 13:14:46 ]
- HELPです!!!!!
1次元配列に 34 57 45 21 89 63 39 48 78 68 76 84 92 53 62 のデータをセットして、 これらの平均値を求めよ。 さらに int eval[3]という1次元配列を用意して eval[0] には0〜60の数の個数 eval[1]には61〜80の数の個数 eval[2]には81〜100の数の個数 を格納するようにし、それらを出力するプログラムを作成せよ。 よろしくお願いします。
- 673 名前:デフォルトの名無しさん [2006/07/06(木) 13:29:23 ]
- >>671
どうゆう入力を想定してるの?
- 674 名前:デフォルトの名無しさん [2006/07/06(木) 13:32:11 ]
- >>671
fgets(標準ライブラリのものと仮定)の使い方が間違ってる。 標準入力から入力して欲しいのなら、 fgets(gg, 22, stdin); fgets(hh, 33, stdin); のように書かなくては。
- 675 名前:初心者 [2006/07/06(木) 13:54:51 ]
- >>673
プログラムの一部なの。(全体は汚いプログラムなので見せない><) まぁ、かんたんに言えば、 キーボードから入れた文字を好きな所まで取り オーバーしたものは消す方法。 神様、私の願いを!!!
- 676 名前:デフォルトの名無しさん [2006/07/06(木) 14:09:56 ]
- 何が言いたいのかよくわからん。
Cより前に日本語をちゃんと勉強しろよ。
- 677 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 14:17:55 ]
- 留学生か?>初心者
- 678 名前:初心者 [2006/07/06(木) 14:22:39 ]
- 勉強中です><(怒らないで);
(本当に外国人です!!!日本語下手で御免なさい><); 会社からcを無理やり勉強させました。 お願いします。
- 679 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 14:27:35 ]
- english ok
- 680 名前:デフォルトの名無しさん [2006/07/06(木) 14:29:31 ]
- ・・・変数宣言って何・・・?
- 681 名前:初心者 [2006/07/06(木) 14:29:39 ]
- むり!韓国語なら>>
- 682 名前:初心者 [2006/07/06(木) 14:36:10 ]
- #include <stdio.h>
int main(void) { char gg[22],stdin; char hh[33],stdin; printf("数列入れて>\n");//ここに20文字以上入れるとおかしくなる fgets(gg,22,stdin); printf("数列いれ>\n"); fgets(hh,33,stdin); getc(stdin); }
- 683 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 14:51:10 ]
- >>682
おかしくなるのは仕様です。面倒ですが、次のように大きなバッファを用意して、 そこに一旦とりこむ必要があります。配列の大きさよりひとつ少なくしか使えないのは、 最後にヌル文字を入れる必要があるからです。 #include <stdio.h> #include <string.h> int main(void) { char buf[1024]; char gg[22]; char hh[33]; printf("数列入れて>\n"); fgets(buf, sizeof buf, stdin); buf[strlen(buf) - 1] = '\0'; memset(gg, '\0', sizeof gg); strncpy(gg, buf, sizeof gg - 1); printf("数列いれ>\n"); fgets(buf, sizeof buf, stdin); buf[strlen(buf) - 1] = '\0'; memset(hh, '\0', sizeof hh); strncpy(hh, buf, sizeof hh - 1); }
- 684 名前:初心者 [2006/07/06(木) 15:09:57 ]
- >>683
先に入れる所用意する事までは分かりました。 でもこれも限界がある(入力がbufの1024字超えれば)と思います。 (他にも使い所あるので><) butに無限入力できる方法ないかしら?? (どんな入力も対応できる方法) よろしくおねがいします。
- 685 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 15:13:22 ]
- ハードウェアのリソースが有限な以上
どんな入力にも対応するなんてのは無理。 そのために仕様が存在する。
- 686 名前:初心者 [2006/07/06(木) 15:20:06 ]
- >>685
そうなんですか!!!! 本当にありがとうございました。 はんぱな日本語で迷惑かけました>>礼>>
- 687 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 20:02:38 ]
- CとJavaで、初心者が学びやすいのはどちらでしょうか?
最初に学ぶのはどちらがいいのでしょう…? またCとJavaは数学的な要素(計算など)がどちらも必要になってくるのでしょうか。 返信お願い致します。
- 688 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 20:11:10 ]
- >>687
将来プログラミングで生計を立てたいのなら、まずCから。もちろんその後Javaもやる。 趣味でやるならどちらでも。Javaオンリーでもかまわない。
- 689 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 20:26:42 ]
- >>688
そうですか。 計算などが出てきてしまうと辛いのですが、両者とも計算式を 使ったりするのですか?
- 690 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 20:35:08 ]
- >>689
プログラミングでどのようなものをやるのかによる。 が、言語そのものの学習中にはほとんど出てこない。 数学的センスがあったほうが有利な場面があるかもしれないが。
- 691 名前:デフォルトの名無しさん [2006/07/06(木) 20:52:14 ]
- >>690
わかりました。ありがとうございます。
- 692 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:03:06 ]
- でも1 + 1やx + yもいわゆる計算式ではないだろうか。
- 693 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:05:18 ]
- >>692
ええ、計算式です。間違いなく計算をする数式です。
- 694 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:09:13 ]
- >>692、>>693
それはCとJavaの両方とも使うのですか? Cは関数を計算し求めると聞いたのですが、Javaもなのでしょうか。
- 695 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:12:42 ]
- >>694
その書き込み、本気なのか? だったら、プログラミングなど勉強するだけ無駄だからやめとけ。
- 696 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:18:31 ]
- 数学がさっぱりでもいいが、算数は必須。
- 697 名前:デフォルトの名無しさん [2006/07/06(木) 21:27:52 ]
- >>695
私情でやらざるを得ない状況になりましたので、今回[入門]とあったこちらで 質問致しました。 レス参考にさせて頂きます。ありがとうございました。
- 698 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:31:17 ]
- まずやってみたら?プログラミングがどんなことするか分かってない気がする
- 699 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:49:20 ]
- ここにもチョンが湧いてるのか。
ミサイル発射の謝罪と補償を要求する!
|

|