C言語なら俺に聞け(入門篇)
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/05/04(木) 08:53:09なんでもきいてよね
0002デフォルトの名無しさん
2006/05/04(木) 09:00:06で、何が聞きたいのか?
0003デフォルトの名無しさん
2006/05/04(木) 09:00:19漢字判定の仕方を教えてください
0004デフォルトの名無しさん
2006/05/04(木) 09:02:03http://pc8.2ch.net/test/read.cgi/tech/1143601166/750-751
00053
2006/05/04(木) 09:21:21ついでに>>4のリンクの内容・・・・
俺が書いたやつじゃねぇか
そんな俺の書き込みをダブルでみつけてくれた
>>4さん
つきあってください
0006デフォルトの名無しさん
2006/05/04(木) 10:43:57"美乳"+"化け"でぐぐってみなされ。
0007デフォルトの名無しさん
2006/05/04(木) 17:53:50文字化け防止になる文字列集ってどこかにあったね。
0009デフォルトの名無しさん
2006/05/06(土) 10:56:250010デフォルトの名無しさん
2006/05/06(土) 11:36:24精進されよ。
コード
http://dobon.net/vb/dotnet/string/detectcode.html
視覚
http://www.gprj.net/dev/tips/other/kanji.shtml
0011デフォルトの名無しさん
2006/05/06(土) 12:14:320012デフォルトの名無しさん
2006/05/06(土) 12:19:04圧縮します。
0013デフォルトの名無しさん
2006/05/06(土) 12:32:200014デフォルトの名無しさん
2006/05/06(土) 12:52:02ではそれらを講義して下さい
0015デフォルトの名無しさん
2006/05/06(土) 13:01:41NET上でまともな情報はZLIBのソースとドキュメントくらい。
0016デフォルトの名無しさん
2006/05/06(土) 23:22:31C言語覚えるとどんないいことがありますか。
ハッキングできんの?
(入門篇あったのか。まちがえた)
0017デフォルトの名無しさん
2006/05/06(土) 23:29:20何でも出来る
あえて言えば、C以外の言語を使わずにすむ
>>ハッキングできんの?
性格次第(Cに限る)
0018デフォルトの名無しさん
2006/05/07(日) 02:14:360019デフォルトの名無しさん
2006/05/07(日) 02:18:500020デフォルトの名無しさん
2006/05/07(日) 04:06:570021デフォルトの名無しさん
2006/05/07(日) 07:46:550022デフォルトの名無しさん
2006/05/07(日) 07:52:280023デフォルトの名無しさん
2006/05/07(日) 10:32:11プリプロセッサ、コンパイラ、リンカの三つを作ればいい
0024デフォルトの名無しさん
2006/05/07(日) 14:15:54簡単なのはcygwinインストールかな
あとはボーランドの無料c++コンバイラかな
c++はcの上位互換なのでcもコンバイル可能
0025デフォルトの名無しさん
2006/05/07(日) 15:29:43それは作ってないだろ
0026デフォルトの名無しさん
2006/05/07(日) 21:43:25何のこと?
0027デフォルトの名無しさん
2006/05/08(月) 01:42:16教えてくれた人ありがとうございます。
あとダウンロードする場所って教えてくれませんか?
ググって調べたのですがよくわからなくて超初心者ですいません
0028デフォルトの名無しさん
2006/05/08(月) 02:04:27Express版は無料で日本語対応しているし、マイクロソフト純正だ。
この板にもいくつかスレがあるから探すといい。
0029デフォルトの名無しさん
2006/05/08(月) 02:06:33やったのを思い出した。
003029
2006/05/08(月) 02:12:53Borland C++Compiler 5.5と
GUI開発環境のCPad for Borland C++Compilerいれるのが楽だと思った
0031デフォルトの名無しさん
2006/05/08(月) 02:35:04このマクロの機能って
SKIP(cp)を {while(isspace(*cp))cp++;}に置き換えるって意味ですけど
イマイチWhile部分がよくわからんです・・・
何か、式とか簡略化されてます?
どっちにしてもわからんですが・・・
0032デフォルトの名無しさん
2006/05/08(月) 02:43:00しかし、転置行列の作り方がわかりません。助けてください。
0033デフォルトの名無しさん
2006/05/08(月) 04:56:07*cpが空白文字ならcp++でループ。ポインタの意味は分かる?
0034デフォルトの名無しさん
2006/05/08(月) 07:55:14行列はどうやって実装してるの?
0035デフォルトの名無しさん
2006/05/08(月) 10:13:36Windows上で手にはいるフリーの開発環境のまとめサイト
http://freepg.fc2web.com/cpp/index.html
0036デフォルトの名無しさん
2006/05/08(月) 12:33:04ここの課題を解いてくれる神様はいませんか?
C言語初心者なのに情報系に入ってしまいました。
できれば、お奨めの参考書のようなものを教えていただければ幸いです。
ちなみにCの知識はゼロに等しいです。
0037デフォルトの名無しさん
2006/05/08(月) 12:34:56>>21は作り方を知りたいと仰っておられる。
「開発環境のインストール」と「開発環境の作り方」は別物だろう?
0038デフォルトの名無しさん
2006/05/08(月) 12:36:47宿題スレ行くよろし
0039初心者
2006/05/08(月) 21:05:13どこを探してもわからないので、質問させてもらっていいでしょうか
たとえばCの直下に
a1, a2, a3, …aXというフォルダがあって
そのなかにb1.text, b2.text, b3.text…bX.textというテキストファイルが格納されています。
各テキストには"SAMPLE"というキーワードがあって、
そのキーワードの次の行からN行のテキストを抜き出して
それぞれc1, c2, c3, …cXという新しいテキストファイルに書き出したいのですが
まったくわかりません。
とくに同じディレクトリ内のフォルダを順にめぐってある処理をさせるという方法が
どこにも書かれていないのですが、できないのでしょうか?
0040デフォルトの名無しさん
2006/05/08(月) 22:24:32Cの標準ライブラリにはファイルやフォルダを列挙するという操作を行う関数はない。
だから、自分の環境に合わせてWindowsの関数なりPOSIXの関数なりを使う必要がある。
つまりそれがわからないとアドバイスのしようが無い。
0041デフォルトの名無しさん
2006/05/08(月) 23:32:16お返事ありがとうございます。
C言語ではできないことがわかっただけでも良かったです。
windowsの関数やPOSIXの関数という意味もよくわからないので
はーって感じです。
仕事上で多くの人のデータを同じ計算(行列計算が主ですが)で処理をしないといけないので
データの入出力が一気にできないかと思って、コマンドプロントを触りかけたのがきっかけで
基礎はCだと思い勉強し始めたのですが、やはり素人なので入り方を間違えたようです。
このような場合はどのような言語をどういう順序で勉強したらよいかとか
基本的ですみませんが、もしよければ教えていただけないでしょうか
0042デフォルトの名無しさん
2006/05/08(月) 23:41:28まずは環境を書け。
話はそれからだ。
0043デフォルトの名無しさん
2006/05/09(火) 00:06:24素人なので的はずれかもしれませんが
Windows Xp でMinGWをインストールして使ってます。プログラムは普通のTeraPadなどで書いてます。
特別なものはとくに持ってません。
visual C++ 2005 Express Editionもインストールしましたがまだ使ってません。
0044デフォルトの名無しさん
2006/05/09(火) 00:13:56漏れならまず、フリーソフトで使えそうなものを探す。
大抵は一つでは済まないので、組み合わせて使えそうなものを探す。
後は、バッチ処理やスクリプトで何とかならないか考える。
Perl辺りを入れて使うのもいいかもしれない。
0045デフォルトの名無しさん
2006/05/09(火) 00:20:12他人のコンピュータでも使えることが多いし。
0046デフォルトの名無しさん
2006/05/09(火) 00:46:33ありがとうございます。VBScriptから勉強してみようと思います。
0047デフォルトの名無しさん
2006/05/09(火) 12:01:05cygwin入れて、Unix/Linuxのシェルスクリプトの本でも見ながらシェルでやるのがいい希ガス。
#ここだとスレ違いだけどシェルスクリプト相談室なんてのもあることだし。
0048デフォルトの名無しさん
2006/05/09(火) 20:56:13JavaとかPHPは遅いよ。orz
0049デフォルトの名無しさん
2006/05/09(火) 23:39:52C言語でサンドボックス入れて動くような環境?
んー。作っても遅いような気がするなあ。
0050デフォルトの名無しさん
2006/05/10(水) 09:00:42CでCGI書けばいいだけの話?
0051デフォルトの名無しさん
2006/05/10(水) 15:09:41書いていただけないでしょうかお願いします。
0052デフォルトの名無しさん
2006/05/10(水) 15:32:58Cのフレームワーク無いね。時代はJava。
遅いって? いいんだよ、速い鯖買わせる理由に成るじゃん。
0053デフォルトの名無しさん
2006/05/10(水) 15:42:16ノートにはアルゴリズム=最小単位 ;で区切る 「文」とあります
その前の問題がこんな問題だったので参考になるでしょうか?
変数を二つ以上宣言してそれぞれに自分の好きな値(ゼロではない)を代入し
ふたつの変数のビット演算子による結果を表示するプログラムを作る
int a;
int b;
a=?
b=?
0054デフォルトの名無しさん
2006/05/10(水) 22:23:06#include <stdio.h>
int main(void)
{
puts("10000以下の素数すべて");
return 0;
}
0055デフォルトの名無しさん
2006/05/10(水) 22:53:35" 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709"
" 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997 1009 1013 1019 1021 1031 1033 1039 1049 1051 1061 1063 1069 1087 1091 1093 1097 1103"
" 1109 1117 1123 1129 1151 1153 1163 1171 1181 1187 1193 1201 1213 1217 1223 1229 1231 1237 1249 1259 1277 1279 1283 1289 1291 1297 1301 1303 1307 1319 1321 1327 1361 1367 1373 1381 1399 1409 1423 1427 1429 1433 1439 1447 1451 1453 1459 1471 1481 1483"
" 1487 1489 1493 1499 1511 1523 1531 1543 1549 1553 1559 1567 1571 1579 1583 1597 1601 1607 1609 1613 1619 1621 1627 1637 1657 1663 1667 1669 1693 1697 1699 1709 1721 1723 1733 1741 1747 1753 1759 1777 1783 1787 1789 1801 1811 1823 1831 1847 1861 1867"
" 1871 1873 1877 1879 1889 1901 1907 1913 1931 1933 1949 1951 1973 1979 1987 1993 1997 1999 2003 2011 2017 2027 2029 2039 2053 2063 2069 2081 2083 2087 2089 2099 2111 2113 2129 2131 2137 2141 2143 2153 2161 2179 2203 2207 2213 2221 2237 2239 2243 2251"
" 2267 2269 2273 2281 2287 2293 2297 2309 2311 2333 2339 2341 2347 2351 2357 2371 2377 2381 2383 2389 2393 2399 2411 2417 2423 2437 2441 2447 2459 2467 2473 2477 2503 2521 2531 2539 2543 2549 2551 2557 2579 2591 2593 2609 2617 2621 2633 2647 2657 2659"
" 2663 2671 2677 2683 2687 2689 2693 2699 2707 2711 2713 2719 2729 2731 2741 2749 2753 2767 2777 2789 2791 2797 2801 2803 2819 2833 2837 2843 2851 2857 2861 2879 2887 2897 2903 2909 2917 2927 2939 2953 2957 2963 2969 2971 2999 3001"
/*
0056デフォルトの名無しさん
2006/05/10(水) 22:54:22" 3041 3049 3061 3067 3079 3083 3089 3109 3119 3121 3137 3163 3167 3169 3181 3187 3191 3203 3209 3217 3221 3229 3251 3253 3257 3259 3271 3299 3301 3307 3313 3319 3323 3329 3331 3343 3347 3359 3361 3371 3373 3389 3391 3407 3413 3433 3449 3457 3461 3463"
" 3467 3469 3491 3499 3511 3517 3527 3529 3533 3539 3541 3547 3557 3559 3571 3581 3583 3593 3607 3613 3617 3623 3631 3637 3643 3659 3671 3673 3677 3691 3697 3701 3709 3719 3727 3733 3739 3761 3767 3769 3779 3793 3797 3803 3821 3823 3833 3847 3851 3853"
" 3863 3877 3881 3889 3907 3911 3917 3919 3923 3929 3931 3943 3947 3967 3989 4001 4003 4007 4013 4019 4021 4027 4049 4051 4057 4073 4079 4091 4093 4099 4111 4127 4129 4133 4139 4153 4157 4159 4177 4201 4211 4217 4219 4229 4231 4241 4243 4253 4259 4261"
" 4271 4273 4283 4289 4297 4327 4337 4339 4349 4357 4363 4373 4391 4397 4409 4421 4423 4441 4447 4451 4457 4463 4481 4483 4493 4507 4513 4517 4519 4523 4547 4549 4561 4567 4583 4591 4597 4603 4621 4637 4639 4643 4649 4651 4657 4663 4673 4679 4691 4703"
" 4721 4723 4729 4733 4751 4759 4783 4787 4789 4793 4799 4801 4813 4817 4831 4861 4871 4877 4889 4903 4909 4919 4931 4933 4937 4943 4951 4957 4967 4969 4973 4987 4993 4999 5003 5009 5011 5021 5023 5039 5051 5059 5077 5081 5087 5099 5101 5107 5113 5119"
" 5147 5153 5167 5171 5179 5189 5197 5209 5227 5231 5233 5237 5261 5273 5279 5281 5297 5303 5309 5323 5333 5347 5351 5381 5387 5393 5399 5407 5413 5417 5419 5431 5437 5441 5443 5449 5471 5477 5479 5483 5501 5503 5507 5519 5521 5527 5531 5557 5563 5569"
" 5573 5581 5591 5623 5639 5641 5647 5651 5653 5657 5659 5669 5683 5689 5693 5701 5711 5717 5737 5741 5743 5749 5779 5783 5791 5801 5807 5813 5821 5827 5839 5843 5849 5851 5857 5861 5867 5869 5879 5881 5897 5903 5923 5927 5939 5953 5981 5987 6007 6011"
" 6029 6037 6043 6047 6053 6067 6073 6079 6089 6091 6101 6113 6121 6131 6133 6143 6151 6163 6173 6197 6199 6203 6211 6217 6221 6229 6247 6257 6263 6269 6271 6277 6287 6299 6301 6311 6317 6323"
/*
0057デフォルトの名無しさん
2006/05/10(水) 22:54:56" 6427 6449 6451 6469 6473 6481 6491 6521 6529 6547 6551 6553 6563 6569 6571 6577 6581 6599 6607 6619 6637 6653 6659 6661 6673 6679 6689 6691 6701 6703 6709 6719 6733 6737 6761 6763 6779 6781 6791 6793 6803 6823 6827 6829 6833 6841 6857 6863 6869 6871"
" 6883 6899 6907 6911 6917 6947 6949 6959 6961 6967 6971 6977 6983 6991 6997 7001 7013 7019 7027 7039 7043 7057 7069 7079 7103 7109 7121 7127 7129 7151 7159 7177 7187 7193 7207 7211 7213 7219 7229 7237 7243 7247 7253 7283 7297 7307 7309 7321 7331 7333"
" 7349 7351 7369 7393 7411 7417 7433 7451 7457 7459 7477 7481 7487 7489 7499 7507 7517 7523 7529 7537 7541 7547 7549 7559 7561 7573 7577 7583 7589 7591 7603 7607 7621 7639 7643 7649 7669 7673 7681 7687 7691 7699 7703 7717 7723 7727 7741 7753 7757 7759"
" 7789 7793 7817 7823 7829 7841 7853 7867 7873 7877 7879 7883 7901 7907 7919 7927 7933 7937 7949 7951 7963 7993 8009 8011 8017 8039 8053 8059 8069 8081 8087 8089 8093 8101 8111 8117 8123 8147 8161 8167 8171 8179 8191 8209 8219 8221 8231 8233 8237 8243"
" 8263 8269 8273 8287 8291 8293 8297 8311 8317 8329 8353 8363 8369 8377 8387 8389 8419 8423 8429 8431 8443 8447 8461 8467 8501 8513 8521 8527 8537 8539 8543 8563 8573 8581 8597 8599 8609 8623 8627 8629 8641 8647 8663 8669 8677 8681 8689 8693 8699 8707"
" 8713 8719 8731 8737 8741 8747 8753 8761 8779 8783 8803 8807 8819 8821 8831 8837 8839 8849 8861 8863 8867 8887 8893 8923 8929 8933 8941 8951 8963 8969 8971 8999 9001 9007 9011 9013 9029 9041 9043 9049 9059 9067 9091 9103 9109 9127 9133 9137 9151 9157"
" 9161 9173 9181 9187 9199 9203 9209 9221 9227 9239 9241 9257 9277 9281 9283 9293 9311 9319 9323 9337 9341 9343 9349 9371 9377 9391 9397 9403 9413 9419 9421 9431 9433 9437 9439 9461 9463 9467 9473 9479 9491 9497 9511 9521 9533 9539 9547 9551 9587 9601"
" 9613 9619 9623 9629 9631 9643 9649 9661 9677 9679 9689 9697 9719 9721 9733 9739 9743 9749 9767 9769 9781 9787 9791 9803 9811 9817 9829 9833 9839 9851 9857"
/*
0058デフォルトの名無しさん
2006/05/10(水) 22:55:310059デフォルトの名無しさん
2006/05/10(水) 23:18:060060デフォルトの名無しさん
2006/05/10(水) 23:20:46その手間よりはきっと分割する手間のほうが掛かったに違いないw
#しかも律儀に切れ目がコメントになってるし。
0061デフォルトの名無しさん
2006/05/11(木) 01:39:53おまいの単位が取れなくてもちっとも痛くないからねえ。
同じクラスの香具師に学食でもおごって宿題写させてもらったほうがいいよ。
0062デフォルトの名無しさん
2006/05/11(木) 02:15:13http://pc8.2ch.net/test/read.cgi/tech/1146323457/l50
0063デフォルトの名無しさん
2006/05/24(水) 23:55:43int main(void)
{
int i,j;
for(j=2;j<=10000;j++){
for(i=2;i<=j;i++){
if(i==j){
printf("%d\n",j);
}else if((j%i) == 0){
break;
}
}
}
return 0;
}
0064デフォルトの名無しさん
2006/05/28(日) 19:25:29void main(void)
{
{
int hoge;
}
}
0065デフォルトの名無しさん
2006/05/28(日) 19:34:43そう
0067デフォルトの名無しさん
2006/05/28(日) 21:09:50僕まだ始めたばっかりなんですけど、そういう場合の取っ掛かりがつかめないというか、
どういう風に書いていけばいいのか、全く頭に思い浮かばないんです。
まだ配列を習っているくらいなんですけど、
慣れていくに従って、そういうのは段々できていくものなんでしょうか?
0068デフォルトの名無しさん
2006/05/28(日) 21:18:03あまりに僕がやってる課題とレベルが違いすぎて唖然としてるんですが。
0069デフォルトの名無しさん
2006/05/29(月) 04:06:240070デフォルトの名無しさん
2006/05/29(月) 08:15:54まだ異性とつき合ったこと無ければ、AとBも勉強してくれ。
0071デフォルトの名無しさん
2006/05/29(月) 10:46:37> プログラミングって、何をつくるか頭で考えて作り始めますよね。
いいえ。
まず、何をつくるか頭で考えた後、
要求仕様をまとめ、概要設計を行い、詳細設計を行った後に作り始めます。
0072デフォルトの名無しさん
2006/05/29(月) 10:58:16という処理を見かけたのですが、意味を教えてください。
そもそもvoidへのポインタとは何を意味するのでしょうか?
0073デフォルトの名無しさん
2006/05/29(月) 12:29:43「void *」にキャストした-1を呼び元に返す。
> そもそもvoidへのポインタとは何を意味するのでしょうか?
どんなポインタ型にもキャスト可能な汎用ポインタ
0074デフォルトの名無しさん
2006/05/29(月) 15:02:08-1というのはおそらくヌルポインタ以外で何か有効なポインタでないことを意味させたいのだと思う。
0075デフォルトの名無しさん
2006/05/29(月) 17:49:50コード:
goto *JumpTable[Opcode];
エラーの内容:
error C2059: 構文エラー : '*'
GCC等ではOKぽいのですが、VCでコンパイルする方法は無いのでしょうか?
0076デフォルトの名無しさん
2006/05/29(月) 17:58:07*(JumpTable)
0077デフォルトの名無しさん
2006/05/29(月) 18:52:59変数の中身を使えるのはGCC独自拡張のはず。
0078デフォルトの名無しさん
2006/05/29(月) 19:51:58その文字列の大文字を出力するプログラムを作ってください。
お願いします。scanf関数を使ってください。
0079デフォルトの名無しさん
2006/05/29(月) 20:15:47氏ね。
0080デフォルトの名無しさん
2006/05/29(月) 20:20:50if(標準入力がaならば)puts("A");をZまででOK
0081デフォルトの名無しさん
2006/05/29(月) 20:26:24#include <stdio.h>
int main() {
int i=0; char s[100];
printf("英小文字だけを入力してください:\n");
fgets(s,sizeof(s),stdin);
for(;s[i];)i++[s]&=0xdf;printf("%s",s);
printf("Enterを押してください.\n");
scanf("%*[^\n]%*c");
return 0;}
0082デフォルトの名無しさん
2006/05/29(月) 20:35:51scanf,printfだけでお願いできますか?
0083デフォルトの名無しさん
2006/05/29(月) 20:42:52#include <ctype.h>
int main() {
int i = 0;
char s[100];
puts("英小文字だけを入力してください:");
fscanf("%99s", s);
for (; s[i]; ++i)
s[i] = toupper(s[i]);
puts(s);
return 0;
}
次から宿題スレへ行け。
0084デフォルトの名無しさん
2006/05/29(月) 20:51:30分かりません。あと、宿題スレの人はscanfは分からないって。。。
0085デフォルトの名無しさん
2006/05/29(月) 20:55:24ありがとうございます。
理解しました^^;。
0086デフォルトの名無しさん
2006/05/29(月) 21:01:27宿題は自分でやりましょう。分からない所だけ聞きましょう。講義でアスキーコードやったでしょう。
0087デフォルトの名無しさん
2006/05/29(月) 22:34:44int main(void){
char s[10];
printf("小英字列=");
scanf("%d",s);
printf("大英字列=%s\n",s);
return 0;
}
実行結果を abcdef
ABCDEF
にしたいんですけどどこが間違ってますか?
0088デフォルトの名無しさん
2006/05/29(月) 22:37:150089デフォルトの名無しさん
2006/05/29(月) 22:49:470090デフォルトの名無しさん
2006/05/29(月) 22:50:37#include <string.h>
int main(void){
char s[10];
int i;
printf("小英字列=");
scanf("%s",s);
for(i =0; i<(int)strlen(s);i++)
{
s[i] = s[i] - 0x20;
}
printf("大英字列=%s\n",s);
return 0;
}
間違いを指摘するのは面倒なので
これで納得しろ
0091デフォルトの名無しさん
2006/05/29(月) 22:54:48{
s[i] = s[i] - 0x20;
↑は習ってないんで、無しでお願いできますか?
0092デフォルトの名無しさん
2006/05/29(月) 23:00:010093デフォルトの名無しさん
2006/05/29(月) 23:08:13とりあえず32に書き換えとけ
または
0x20 = ('a' - 'A')
でもOK
0094デフォルトの名無しさん
2006/05/29(月) 23:08:300095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
2006/05/29(月) 23:10:43forはどうにかなりませんかね?
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
2006/05/29(月) 23:12:38forのなにをどうにかすりゃ良いんだよ。
0099デフォルトの名無しさん
2006/05/29(月) 23:15:33変えてほしいなと思って(;^ω^)
0100デフォルトの名無しさん
2006/05/29(月) 23:16:55まず文字には文字コード体系ってのがある
で、小文字のaは数字に直すと0x61
で、0xって数字の前につけると「これは16進数の61ですよ」
って事を表してる。
そんで、大文字のAは0x41にあたる。
だから大文字のAと小文字のaの差は数値で言えば
0x61-0x41=0x20となる。
と言うことは小文字のaから0x20を引いたら大文字のAとなる
逆に大文字のAに0x20を足したら小文字のaとなる。
なんで16進数を使うかというと文字コードの表が大抵16進数
で書いてるから。だから別に16進数の20を10進数に直した
32と言う数字を使いたいなら使っても問題なし。
90で書いたソースのs[i] = s[i] -0x20をs[i] = s[i] - 60
にしてもOKだ。
これで納得したか?まだたりぬか?
どうなんだゴリャ!!
0101100
2006/05/29(月) 23:18:35だ!!
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
2006/05/29(月) 23:19:140104100
2006/05/29(月) 23:20:17配列に関して習ってないことがあるのか?
0105デフォルトの名無しさん
2006/05/29(月) 23:20:560106デフォルトの名無しさん
2006/05/29(月) 23:21:35他に何を習ったか言ってもらわないと書きようがない罠。
0107デフォルトの名無しさん
2006/05/29(月) 23:24:080108デフォルトの名無しさん
2006/05/29(月) 23:27:50これではダメなんですよね?
0109デフォルトの名無しさん
2006/05/29(月) 23:29:440110デフォルトの名無しさん
2006/05/29(月) 23:31:21int main(void){
char s[10];
printf("小英字列=");
scanf("%d",s);
printf("大英字列=%s\n",s−32);
return 0;
}
じゃ駄目?
0111デフォルトの名無しさん
NGNG↓とか、実行したら違いがわかるかも。
char s[100];
scanf("%s", s);
printf("%d\n", sizeof s / sizeof s[0]);
printf("%d\n", streln(s));
0112デフォルトの名無しさん
2006/05/29(月) 23:32:380113デフォルトの名無しさん
NGNGだめだねぇ。
ループで回して、一文字ずつ処理しないと。
0114デフォルトの名無しさん
2006/05/29(月) 23:33:520115デフォルトの名無しさん
NGNG#include <stdio.h>
#include <ctype.h>
int main(void){
char s[10];
printf("小英字列=");
scanf("%d",s);
s[0] = toupper(s[0]);
s[1] = toupper(s[1]);
s[2] = toupper(s[2]);
s[3] = toupper(s[3]);
s[4] = toupper(s[4]);
s[5] = toupper(s[5]);
s[6] = toupper(s[6]);
s[7] = toupper(s[7]);
s[8] = toupper(s[8]);
s[9] = toupper(s[9]);
printf("大英字列=%s\n",s);
return 0;
}
0116デフォルトの名無しさん
2006/05/29(月) 23:40:01できる問題なのか不安だお(;^ω^)
0117デフォルトの名無しさん
2006/05/29(月) 23:41:37どういったアルゴリズムなのか考える努力を。
0118デフォルトの名無しさん
2006/05/29(月) 23:44:13あるから課題としては評価されないお。やばいお(’ω‘)
0119デフォルトの名無しさん
NGNG0120100
2006/05/29(月) 23:47:05まず最初の処理として左端の式を評価するi=0だからint型のiに0を代入。
この式を評価するのは最初だけ。
次にi<(int)strlen(s)の処理に移る。i<(int)strlen(s)が成り立つならfor文内
の処理をする。
でstrlen()という関数は文字列の先頭アドレスを引数に取り戻り値として
文字列の最後の'\0'を含まないだけの文字の数を返す。
で、strlen(s)のsっていうのは文字列の入った配列s[10]の先頭アドレスを意味する
なぜっていわれてもそうなんだから仕方がない。
アドレスなら&がいるんじゃないか?と思うなら&s[0]としても良い。
&s[0] == sって解釈しても、まぁ.......OK!!
で(int)ってついてるのは本来strlenの戻り値はsize_t。
size_tってのは、unsigned int型。なので一応そのままでも良いけど
(int)をつける。これをつけると言うことは戻り値の値をint型にキャストするということ。
キャストとは、値の型を変換する事。
で、i<(int)strlen(s)は、結局sの文字列の長さ('\0'を省いた)よりiの初期値は0
のため成り立つ事が確認される成り立っているので、for文内の処理に以降。
for文内の処理が終わると次のi++に移るi++はiに1足すって事。
で、iに1足した後、i<(int)strlen(s)の評価に移る。で最終的に文字列の長さ
より、iが数値的に超えたら、for文の処理を行わず。for文を抜け出る。
0121デフォルトの名無しさん
2006/05/29(月) 23:48:160122デフォルトの名無しさん
2006/05/29(月) 23:48:38int main(void){
int s;
printf("小英字列=");
scanf("%x",&s);
printf("大英字列=%X\n",s);
return 0;
}
>>87の指定通りにabcdefという入力にはABCDEFを返すぜひゃっほー。
0123100
2006/05/29(月) 23:49:04俺の書いてることってあってるのか?
0124デフォルトの名無しさん
2006/05/29(月) 23:53:190125デフォルトの名無しさん
NGNG天才じゃね?
0126デフォルトの名無しさん
2006/05/29(月) 23:57:330127デフォルトの名無しさん
2006/05/29(月) 23:58:10> a.exe
> beaf
> BEAF
>
> a.exe
> dead
> DEAD
おーちゃんと動いてるー
0128七氏
2006/05/30(火) 00:02:13カラー画像→グレー画像
に変換する方法なら書いてあるのですが
グレー画像→カラー画像
に変換する方法がわかりません
どなたかわかる方教えてもらえませんか
参考にしているサイトは http://www-06.ibm.com/jp/developerworks/linux/020802/j_l-libtiff2.html
ですよろしくお願いします
違うとこにも書き込んだのですが不安なので教えてください
0129100
2006/05/30(火) 00:02:26VS2005stdがおかしいのか?
ま、いいや、そんなトリッキーな事することねーし
0130デフォルトの名無しさん
2006/05/30(火) 00:03:14ちゃんと動くから自信を持って提出するお(^ω^)
0131デフォルトの名無しさん
NGNGフツーに考えて、グレーからカラーはムリだろ。
それともファイルのどっかにカラー情報が残されてるのか?
0132七氏
2006/05/30(火) 00:09:39G3→G4に変換したいんですが
やっぱり無理なんですかね?
カラー情報が仮にノここされていたら可能ですか?
0133デフォルトの名無しさん
2006/05/30(火) 00:13:05単なるTiffの画像形式の変換と言えばいいことだ。
しかし、マルチに答える気はないので詳細は割愛。
0134七氏
2006/05/30(火) 00:18:13そういえばよかったです言葉たらですみません
教えてもらえませんか?
0135デフォルトの名無しさん
2006/05/30(火) 01:47:53テキストファイルを開いて、文字コードを判別し、その文字コードを使って文字列を表示するというプログラムを作りたいんですが、どうすればいいんでしょうか?
0136135
2006/05/30(火) 01:54:330137デフォルトの名無しさん
2006/05/30(火) 02:00:32そうです
0138135
2006/05/30(火) 02:07:21なるほどです。という事はコンパイラーが処理するコードの形式に変換すればいいんですね?
0139デフォルトの名無しさん
2006/05/30(火) 02:10:04コンパイラが処理できるコードに変換するのではなくて、
最終的に表示を行うシェル(Windowsで言えばコマンドプロンプト)の文字コードに合わせる。
0140135
2006/05/30(火) 02:25:55わかりました。ありがとうございました。
0141デフォルトの名無しさん
2006/05/30(火) 03:32:190142デフォルトの名無しさん
2006/05/30(火) 04:31:59http://pc8.2ch.net/test/read.cgi/tech/1146122168/
0144デフォルトの名無しさん
2006/05/30(火) 23:51:05書きやすいとかあるのかな?
0145デフォルトの名無しさん
2006/05/31(水) 00:19:27つ ttp://search.vector.co.jp/search?query=Cpad
0146デフォルトの名無しさん
2006/05/31(水) 00:48:04求め、2ならば円の面積を求めるものである。
/***cex2106.c***/
/*分岐プログラム*/
/* switch〜case 文*/
/************/
#include <stdio.h>
main()
{
int a;
float r,l,s,pai;
pai=3.14159;
printf(
0147デフォルトの名無しさん
2006/05/31(水) 00:51:44それとも、アルゴリズムを学んだ後に何かを作るのがいいの?
0148デフォルトの名無しさん
2006/05/31(水) 01:16:14単純なソースの記述からはじめた方が良い。
何かを作る際は、全体の構図をしっかり理解して、その一部に
取り込むべきものを取り込む。取り込まれたものが何なのか?なんて
複雑な構造から一部を理解しようってのは初心者には向かないかと。
0149デフォルトの名無しさん
2006/05/31(水) 01:54:11#include<stdio.h>
#include<math.h>
main(){
int x, y;
double K, temp, pi, s;
printf(
0150149
2006/05/31(水) 01:58:46#include<stdio.h>
#include<math.h>
main(){
int x, y;
double K, temp, pi, s;
printf("x座標を入れてください");
scanf("%d",&x);
printf("y座標を入れてください");
scanf("%d",&y);
temp = x*x+y*y;
K = sqrt(temp);
pi = 3.1416;
s = K*K*pi;
printf("円の面積は%f平方センチメートルです\n",s);
}
って打って
0151149
2006/05/31(水) 02:01:43/tmp/ccuVKbmu.o(.text+0xa7): In function `main':
menseki.c: undefined reference to `sqrt'
collect2: ld はステータス 1 で終了しました
ってエラーが出るし・・・
0152デフォルトの名無しさん
2006/05/31(水) 02:07:24y座標を入れてください3
円の面積は56.548800平方センチメートルです
Borland C++ではコンパイルできて、試しにxとyに3を入れて出したんだが
座標から面積を求めるって・・・
0153デフォルトの名無しさん
2006/05/31(水) 02:08:56-lm 付けずにコンパイルしてました。
なんて冗談は言わないよな?
0154デフォルトの名無しさん
2006/05/31(水) 02:11:07>>148さんの言うとおり
ソートでも、探索でも、単純なソースを見てそのやりかたを
知れば、「これをこういう風にしたらこういう風になるな」ってな感じで
考えられる。でも、ネット上で、単純なソースって意外と見つからない。
理屈は書いてあっても、肝心のソースがなかったり。
かといって、アルゴリズム辞典買っても、「あぁ、もう訳わかんない」
ってなるのがたまにきづ。
でも、ネット上にも簡単な例が載ってるページがあったりする。
URL教えれ、って言われてもブックマークしてないから教えれないけど。
ま、こんな偉そうなことを言ってる俺も、ソートなり探索なりその他の
アルゴリズム等、使わないからすぐ忘れる。
だから、一度知ったアルゴリズムは、忘れそうな頃にもういっぺん
復習みたいにした方が良いみたい。
じゃないと、俺みたいに「ああ、あれね、もう忘れた」ってな感じに
なっちゃうよ。
0155デフォルトの名無しさん
2006/05/31(水) 02:52:47ありがとー
0156デフォルトの名無しさん
2006/05/31(水) 12:07:17たとえば
int a[3] = { 1, 2, 3 }
int b[2] = { 4, 5 }
としたときに
int c[5] = { 1, 2, 3, 4, 5 }
という配列を作りたいのです。
0157デフォルトの名無しさん
2006/05/31(水) 12:12:57それって単に配列aの後ろにbを付け足したってだけだよね?
だったら単純にaの先頭から順番に続けてbの先頭の値を
配列cに入れていけば良いだけでは?
0158デフォルトの名無しさん
2006/05/31(水) 12:22:42int i=j=0;
for(;i<=((sizeof(a)/sizeof(a[0]))+(sizeof(b)/sizoof(b)));i++){
if(a)c[i]=a[i];
else c[i]=b[j++];
}
俺って天才だよね┐(´ー`)┌
0159デフォルトの名無しさん
2006/05/31(水) 12:28:40memcpy(c, a, sizeof(a));
memcpy(c+sizeof(a)/sizeof(a[0]), b, sizeof(b));
0160デフォルトの名無しさん
2006/05/31(水) 12:45:49Cで配列を足しあわせるのって難しいんですね。
char型の配列だとstrcatで連結できるけどint型で使おうとするとエラー吐かれるし
perlみたいに
@c = (@a , @b)
こんな記述も使えないし,どう書くのかなと。
どうもありがとうございました
0161デフォルトの名無しさん
2006/05/31(水) 12:53:31> char型の配列だとstrcatで連結できるけど
配列の中身が文字列じゃない限りそんなことはやっちゃいかん
0162デフォルトの名無しさん
2006/05/31(水) 13:35:35forの行に間違いが二つ。その次の行に間違いが一つ。
天才っていうより、天災?
>>159
2番目のmemcpy()に間違いが一つ。
0163デフォルトの名無しさん
2006/05/31(水) 13:45:52どこ?
0165デフォルトの名無しさん
2006/05/31(水) 17:04:17構造体の変数に列挙型使えますか?
struct test{
enum tag{sun, mon, tue} week;
};
test.week = sun;
みたいな感じで
0166デフォルトの名無しさん
2006/05/31(水) 17:05:38なぜ人に聞く前に自分で試して見ないのか。
結論を言ってしまえばできるけど。
0167デフォルトの名無しさん
2006/05/31(水) 17:09:06ありがとうございますです。
0168デフォルトの名無しさん
2006/05/31(水) 18:25:12c[]のメモリはどこに確保されているの?
0169デフォルトの名無しさん
2006/05/31(水) 18:38:240170デフォルトの名無しさん
2006/05/31(水) 19:56:55int c[] = {a[0], a[1], a[2], b[0], b[1]};
0173デフォルトの名無しさん
2006/05/31(水) 21:16:160174デフォルトの名無しさん
2006/05/31(水) 21:28:03図書館かどこかでANSI C言語辞典を探して
printf関数の定義例をコピーする、というんじゃだめなの?
0175デフォルトの名無しさん
2006/05/31(水) 22:21:26ポインタからメンバ変数を取り出すのに使う -> って、いらなくね?
ポインタだろうがそうでなかろうが . でいいじゃん。
わざわざ人間が指定してやる必要ないじゃん。
だって、コンパイラは変数がポインタかどうか分かってるのだから、
勝手に解析してくれればいいのだと思うのだよ
0176デフォルトの名無しさん
2006/05/31(水) 23:11:340178デフォルトの名無しさん
2006/05/31(水) 23:19:47初心者はそれで構造体の変数と構造体へのポインタを混同しそうだから、
今の区別する仕様でいいと俺は思う。
そういえばDはどっちも . でいけるとアピールしていたような気がしなくもない。
0179デフォルトの名無しさん
2006/06/01(木) 00:13:58たしかにそうなんだけどさ、
-> はポインタ演算 (*p). の糖衣構文として追加された経緯があって、
既存のコンパイラをあんまりいじくらずにいけるようにしたかったんだよ。
0180デフォルトの名無しさん
2006/06/01(木) 00:21:30いざ機械語になったときのコードが.と->でかなり違ってくる。.*と->*になればなおさら。
ま、コンパイラがちゃんと解析すりゃいいじゃん、ってのは、そうなんだけどね。
0181179-180
2006/06/01(木) 01:14:220182デフォルトの名無しさん
NGNGそもそも同じところが見つからない。
0183デフォルトの名無しさん
2006/06/01(木) 11:37:03prog.exe para1 para2
のように引数を与えたいプログラムを作るときに、
デバッグ時に、以下のように、自分でargcやargvに直接値を代入しても問題ないですか?
実は、他の人がこのようにしているのを見たので、自分でもまねしてみたのですが、
VC.NETだと、問題なく動いているのですが、正しいのか間違っているのかよくわかりません。
main(int argc, char *argv[])
{
argc = 3;
argv[0] = "prog.exe";
argv[1] = "para1";
argv[2] = "para2";
・・・
・・・
・・・
}
0184デフォルトの名無しさん
2006/06/01(木) 11:40:27ダメ
0185デフォルトの名無しさん
2006/06/01(木) 11:56:47判る方、いらっしゃいましたら教えて下さい!!
数字を10文字まで表示させて10文字表示して何かキーを押したら
11〜20までを新しいページで表示させたいんです。
これはVC++で出来ますか?
0186デフォルトの名無しさん
NGNGargv=(char**)mallock(sizeof(char*)*3);
とでもしておけばとりあえず危険はない。
0187デフォルトの名無しさん
NGNG「表示」の具体的な内容(デバイスとかフォントとか大きさとかタイミングとか)とか
「ページ」が何を指しているのかとかが全然分からんが、それらがPCで制御できる
状態にあるならば、VC++でできるかどうかという問いには「できる」としか答えられない。
0188デフォルトの名無しさん
2006/06/01(木) 12:22:230189デフォルトの名無しさん
2006/06/01(木) 12:37:57> argc = 3;
> argv[0] = "prog.exe";
この二行は問題ない。
> argv[1] = "para1";
> argv[2] = "para2";
これは、問題有り。
不正な領域への書き込みとなる。
0190185
2006/06/01(木) 13:15:37回答有難う御座います。
言葉足らずで申し訳ありません;;
1 11
2 12
3 13
4 14
5 ⇒何か押す⇒ 15
6 16
7 17
8 18
9 19
10 20
と表示したいんです。
(数字は固定値じゃなくて任意で入力された文字)
これじゃぁ、まだ判り辛いですか?
初心者で申し訳ないです;;上手く言葉に出来ないです(;´Д`)
0191デフォルトの名無しさん
NGNGやりたいことは分かったが、お前が何を知りたいのかが分からない。
0192185
2006/06/01(木) 14:05:30190で言ったように表示できるソースを書きたいんですが・・・
10コ表示したら改ページみたいなのをfor文とかで回せば良いのですか?
0193デフォルトの名無しさん
2006/06/01(木) 14:09:59コンソールAPI ってのを使う。
0194デフォルトの名無しさん
2006/06/01(木) 14:10:57>186
>189
ありがとございました。
そうすると、こういう場合(つまりデバッグ作業をしているときには
とりあえずソースコードの中で固定の引数を与えたい場合は)、何か良いテクニックみたいなの
ありますか?
0195デフォルトの名無しさん
2006/06/01(木) 14:14:58VCのデバッガなら、コマンドラインから与える引数の設定ができるよ。
他のデバッガにもそういう機能があるんじゃない?
0196デフォルトの名無しさん
NGNGforでもwhileでも好きなようにループ汁。
0197デフォルトの名無しさん
2006/06/01(木) 14:51:35俺だったらそういうデバッグの時はシェルスクリプト
(Windowsならバッチファイル) 作っちゃうな。
そうすればそこで引数変えられるから。
0198デフォルトの名無しさん
2006/06/01(木) 16:51:07if(i == 5)
{
printf("Hello!");
}
1から100まで既に入力されていて
表示をする時に5件ごとにHello!!と表示させたいのですが、
上の書き方だと5件目の時のみにしかHello!!とつきません。
5件ごとにHello!!とつけるにはどうしたらいいですか?
0199デフォルトの名無しさん
2006/06/01(木) 16:52:34計算すりゃいい。
5で割ったあまりが0かどうかで判定すればいいんじゃないか?
(i%5)==0とか。
0200デフォルトの名無しさん
2006/06/01(木) 17:12:11198です!出来ました!!
有難う御座いました!!!
0201デフォルトの名無しさん
2006/06/01(木) 17:38:170202デフォルトの名無しさん
2006/06/01(木) 17:46:19VC使っていますが、コマンドラインから与える引数をデバッガで与えられるというのは、
先ほど見つけました。VC3年使っていて今まで知らなかったです。ありがとうございました。
>197
私は、DOSの画面を出しておいて、VCでビルドしたあと、DOSの画面で引数与えて実行
するという初歩的な方法でやっています。
ところで、
186さんに教えていただいた以下の方法ですが、
argv=(char**)mallock(sizeof(char*)*3);
とでもしておけばとりあえず危険はない。
この方法でも完全ではないということでしょうか?
こうやって領域を確保しておけば問題ないように思うのですが。
0203デフォルトの名無しさん
2006/06/01(木) 17:49:36算数の問題だと思うが?
0204デフォルトの名無しさん
2006/06/01(木) 17:52:57とりあえず、意味をよく理解した上で使う分には問題ない。
しかし、意味を理解せずに使用すると、
後々に問題が出てくることになると思われ。
0205デフォルトの名無しさん
NGNGちょっとtypo。
argv=(char**)malloc(sizeof(char*)*3); の意味が分かってて、リリース時に間違いなく
消えて無くなるなら問題ないかと。
0206デフォルトの名無しさん
2006/06/01(木) 18:28:58こんな風に書いておけばいいんじゃないの?
int main(int a, char *av[])
{
char *argv[] = {a[0], "para1", "para2", NULL};
int argc = 3;
}
で、リリース時に a, av を argc, argv に書き換える。
0207デフォルトの名無しさん
2006/06/01(木) 18:29:34まあいいや適当に読みかえて。
0208デフォルトの名無しさん
NGNG~~~~~
初期化子に変数は使えない。
0209デフォルトの名無しさん
2006/06/01(木) 18:58:25staticじゃなければOKのはず
0210デフォルトの名無しさん
2006/06/01(木) 19:27:46とりあえず gcc ではこれは動いた。
#include <stdio.h>
int main(int a, char *av[])
{
char *argv[] = {av[0], "para1", "para2", NULL};
int argc = sizeof(argv) / sizeof(*argv) - 1;
int i;
printf("%d\n", argc);
for (i = 0; i < argc; i++)
printf("%d: %s\n", i, argv[i]);
return 0;
}
実行結果
3
0: ./a.out
1: para1
2: para2
0211デフォルトの名無しさん
2006/06/01(木) 19:33:52> constant expressions or string literals.
としか書かれてないからな。
0212デフォルトの名無しさん
2006/06/01(木) 20:36:04コンパイラってどこで仕入れるといいんですか?
0213デフォルトの名無しさん
2006/06/01(木) 20:46:24仕入れということはその後自分の店で売るということですか?
0214デフォルトの名無しさん
2006/06/01(木) 21:05:52まったく問題ない。
>>211
expression の定義参照。
0215デフォルトの名無しさん
2006/06/02(金) 01:29:550216デフォルトの名無しさん
2006/06/02(金) 02:21:27char *b = "hoge"
とあるときに
char *c = "100hoge"
という文字列を*cに入れたいのですがどうすればよいでしょうか・・
0217デフォルトの名無しさん
2006/06/02(金) 02:24:04sprintf(buf, "%x%s", a, b);
c = buf;
0218デフォルトの名無しさん
2006/06/02(金) 02:25:48そういうのは流通業者に聞いてみれば?
ま、どこに聞いても「ウチで仕入れてください」っていうだろうけど。
0219デフォルトの名無しさん
2006/06/02(金) 02:26:30うぅどうもです><
0220デフォルトの名無しさん
2006/06/02(金) 03:05:47ttp://www.borland.com/jp/products/cbuilder/freecompiler.html
>Borland C++Compiler 5.5インストール手順
のすぐ下にある
>Borland C++Compiler 5.5のダウンロードは、こちら(8.46MB)をクリックして下さい。
の「こちら」をクリック。
エディタは↓を使うと、コンパイルも楽。
ttp://www.vector.co.jp/soft/win95/prog/se141451.html
0221デフォルトの名無しさん
2006/06/02(金) 03:11:48そんな古いのより Visual C++ 2005 Express Edition のがいいぞい。
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/
0222デフォルトの名無しさん
2006/06/02(金) 03:18:57DLにめっさ時間が掛かるね・・・
0223デフォルトの名無しさん
2006/06/02(金) 09:02:220224デフォルトの名無しさん
2006/06/03(土) 07:13:57vc2005使ってると、ANSI標準の関数使うと、いちいち警告で
「古い定義の関数でなんたらかんたら」って出るけど無視しよう。
MSがあらたに作った関数なんていちいち使ってたら
変にそっちの関数の知識を身につけちゃう可能性あるから。
0225デフォルトの名無しさん
2006/06/03(土) 08:18:11そもそもそんな警告を表示しないようにすればよいだけだと思う。
0226デフォルトの名無しさん
2006/06/03(土) 08:22:08int AAAA()
{
FILE fp ;
fp_a = fopen("a.txt", "w")
if (fp_a == NULL) {
return(-1) ;
}
BBBB() ;
fclose(fp_a) ;
return(0) ;
}
int BBBB()
{
FILE *fp ;
fprintf(fp_a, "test-AAAA-prog") ;
fp = fopen("zzz.txt", "r")
if (fp == NULL) {
return(-1)
}
fprintf(fp_a, "test-BBBB-prog") ;
fclose(fp)
}
0227デフォルトの名無しさん
2006/06/03(土) 08:24:52fp_aをopenしている間だけ、fpのopenに失敗してしまいます。
extern宣言しているファイルポインタを使用しているのがまずいのでしょうか?
0228デフォルトの名無しさん
2006/06/03(土) 08:26:36正記:fprintf(fp, "test-BBBB-prog") ;
0229デフォルトの名無しさん
2006/06/03(土) 08:29:01あの「警告を表示しない方法」教えてくだされ
0230デフォルトの名無しさん
2006/06/03(土) 08:38:02http://msdn2.microsoft.com/ja-jp/library/ms175759.aspx
_CRT_SECURE_NO_DEPRECATE
0231224
2006/06/03(土) 08:53:03入門者の人にとっては、不安だろうな〜
0232デフォルトの名無しさん
2006/06/03(土) 09:32:28それ、症状が再現する最小のモジュールになっていないだろ。
ソース載せるなら、再現することを確認してからにしてくれ。
まぁ恐らく、きちんとファイルをクローズしないでオープンしたままなんだろうけどな。
0233デフォルトの名無しさん
2006/06/05(月) 11:25:150234デフォルトの名無しさん
2006/06/05(月) 11:49:210235デフォルトの名無しさん
2006/06/05(月) 11:57:05言語の仕様が大幅に変わってるみたいなのでどうすればいいかわかりません。
どっちもCでしょ?
0236デフォルトの名無しさん
2006/06/05(月) 11:59:30全く違うもの同士でそういう風に聞かれても・・・。
0237デフォルトの名無しさん
2006/06/05(月) 12:11:00全く違う物?
VC++の方がスキルとして認められ易いと聞きました
新しい言語なのにC#って普及してないの?
0238デフォルトの名無しさん
2006/06/05(月) 12:12:050239デフォルトの名無しさん
2006/06/05(月) 12:13:21とりあえず Express Editions を落として使ってみれば?
0240デフォルトの名無しさん
2006/06/05(月) 12:17:10タダやん
いつのまにこんな物…
勉強するにはもってこいですね
ありがとうございました。
0241デフォルトの名無しさん
2006/06/05(月) 12:17:31今から始めるのに言語仕様が変わっていてなぜ困る
0242& ◆lWyMorKHN2
2006/06/05(月) 12:19:07何か必要なんでしょうか?
0243デフォルトの名無しさん
2006/06/05(月) 12:19:44常識。
0244& ◆.uxO1zwzGk
2006/06/05(月) 12:20:530245デフォルトの名無しさん
2006/06/05(月) 12:24:50> 何か必要なんでしょうか?
問題解決能力
0246デフォルトの名無しさん
2006/06/05(月) 12:25:11勉強し終わったころには新しい言語が出ていてまたいつのまにこんな物・・・
0247デフォルトの名無しさん
2006/06/05(月) 15:20:48適当な座標軸上にプロットするプログラムを書け、
といった課題が出されました。
while文を用いて、値を出すプログラムまでは作れるのですが、
座標軸をつくり、そこへプロットする仕方がわかりません。
どなたかご教授お願いします。
0248デフォルトの名無しさん
2006/06/05(月) 15:22:53ヒント
メイクファイル
0249デフォルトの名無しさん
2006/06/05(月) 15:24:18環境ぐらい書け
宿題丸投げは宿題スレへ
0250デフォルトの名無しさん
2006/06/05(月) 16:02:25-lm
0251デフォルトの名無しさん
2006/06/05(月) 16:47:52例えばあるファイルをバイナリエディタで開くと以下のように見えたとします。
0F 32 5D BC 29
そこでCのソース中にunsigned int *p;などと宣言しておいた
ポインタがあって、なんらかの処理でpが32を指すように
なっているとすると、*(p + 1)とすると5Dが、*(p - 1)とすると
0Fが参照できるようなそんなことはCでは可能ですか?
fgetsでデータを一度配列に格納してそれをポインタで指す方法は、
配列の大きさを一体いくら確保しておけばよいのか、
予め分からないので使いにくいと思い、このような質問をさせて頂きました。
環境はRedHat9 + gcc-3.2.2-5です。
0252デフォルトの名無しさん
NGNG>配列の大きさを一体いくら確保しておけばよいのか、
わかってから確保すりゃいいだろ。
0253デフォルトの名無しさん
2006/06/05(月) 17:01:08stat()なりfseek()+ftell()なりでファイルサイズを取得し、
fread()でmalloc()した領域に読み込んでしまえばいい。
但し、ポインタの型はint *などではなくchar *になるわけだが。
0254デフォルトの名無しさん
2006/06/05(月) 17:01:330255デフォルトの名無しさん
2006/06/05(月) 17:03:140256デフォルトの名無しさん
2006/06/05(月) 17:07:21>>253
なるほど、一度ファイルを総読み込みして調べるしかないわけですね。
サイズのでかいファイルになると時間がかかりそうですが、
仕方ないですね。
unsigned int *としたのはテキストファイル、バイナリファイルを
区別せずと考えたためです。この辺は自分でどうにかします。
ありがとうございました。
0257デフォルトの名無しさん
2006/06/05(月) 17:07:230258デフォルトの名無しさん
2006/06/05(月) 17:10:08もしかしてstatは総読み込みするような関数ではない…?
この関数はまだよく知らないので後は自分で調べて解決します。
どうもすみません。
0259デフォルトの名無しさん
2006/06/05(月) 20:10:52一応「メモリマップトI/O」という言葉について調べることをおすすめする。
この頃のメジャーなOSではだいたいできると思う。
0260デフォルトの名無しさん
2006/06/05(月) 20:13:540261デフォルトの名無しさん
2006/06/05(月) 20:44:23老婆心ながら。
× Memory Mapped I/O
○ Memory Mapped File
0262デフォルトの名無しさん
2006/06/05(月) 23:46:19問題を解くように依頼され、頭を悩ませて再帰関数で解いてみた。
ttp://upld3.x0.com/src/upld7159.lzh
こんな感じでOKでせうか?
0263デフォルトの名無しさん
2006/06/06(火) 00:23:33ソースそのまま見えるロダへ上げろ。
0264262
2006/06/06(火) 21:48:47すいません、これでどうでしょうか? nCm 結果表示プログラムです。
ttp://www.uploda.org/uporg410363.c
0265デフォルトの名無しさん
2006/06/07(水) 15:13:430266デフォルトの名無しさん
2006/06/07(水) 16:02:140267デフォルトの名無しさん
2006/06/07(水) 20:17:36以下のソースについて質問です。
(画面上に「HELlo」と表示させるものです)
#include<stdio.h>
int main(void)
{
int i;
char a[]="hello"; ・・・A
*a='H'; ・・・B
*(a+1)='E'; ・・・B
*(a+2)='L'; ・・・B
for(i=0;i<5;i++){
printf("%c",a[i]);
}
}
Aの部分ではhelloを「”」の記号でくくっているのに、Bの部分では
「’」でくくっています。
これはどうやって使い分けるのでしょうか。
よろしくお願いします。
0268デフォルトの名無しさん
2006/06/07(水) 20:26:03文字か文字列の違い
0269デフォルトの名無しさん
2006/06/07(水) 20:55:42お礼のレスはまだかゴルァ!!!!!!!!!
0270デフォルトの名無しさん
2006/06/07(水) 21:09:40初心者の俺が親切に答えちゃる。
"hello"は、'h'+'e'+'l'+'l'+'0'+'\0' のことで最後に '\0' = 0 がつく
同様に、"H"だと、'H' の後ろに '\0' が付く。
'\0' はここで文字列は終わりですよという目印
こうすれば最後に '\0' = 0 入っているのが分かんじゃないかな?
for(i=0;i<6;i++){
printf("%d-",a[i]);
}
こんなことをすれば、文字列を途中で終わらせることができるよ。
#include<stdio.h>
int main(void)
{
char a[]="hello";
printf("%s\n",a); /* hello と表示 */
*(a+2)='\0'; /* 3文字目に'\0'を代入。 */
printf("%s",a); /* he と表示される */
}
0272デフォルトの名無しさん
2006/06/07(水) 21:58:03(配列の初期化に限っては)上は下と同じ。
char a[] = {'h', 'e', 'l', 'l', 'o', '\0'};
0274デフォルトの名無しさん
2006/06/10(土) 11:06:36ソケットプログラムをしようと思っています(当方macです)が
sys/fcntl.h
sys/types.h
sys/socket.h
netinet/in.h
netdb.h
などのヘッダファイルの手の入れ方がわかりません
googleしてみましたが見当たりませんでした。
どこで手に入るのでしょうか?
0275デフォルトの名無しさん
2006/06/10(土) 11:39:55どうしたらいいんですか。
0276デフォルトの名無しさん
2006/06/10(土) 12:23:020277デフォルトの名無しさん
2006/06/10(土) 13:46:16>場違いかもしれませんが
その通り。
0278デフォルトの名無しさん
2006/06/10(土) 14:45:44では、どこが適切な場所か教えて下さい。
0279デフォルトの名無しさん
2006/06/10(土) 15:03:360280278
2006/06/10(土) 15:16:36あるソースをみたら、上記にあるヘッダが#includeする
部分にかかれていたのです。でもHD内を検索したらそんな
書類はなくって(types.hはあったけど、、)。
で、web上にあるのかなと探したけれど上手く見つけられな
かったのです。だから、何処にあるのかわからなっくって
質問したのですが、、、
このヘッダは有名(と言えばいいの?)じゃないんですね。
ありがとうございました。それだけわかりました。
スレを汚してごめんなさい。
0281デフォルトの名無しさん
2006/06/10(土) 15:27:55最近のmacと昔のmacではOSが全然違うから、OSバージョンも明確に質問すること。
0282えいいち ◆GRGSIBERIA
2006/06/10(土) 15:29:37以下のソースをコンパイルして実行すると、コンパイルに失敗して、実行ファイルが存在しない、とエラーが出ます。
#include <windows.h>
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
) {
MessageBox(NULL , "Hello, world!" , "MessageBox" , MB_OK);
return 0;
}
コンパイラはボーランドのC++Builderで、Cpadというソフトでコンパイル・実行しています。
0283えいいち ◆GRGSIBERIA
2006/06/10(土) 15:30:26bcc32 test.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
test.c:
警告 W8057 test.c 11: パラメータ 'hInstance' は一度も使用されない(関数 WinMain )
警告 W8057 test.c 11: パラメータ 'hPrevInstance' は一度も使用されない(関数 WinMain )
警告 W8057 test.c 11: パラメータ 'lpCmdLine' は一度も使用されない(関数 WinMain )
警告 W8057 test.c 11: パラメータ 'nCmdShow' は一度も使用されない(関数 WinMain )
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照)
0284デフォルトの名無しさん
2006/06/10(土) 15:31:070285デフォルトの名無しさん
2006/06/10(土) 15:39:13そのヘッダはどうやらunixのものなのらしいです。
とあるwebサイトで以下のような文章を見つけまして、
「WindowsやMacOS などで利用されるC言語処理系はUNIXのシステムコールと
同じ機能をもつ関数 を提供することが多いです。ヘッダーファイルの指定
さえ行えばソケットを利用したプログラムが書けるようになります。」
とあったので、それらのヘッダファィルのをとりあえず手に入れなければ
手の出しようがありません。入手先が皆目見当がつかないので、とりあえず
ここで聞いてみたという次第です。なので今はmacは関係ありません。
デフォルトでそのようなヘッダファイルが入っていないと言いたかったのです。
0286デフォルトの名無しさん
2006/06/10(土) 15:39:15WinMainから始まるプログラムを書くときにはオプション-Wが必要。
0287デフォルトの名無しさん
2006/06/10(土) 15:40:39元がUnix由来でも、Macで使いたいのだからMacのところで聞いて平気だと思うよ。
0288デフォルトの名無しさん
2006/06/10(土) 15:40:49ヘッダだけ入手しても、socketプログラミングとかは出来ないがそれでもいいのか?
0289デフォルトの名無しさん
2006/06/10(土) 15:48:10それでもいいです。と言うかサンプルコードを移植する為に
どういった構造体や定義とかが書かれているのか知りたいのです。
それを基に(mac用に)改変しようと思っています。
とりあえずいきなりsockaddr_in 構造体とかいわれても
ヘッダを見ないと何が何だかさっぱりなので。
0291デフォルトの名無しさん
2006/06/10(土) 15:50:45バージョンは?
ひとまずXcodeを入れる必要があると思います。
自分の環境にはヘッダファイルありますから。
0293デフォルトの名無しさん
2006/06/10(土) 15:55:32xcode(2.0,os 10.4.6)にありますか?
私はcodewarrior(8.3)をメインに使っていて、
先程(質問する前)ヘッダファィルが含まれているかなと思ってxcodeを
インストールしたのですが、spotlightで検索しましたが見つかりませんでした。
なんででしょう?どこにありました?質問ばかりですみませんが。
0294277
2006/06/10(土) 15:58:06どっちみち居座りやがったか…
0295デフォルトの名無しさん
2006/06/10(土) 16:16:000296デフォルトの名無しさん
2006/06/10(土) 16:40:17たぶん使えるはず。
心配なら-std=c99を付ければ文句無し。
0297デフォルトの名無しさん
2006/06/10(土) 17:29:05おまいにVC++の話題されても全く理解できないのと同じだ。
おまいの話題はxcode使ってない香具師には全く理解できない。
0298デフォルトの名無しさん
2006/06/10(土) 18:31:46の計算したいのですが
b*cの計算した時点で
変な数値になってしまうんですが
うまい方法ないでしょうか?
0299デフォルトの名無しさん
2006/06/10(土) 18:43:39↓が相手してあげてください。
0300デフォルトの名無しさん
2006/06/10(土) 18:50:15bとcの型が小さくて結果の上位ビットが捨てられているのではないかと予想。
個人的には2147483647の剰余を求めるよりも0x7fffffffとの&を取る方がいいと思う。
0301デフォルトの名無しさん
2006/06/10(土) 20:51:51>2147483647の剰余を求めるよりも0x7fffffffとの&を取る
それは結果が異なるのだが。
0302デフォルトの名無しさん
2006/06/10(土) 21:07:53struct element *leader ;//集合のリーダー(構造体)を指すポインタ
struct element *back ;//自分(要素)の後ろにいる要素(構造体)を指すポインタ
int number ;//所属する集合の要素数
};
struct element set[n];//具体的にsetという要素をn個作る
ここまでは問題ないのですが、この構造体を操作する関数を宣言のが上手くいきません。それは、
void yunion(int x,int y)//union関数が予約語だったとは・・・
{
if(set[x].number - set[y].number => 0)★★★//xが要素である集合がyが要素である集合より要素数が多い時
{
set[y]->leader = set[x]->leader;//代表元を書き換える
}
}
これをデバッグすると★★★の行で「set:定義されていない識別子です」とか言われます。
でも上で定義しているし・・・
この関数宣言の問題点はどこでしょうか?
0303デフォルトの名無しさん
2006/06/10(土) 21:38:35if(set[x].number - set[y].number => 0 じゃなくて、
if(set[x].number - set[y].number >= 0 だろ。
あと、
set[y]->leader = set[x]->leader;//代表元を書き換える じゃなくて、
set[y].leader = set[x].leader;//代表元を書き換える だろ。
leaderはstruct element型へのポインタだが、set[x]はstruct element型
であってポインタじゃない。
0304デフォルトの名無しさん
2006/06/10(土) 21:44:54まさかとは思うけど、setはグローバル変数じゃなくてローカル変数ですた、
とかいうオチじゃないだろうな?
0305302です
2006/06/10(土) 22:12:41setはメイン関数内で宣言しています。
yunion関数宣言はメイン関数の外で宣言しています。
エラーの理由として、
'set' : 定義されていない識別子です
.number' の左側はクラス、構造体、共用体でなければなりません
.leader' の左側はクラス、構造体、共用体でなければなりません
と言われます。
メイン関数の外で関数を作ってそこで代入を行ってもメイン関数には
反映されないので、ポインタを書き換えるためにアロー演算子で
「代表元を書き換える」をやろうとしています。
・・・まさか、メイン関数内で宣言したらグローバル変数だと
思っていたのですが、実はローカル変数扱いになるのでしょうか?
0306デフォルトの名無しさん
2006/06/10(土) 22:18:300307デフォルトの名無しさん
2006/06/10(土) 22:37:300308デフォルトの名無しさん
2006/06/10(土) 22:43:14これ、どっから突っ込めばいいんだよ・・・
グローバル変数:プログラム全体から操作できる変数
ローカル変数:関数内で定義され、定義された関数内からしか直接操作できない変数
(関数内static指定の変数はどうなの?とかいう細かい話はとりあえず却下)
main関数もあくまで関数の1つ。よって、main関数内で
定義された変数もローカル変数。OK?
だからsetをmainの外に置きグローバル変数にすれば
とりあえずエラーは消える。
(グローバル変数にせず引数渡しをしてはどうか、
とかいいたいところだけど、ポインタがわかってないみたいだし、
混乱しそうだから止めておく)
>メイン関数の外で関数を作ってそこで代入を行ってもメイン関数には
>反映されないので、ポインタを書き換えるためにアロー演算子で
>「代表元を書き換える」をやろうとしています。
これは説明できない!なんていえば理解してもらえるのかわからん!
匙を投げました。とりあえず
set[y].leader = set[x].leader;
に変更し、そしてCの基本からやりなおしてください。
入門編だからしょうがないよね。あはは・・・
0309デフォルトの名無しさん
2006/06/10(土) 22:48:450310302です
2006/06/10(土) 23:04:18ポインタを使うのは私には難しいのでそういう場合はグローバル変数で
処理しちゃえばポインタは考えなくていい、ということですね。
構造体の配列のポインタを操作、する必要があると思っていたのですが
ポインタが消えてくれてここからは自分で進めそうです。
入門編ということで来てしまいましたが、まだ門に入るに至らなかったようです。
Cの基本からやり直してきます。
疑問は全て解決しました。ありがとうございました。
0311デフォルトの名無しさん
2006/06/10(土) 23:15:590312デフォルトの名無しさん
2006/06/10(土) 23:19:220313デフォルトの名無しさん
2006/06/10(土) 23:21:240314デフォルトの名無しさん
2006/06/10(土) 23:25:030315デフォルトの名無しさん
2006/06/10(土) 23:30:060316デフォルトの名無しさん
2006/06/10(土) 23:39:53でもね、NullPointerExceptionていう例外はあるんだって
土曜日に遊びにくるおじさんが言ってた
0317デフォルトの名無しさん
2006/06/10(土) 23:45:37Cで配列を扱う為には、ポインタでなければアクセス出来ない訳だが…。
標準関数ですらポインタを渡すものが多いのに、よくそんな事言えたものだね。
もう一度、勉強し直した方がいいよ。
0318デフォルトの名無しさん
2006/06/10(土) 23:46:35ガッ
0319デフォルトの名無しさん
2006/06/11(日) 00:00:08いやリストくらい作れるって
ヒント:マクロ
0320デフォルトの名無しさん
2006/06/11(日) 00:01:43まず、日本語の勉強が必要そうだね
0321312
2006/06/11(日) 00:21:21配列を使う=ポインタについて知識が必要なんだよゴラァ
と怒られたのか俺は
配列の知識なんてCで(ry
0322デフォルトの名無しさん
2006/06/11(日) 00:53:09こんな感じの方がよくない?
ptr は予約語。
ptr char& p;
0323デフォルトの名無しさん
2006/06/11(日) 00:53:34ttp://pc7.2ch.net/test/read.cgi/mac/1130776036
今更だが
0324デフォルトの名無しさん
2006/06/11(日) 02:34:550325デフォルトの名無しさん
2006/06/11(日) 02:44:320326デフォルトの名無しさん
2006/06/11(日) 09:34:09ポインタ使ったほうが効率はいいよ。
0327超初心者マー君
2006/06/11(日) 09:42:18最近パソコン始めた超初心者なんですが
C言語を動かす為には何が必要なのですか?
「猫でもわかるC言語プログラミング」という本を
買って挑戦してるんですが、全くわかりません。
コンパイラーというもののインストールの仕方が分かりません。
コンパイラー以外にも何か必要なのですか?
添付CDロムのファイルの使い方がそもそも分からないし・・・・・
ぼくは猫以下なんでしょうか。
教えて1さん。
0328デフォルトの名無しさん
2006/06/11(日) 09:50:27python
0329デフォルトの名無しさん
2006/06/11(日) 10:05:11CとC++一生にどっちかしか身につけれないならプログラミングなんてしない方がいい。
0330デフォルトの名無しさん
2006/06/11(日) 10:48:20俺も昔、何万もだして買ったコンパイラーの使い方がわからなくて、
ドブに捨てたよ。
0331デフォルトの名無しさん
2006/06/11(日) 11:01:010332デフォルトの名無しさん
2006/06/11(日) 11:17:060333デフォルトの名無しさん
2006/06/11(日) 11:21:07C++はCのサブセットだから、C++覚えればCも覚えたことになる。
だから解なしって答えなんだろ?
>>327
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/
0334デフォルトの名無しさん
2006/06/11(日) 11:24:03使い方次第。
何でもかんでも「ポインタ=高速」なんて思うのは間違い。
0335超初心者マー君
2006/06/11(日) 11:25:04コンパイラーってそんなに高いものだったんですか・・・・・
「ハロー、ワールド」すら未だに表示させられません。
誰かインストールの仕方と他に必要なものを教えて
いただけませんか?
0336デフォルトの名無しさん
2006/06/11(日) 11:25:130337デフォルトの名無しさん
2006/06/11(日) 11:41:43C++だけど。
template<typename T>
struct ptr
{
typedef T* type;
};
こうすればこう書ける。
ptr<char>::type p;
0338デフォルトの名無しさん
2006/06/11(日) 11:47:05Borland C++ならここのイントロ〜2章を読め。
http://www.kumei.ne.jp/c_lang/bcc/
VC++ 2005 EEならインストールした後のことはここに少し書いてある。
http://www.kumei.ne.jp/c_lang/net2005/project.htm
0339デフォルトの名無しさん
2006/06/11(日) 14:59:45>C++はCのサブセット
……
0340デフォルトの名無しさん
2006/06/11(日) 15:46:18っていうかCもC99からはC++と完全な互換性はなくなってるけどな。
0341デフォルトの名無しさん
2006/06/11(日) 17:34:12関数ポインタって何に使うんですか?
0342デフォルトの名無しさん
2006/06/11(日) 17:45:09DLLから動的に関数をもらう時とか
0343デフォルトの名無しさん
2006/06/11(日) 18:34:12ってなんですか?
本に載ってません。
0344デフォルトの名無しさん
2006/06/11(日) 18:53:51http://www.google.co.jp/
↑このサイトにかなり色々載ってるから、みてみるといいよ。
真中に文字入力するとこあるから、「main(int argc,char argv*)」っていれてからボタンを押してね。
0345デフォルトの名無しさん
2006/06/11(日) 19:22:54そんな糞本は捨てちまえ
0346デフォルトの名無しさん
2006/06/11(日) 19:29:32で載ってる方がよっぽど糞本だがな。
0347デフォルトの名無しさん
2006/06/11(日) 19:33:230348デフォルトの名無しさん
2006/06/11(日) 19:34:090349デフォルトの名無しさん
2006/06/11(日) 21:26:24int main(int argc , char *argv[])
0350デフォルトの名無しさん
2006/06/11(日) 21:58:17言語仕様は以下
返却値の型 int をもち仮引数を持たない関数
int main(void){ /* ... */ }
二つの仮引数を持つ関数(仮引数は, これらが ...)
int main(int argc, char *argv[]) { /* ... */ }
上に揚げた二つの方法のいずれかと等価な方法
--> int と等価な typedef された型でもいいし, char **argv でもいい
上に揚げた三つの方法のいずれでもない処理系定義の方法
0351デフォルトの名無しさん
2006/06/11(日) 22:24:530352デフォルトの名無しさん
2006/06/11(日) 23:10:430353デフォルトの名無しさん
2006/06/11(日) 23:24:400354デフォルトの名無しさん
2006/06/12(月) 00:47:25俺は、C++をやろうと思ってるのですが、C++でもおkですか?
0355デフォルトの名無しさん
2006/06/12(月) 00:47:59C++相談室 part50
http://pc8.2ch.net/test/read.cgi/tech/1149427282/
0356デフォルトの名無しさん
2006/06/12(月) 01:09:20すいません。ここじゃないのですね。ありがとうございます。
0357デフォルトの名無しさん
2006/06/12(月) 12:06:42何がどうだったら「おk」なんだか解らんが
少なくともお前には無理。
0358デフォルトの名無しさん
2006/06/12(月) 12:57:35> char **argv でもいい
関数の仮引数における「type hoge[]」は、
「type *hoge」のシンタックスシュガー。
正確には「char *argv[] でもいい」と書くのが正しい。
0359デフォルトの名無しさん
2006/06/12(月) 12:59:060360デフォルトの名無しさん
2006/06/12(月) 14:48:53おまいらの主張は, 言語の持つ意味としては文句のつけようがないんだが,
JIS の規格書に書いてあるんだよぉ...
俺は JIS の規格を要約しただけで, 俺のせいじゃないんだよぉorz
0361デフォルトの名無しさん
2006/06/12(月) 16:23:07int main(void)
{
int a;
double b,c;
scanf("%lf",&b);
a=(int)b;c=a*10;
printf("a=%d\n",a);printf("b=%lf\n",b);printf("c=%d",c);
return 0;
}
上記プログラムを実行してbに1.23を代入したら
a=1
b=1.23
c=0
となりました。どうやればaにbの整数部分である1を代入できるのでしょうか・・・・
OS:windows2000
コンパイラ:borland
0362デフォルトの名無しさん
2006/06/12(月) 16:25:395×5の魔方陣教えて
0363361
2006/06/12(月) 16:43:290364デフォルトの名無しさん
2006/06/12(月) 17:01:45参考になるサイトとかどこかにないですか?
0365デフォルトの名無しさん
2006/06/12(月) 17:07:01(1) A|B
(2) A⇔B
A→Bを|のみを用いて表したいんですがこれもできないです
0366デフォルトの名無しさん
2006/06/12(月) 17:34:22どこまで理解していて、何がわからないのか?
# 全部わからないは論外
0367デフォルトの名無しさん
2006/06/12(月) 17:49:33日本語でおk
0368デフォルトの名無しさん
NGNG(A OR B) = (A NOR B) NOR 0
A→B = (A AND B) OR (A XOR B)
なので、NOTがどっかで使えないとダメぽな予感。
0369デフォルトの名無しさん
2006/06/12(月) 17:58:40まず何をしたらいいのか・・・・
0370デフォルトの名無しさん
2006/06/12(月) 18:07:22そしてC言語に関連あるところまで理解が進んでからもう一回来い。
0371デフォルトの名無しさん
2006/06/12(月) 18:11:16> まず何をしたらいいのか・・・・
まずは、日本語の勉強からどうぞ。
算数の勉強も合わせてどうぞ。
0372デフォルトの名無しさん
2006/06/12(月) 18:17:180373デフォルトの名無しさん
2006/06/12(月) 18:42:14ドモホルンリンクルの法則・・・なんでもないw
0374デフォルトの名無しさん
2006/06/12(月) 18:45:03x nor x = not x だよ。
nor か nandがあればOK。
0375デフォルトの名無しさん
2006/06/12(月) 18:46:010376デフォルトの名無しさん
2006/06/12(月) 19:10:340377デフォルトの名無しさん
NGNG>A→Bを|のみを用いて
と書いてあるんでNOTの入った物(NOR,NANDも含む)が必要かなと。
0378365
2006/06/12(月) 19:16:17これを巧く直せないんです
0379デフォルトの名無しさん
2006/06/12(月) 19:19:24だからスレ違いだっての
0380デフォルトの名無しさん
2006/06/12(月) 20:01:16ついにC言語ですらなくなったか。このスレも終わりかな。
0381デフォルトの名無しさん
2006/06/12(月) 21:07:50質問の仕方入門や
BOOL代数の入門も含まれる
という事にしてマタリしとこう
0382デフォルトの名無しさん
2006/06/12(月) 21:15:16質問の仕方は勘弁してくれ。
正しい質問の仕方を心得ている事は、最低限必要。
プログラミング言語初心者はいいが、日本語初心者はお断りにすべき。
母国語もマトモに使えないようでは、プログラム以前の問題。
0383デフォルトの名無しさん
2006/06/12(月) 21:15:560384デフォルトの名無しさん
2006/06/12(月) 22:24:30「論理回路 完全系」でググれ。
0385URLエンコード
2006/06/14(水) 14:57:40このソースは書籍からのCGIのサンプルなんですが
CによってURLエンコードをする際に%xx%nn%yyという2バイトコードをを16進数に変更して1バイトにまとめていく処理があるのですが
229行目での配列への代入が何を代入しているのかがどうしても分かりません。
この代入は次のループで書き換えられているような気がするのですが、これは必ず必要な処理なのでしょうか。
変な文章の質問になりますが、ここだけがどうしても胸につかえていて気持ち悪いんです。どなたかスッキリさせていただけないでしょうか。
0386デフォルトの名無しさん
NGNG%xxという形式じゃなかったら、そのままコピーしてるだけなんじゃない?
インデックスの変数をインクリメントしてるから、次のループでも
上書きはしてないと思う。
0387URLエンコード
2006/06/14(水) 15:23:18失礼しました。
改行でのみの行番号だと223行目の部分でした。
エディタ入れなおしたばっかりで設定し忘れていました。
0388デフォルトの名無しさん
NGNGああ、本当だ、それバグっぽいね。
他にも、渡されたデータのサイズに関係なく適当にmalloc()してるとか、
%が現れたら、無条件にインデックスを+2してるとか、危なそうなコー
ディングしてるね。
0389URLエンコード
2006/06/14(水) 15:43:59>>388
おお。ではこれは必要のない一行ということでよかったのでしょうか。
御教授いただきありがとうございました。
これで胸の支えが取れた感じです、、が危なそうなコーディングですかー。
中々C言語によるCGIの書籍というのがなかったもので、徐々に理解していきたいとおもいます
0390デフォルトの名無しさん
2006/06/14(水) 17:47:23なんていうか、すごいね。
0391デフォルトの名無しさん
2006/06/14(水) 18:17:22家ではやり方が良くわかりません。
どうすれば、C++でコンパイルや実行などができるのでしょうか??
0392デフォルトの名無しさん
2006/06/14(水) 18:24:56学校ではどうやっている?
0393デフォルトの名無しさん
2006/06/14(水) 23:31:48XPならVC++とかじゃね? VC++スレ逝け。詳しい香具師が多い。
0394デフォルトの名無しさん
2006/06/14(水) 23:38:340395デフォルトの名無しさん
2006/06/14(水) 23:45:340396デフォルトの名無しさん
2006/06/14(水) 23:59:58こんな顔の奴だな。
0397デフォルトの名無しさん
2006/06/15(木) 00:04:080398デフォルトの名無しさん
2006/06/15(木) 00:07:11常に上目遣い
常に口が開いてる
口をすぼめ気味
自触癖っぽい唇の傷
全てが精神遅滞を思わせる特徴だなwww
0399デフォルトの名無しさん
2006/06/15(木) 00:13:10それすらできないならちょっとアレだ
0400デフォルトの名無しさん
2006/06/15(木) 00:26:38この手の人は、他人が書いた答えを写す事しか頭にないだけ。
0401デフォルトの名無しさん
2006/06/15(木) 00:36:50そうだよね。積極的に教授と交流作っとけば成績もプラスに評価されるよね。
あ、もちろん対教授コミュ法は『教えて君』じゃだめだよ。
0402デフォルトの名無しさん
2006/06/15(木) 02:34:08int main(){
time_t times;
struct tm *jt;
time_t tt;
times = time(NULL);
// jt = localtime(×);
jt->tm_year = 100;
jt->tm_mon =1;
jt->tm_mday = 1;
jt->tm_hour = 5;
jt->tm_min = 11;
jt->tm_sec = 33;
printf("%4d年%2d月%2d日 %2d時%2d分%2d秒\n",
1900+jt->tm_year,jt->tm_mon,jt->tm_mday,
jt->tm_hour,jt->tm_min,jt->tm_sec);
tt = mktime(jt);
printf("%d\n",tt);
return 0; }
上記プログラムで、現在時刻を、また通算秒数に戻したいのですが、
localtime()で受け取った値をそのまま使えば、戻せるのですが、
自分で、年月日、時間分秒を指定すると、-1になってしまいます。
年月日、時分秒だけ入力して、
通算秒数に戻す方法はないのでしょうか?改行で怒られて見づらくてすいません。
0403デフォルトの名無しさん
2006/06/15(木) 06:04:48時刻表示にprintf()で愚直に詰めるのはやめようよ。
ちゃんとstrftime()って関数があるんだから。
処で、jtはどこを指しているのかな?
0404402
2006/06/15(木) 07:39:19のでそれで良いのかと思ってました。
すみません、どこを指してるとはどういう意味でしょうか。
localtime()の返り値を受け取って初めて、
時間指定ができるようになるとか、そういう意味でしょうか。
0405デフォルトの名無しさん
2006/06/15(木) 07:56:52また、localtime()で戻されるポインタが指す領域もlocaltime()が抱える静的領域なのでそれを加工してはダメ。
書くならこんなもんかな。
#if 0 /* localtime()の例 */
time_t tt = time(NULL);
struct tm * pjt = localtime(& tt);
#else /* 自分で代入する例 */
struct tm jt = {33, 11, 5, 1, 1, 100, };
struct tm * pjt = & jt;
#endif
char buf[30];
strftime(buf, sizeof(buf), "%F %r", pjt);
strftime()の使用例などについてはこちら参照。
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/localtime.3.html
printf()で愚直に詰めるのはアナクロだと言うことを知らないアナクロな表現者は多いと言うことだね。
0406デフォルトの名無しさん
2006/06/15(木) 08:56:23> strftime(buf, sizeof(buf), "%F %r", pjt);
それ「#else」の方だと
strftime(buf, sizeof(buf), "%F %r", &pjt);
としないとダメじゃね?
0407デフォルトの名無しさん
2006/06/15(木) 09:24:44よく見ろ。それを回避するためにstruct tm * pjt = & jt; している。
0409デフォルトの名無しさん
2006/06/15(木) 16:16:49strftime だけで
"2006 年 6 月 15 日 木曜"
て書く方法教えて!
0410デフォルトの名無しさん
2006/06/15(木) 16:58:54char buf[100];
struct tm date = {0};
date.tm_year=2006-1900;
date.tm_mon=6-1;
date.tm_mday=15;
mktime(&date);
setlocale(LC_TIME, "Japanese");
strftime(buf, sizeof(buf), "%Y 年 %#m 月 %#d 日 %a 曜", &date);
puts(buf);
0411デフォルトの名無しさん
2006/06/15(木) 18:47:34メイン関数で外部関数を呼ぶとき、構造体を引数として外部関数に渡すにはどうしたらいいですか?
0412デフォルトの名無しさん
2006/06/15(木) 20:31:57普通に呼べばいい。
0413デフォルトの名無しさん
2006/06/15(木) 20:48:48その構造体をさらに別のファイルfoo.hで宣言して、それぞれのソースファイルでインクルードする。
0414デフォルトの名無しさん
2006/06/15(木) 21:47:240000000000
1111111111 1セット
2222222222
0000000000
1111111111 2セット
2222222222
0000000000
1111111111 3セット
2222222222
... xセット
(10+1, 3, x)
10文字ずつ並んでいる(改行コードで文字数が+1と考える)
それが3行で1セットのものがある。
それがxセットあるとする。あと、これがchar str[1024];とかに入ってると考える。
それを次のように横向きにつなげるのにはどうすればいいだろうか?
000000000000000000000000000000
111111111111111111111111111111
222222222222222222222222222222
(10*x+1, 3)
※ここで10と3って書いたけど実際に使うプログラムでは3じゃなくて20です。
長くなりすぎないように3に変えただけです。
頭が悪くてやり方がわからん。教えてくれまいか?
0415デフォルトの名無しさん
2006/06/15(木) 23:34:21const int rowLen = 10;
const int setLen = 3;
const int rowSize = rowLen + 1;
const int setSize = rowSize * setLen;
char newStr[1024];
newStr[0] = '\0';
for (int rc = 0; rc < setLen; ++rc) {
for (int ic = 0; ic < x; ++ic) {
sprintf(strchr(newStr, '\0'), "%.*s", rowLen, & str[ic * setSize + ir * rowSize]);
}
}
0416デフォルトの名無しさん
2006/06/15(木) 23:43:260418デフォルトの名無しさん
2006/06/16(金) 00:47:20一々アドレスの有効性を示すブール値が必要とは思ってなかったけど
会社の先輩に言われました。ここは組み込み系だからなとかなんとか・・・
0419デフォルトの名無しさん
2006/06/16(金) 00:49:34そんなことありません。
ポインタを返す関数の場合、エラーが起こったときにはNULLを返すのが普通です。
0420デフォルトの名無しさん
2006/06/16(金) 00:50:49その先輩を説得するために、mallocやfopenの例を示しましょう。
ただし、あまり関係が悪くならないように立ち回る必要がありますね。
0421418
2006/06/16(金) 00:54:00そうですよねー。
なんかアセ屋さん上がりの人たちが得意げに説法してくれるので
自信失いました。
NULLを知らずにアクセスしたらどうすんだって言うんですよ。
ちゃんと返り値のほうでNULLかどうか見てるのですが、
忘れたらどうすんじゃとかなんとか・・・
それ知らない人が次にソース触ったらどうとこかこうとか。
会社辞めようかな orz
0423デフォルトの名無しさん
2006/06/16(金) 07:56:32そんな変なスタイルに凝り固まった人たちと仕事していても(技術的に)得る物はありませんよ。
適当に相槌打ちつつ次を模索するのが妥当かと。
0424デフォルトの名無しさん
2006/06/16(金) 13:58:330425デフォルトの名無しさん
2006/06/16(金) 19:06:53ありがと。解決しました。
0426デフォルトの名無しさん
2006/06/16(金) 22:42:09つうか一番大事な理由をちゃんと聞いてないってどういう事よ
0427デフォルトの名無しさん
2006/06/16(金) 22:45:22推して知るべし。
0428デフォルトの名無しさん
2006/06/16(金) 23:14:47戻り値を無視したらどう(ry
0429デフォルトの名無しさん
NGNGチェックするのは当然。
0430デフォルトの名無しさん
2006/06/17(土) 01:45:23とりあえず assert くらいはするかもしれんな。
0431418
2006/06/17(土) 09:15:32いろいろ調べてみて分かってきたのですが
今私が使っているCPUではNULLがゼロ番地を示すようにコードが落ちます。
ここまでは普通の話かもしれません。
(違うところを差す環境もあるらしいですが)
このCPUの場合には0番地はCPUが使う特殊な領域として定義されていて
ユーザがアクセスすると暴走するようです。
明確にCPUリセットや決められた割り込みが発生すればいいのですが、
他に使っている割り込み処理を壊してしまったりするようです。
正直、NULLをチェックするのを忘れた場合でも、CPUリセットする
だろうという思い込みはありましたが、
やっぱり、チェックし忘れたらどうするんだっていう言い方だけでは
分かりませんよね。。。
>>428
結局そういうことですよね。
しかも、booleanがTRUEのときに、返り値のアドレスがNULLかチェックする
なんて馬鹿げてるし。
結局NULLかどうかは必ず検査していないといけないですよねw
>>430
NULLが返ることもあることを仕様書に明記すればいいみたいな話で
もういいやみたいな言われてしまいました。
でもやっぱり結局はNULLかどうかを検査するコードを常に書かないと
いけないわけですよねw
難しいですね もっと勉強します。
char *str[][] =
{
{"abc", "def"},
{"ghi","jkl"}
};
これを引数として関数側に飛ばす場合、受け側はどういう記述でいけばいいのでしょうか?
*[][]でも***でも**[]でもむりですた('A`)
{
short i;
for(i = 0; i < PosVal; i++)
{
/* セクション"POS"からxの値を取得 */
(coordinate + i)->x = GetPrivateProfileInt("POS", &chKeyPos[0][i], -1, ActDir);
if((coordinate + i)->x == -1)
{
goto FUNC_END;
}
/* セクション"POS"からyの値を取得 */
(coordinate + i)->y = GetPrivateProfileInt("POS", &chKeyPos[1][i], -1, ActDir);
if((coordinate + i)->y == -1)
{
goto FUNC_END;
}
}
return TRUE;
FUNC_END:
return FALSE;
}
static char *chItemPos[POS_XY][POS_VALUE] = {
{"One_x", "Two_x", "Three_x", "Four_x", "Five_x", "Six_x"},
{"One_y", "Two_y", "Three_y", "Four_y", "Five_y", "Six_y"}
};
/* SKILLPOSキー項目テーブル */
static char *chSklPos[POS_XY][SKLPOS_VALUE] = {
{"SklOne_x", "SklTwo_x", "SklThree_x", "SklFour_x", "SklFive_x", "SklSix_x"},
{"SklOne_y", "SklTwo_y", "SklThree_y", "SklFour_y", "SklFive_y", "SklSix_y"}
};
chKeyPos部分の受けの型はいったいどうすればいいのかさっぱりなんで('A`)
0435デフォルトの名無しさん
2006/06/17(土) 13:35:33君にはこれがきっと役に立つと思うから読んでごらん。
https://sec.ipa.go.jp/download/files//report/200504/coding_guide.pdf
ただ、これで先輩を納得させたり教育したりしようと思わないこと。
一人でこっそりスキルアップに励むが吉。
0436デフォルトの名無しさん
2006/06/17(土) 13:42:07無理。
char*を二つメンバーにもつ構造体を宣言し、その配列を使うようにしろ。
あー、やっぱそうなのか
それとなぜ無理なのかを教えてほしいんですけどいまいち納得がいかないというか
ポインタについてまだ理解できてないというか・・
0438デフォルトの名無しさん
2006/06/17(土) 14:19:36結論だけ言うと、多次元配列を関数に渡す場合、仮引数の型は最初の次元を除いてその大きさを
全て明記しなければならない。
詳しくはC FAQ参照。
http://www.kouno.jp/home/c_faq/c6.html
この説明で理解できない場合は、『ポインタ完全制覇』のような(そのような書籍が実在するのか
知らないし、読んだこともないが、確かにポインタに特化した書籍は存在する)書籍を読むと良い。
あるいは、”多次元配列 仮引数”などで検索してヒットしたページを読んでみると良いかもしれない。
0439デフォルトの名無しさん
2006/06/17(土) 14:22:37使う限り、配列を渡すのは無理だということ。
どちらもいつも同じというのであれば、仮引数にその大きさを明記してやれば渡せる。
参考になった。ありがとう
0441デフォルトの名無しさん
2006/06/18(日) 19:27:25嫌いなコテハン投票http://vote2.ziyu.net/html/corosuke.html
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
えいいちに清き1票を!
0442デフォルトの名無しさん
2006/06/19(月) 12:54:090443デフォルトの名無しさん
2006/06/19(月) 14:01:52じゃ、君が教えてあげれば?
0444デフォルトの名無しさん
NGNGそれは断る。
0445デフォルトの名無しさん
2006/06/19(月) 22:31:52一定時間処理を止める関数ってありますか?
0446デフォルトの名無しさん
2006/06/19(月) 22:59:130447デフォルトの名無しさん
2006/06/19(月) 23:00:530448デフォルトの名無しさん
2006/06/19(月) 23:16:38thx
0449デフォルトの名無しさん
2006/06/20(火) 00:10:41150.66 300.78 664.13 ・・・
400.44 135.66 333.44 ・・・
上のようにファイルに実数型で記入されているものを
整数型に型変換したいのですがどうすればいいのでしょうか
小数点以下の数値は切り上げでも切捨てでも構いません
一つずつならできるのですが、複数だとうまくできません
どなたかご助力ください
0450デフォルトの名無しさん
2006/06/20(火) 00:13:260451デフォルトの名無しさん
2006/06/20(火) 00:16:36一つずつってつまりは複数なんじゃないの?
0452デフォルトの名無しさん
2006/06/20(火) 00:25:49一つずつではなく、一つのみなら整数型に変換できる
ということです
コードは他のサイトから拾ってきたもので
double d = 2.5;
int i = (int) d;
のようなやり方をして型変換していました
0453デフォルトの名無しさん
2006/06/20(火) 00:29:050454デフォルトの名無しさん
2006/06/20(火) 00:29:15一行読み取って、スペースで区切りながら、atofを使うか、
一行読み取ってsscanf("%lf %lf ....")とかする(個数固定の場合)
0455デフォルトの名無しさん
2006/06/20(火) 00:31:56>>454
ありがとうございました
やってみます
0456デフォルトの名無しさん
2006/06/20(火) 00:51:08strtod()という選択肢はないのかね。
0457誰か教えてください・・・。
2006/06/20(火) 11:03:59得点に負の値が入力されるまで得点を入力し、その最大値と最小値を求め、その差が30点以上であれば
「差が大きい」と表示するプログラムを作成せよ。
です。もしよかったらおしえてください。
0458デフォルトの名無しさん
2006/06/20(火) 11:05:040459デフォルトの名無しさん
2006/06/20(火) 12:28:55#include <stdio.h>
int main(int argc, char* argv[])
{
printf("得点に負の値が入力されるまで得点を入力し、"
"その最大値と最小値を求め、"
"その差が30点以上であれば「差が大きい」\n");
}
0460デフォルトの名無しさん
2006/06/20(火) 13:15:15人にものを聞くのに「せよ」なんて命令形使うのは人間として間違い。
0461デフォルトの名無しさん
2006/06/20(火) 13:40:54ちょwwwwwwおまっwwwwww人にものを聞くじゃなくて
その部分は「問題文」だからwwwwwwww
>>457は
>もしよかったらおしえてください。
って言ってるじゃんwwwwwwwwwww
まさか、あんたが受けたことある試験や問題集に書かれていた問題って
次の○○を解いて下さい。 みたいな、丁寧口調なものばかりだったの?w
0462デフォルトの名無しさん
2006/06/20(火) 14:11:09得点に負の値が入力されるまで得点を入力し、その最大値と最小値を求め、
その差が30点以上であれば「差が大きい」と表示するプログラムを作成して
戴けましたなら幸い至極に存じあげ奉り候。
0463デフォルトの名無しさん
2006/06/20(火) 14:12:120464デフォルトの名無しさん
2006/06/20(火) 14:14:330465デフォルトの名無しさん
2006/06/20(火) 15:09:48http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2111.cpp
0466デフォルトの名無しさん
2006/06/20(火) 15:12:39>>465はミスった
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2112.cpp
0467デフォルトの名無しさん
2006/06/20(火) 17:23:01昔から問題文の命令形はおかしいと思ってました。
自分が先生をやっていた時も自分で問題文書きながら
絶対おかしいと思ってました。w
0468デフォルトの名無しさん
2006/06/20(火) 17:29:460469デフォルトの名無しさん
2006/06/20(火) 17:30:42「解かないと単位取得が危ういよ」とかそことなくやらせる気を起こさせる?
0470デフォルトの名無しさん
2006/06/20(火) 18:12:290471デフォルトの名無しさん
2006/06/20(火) 20:29:380472デフォルトの名無しさん
2006/06/20(火) 20:34:421. 問題文を若者言葉にしてみる。
2. 問題文を絵文字満載にしてみる。
3. やたら顔文字を使う。
4. (爆)が文末に意味なく挿入されている。
5. wが文末に意味なく挿入されている。
6. 藁が文末に意味なく挿入されている。
7. 最後に「欝」の文字が入っている。
0473虫歯18本
2006/06/20(火) 21:24:54ちなみに水銀が超伝導状態になるのは、4.2K(ケルビン)の時です。
0474デフォルトの名無しさん
2006/06/20(火) 21:32:34を計算するプログラムはどのようにつくったらよいでしょうか?
forつかっただけでできますか?
0475デフォルトの名無しさん
2006/06/20(火) 21:51:10forつかっただけでできますか?
0476デフォルトの名無しさん
2006/06/21(水) 00:25:240477デフォルトの名無しさん
2006/06/21(水) 01:44:000478デフォルトの名無しさん
2006/06/21(水) 09:22:11ΣΣ(´Д`)
0479C++風に
2006/06/21(水) 12:42:16for( i=0; i<My->GirlFriendCount; i++ ) {
try {
/* 告白 */
Declared( My->GirlFriend[i] );
} catch( DeclaredSuccessException exp ) {
/* カップル成立 */
DeclaredSuccess( exp );
break;
}
}
0480デフォルトの名無しさん
2006/06/21(水) 13:50:460481デフォルトの名無しさん
2006/06/21(水) 14:04:24無限と言っても人生が終わった時点でプログラム終了だが
0482デフォルトの名無しさん
2006/06/21(水) 14:26:58ext(1)で氏ぬのを待つだけ。
0483デフォルトの名無しさん
2006/06/21(水) 16:05:32{
int age, lifetime;
if (strcmp(job, "プログラマ") == 0)
lifetime = 50;
else
lifetime = 70;
for (age = 0; age < lifetime; ++age) {
#ifdef IKEMEN
if (age >= 10)
printf("%d 人目の彼女が出来ました。\n", age - 9);
else if (age == 25)
puts("結婚しました。");
else if (age >= 30)
printf("%d 人目の愛人が出来ました。\n", age - 29);
#endif
sleep(31536000);
}
}
0484デフォルトの名無しさん
2006/06/21(水) 17:02:40生まれた時には職業は決まってないだろう。
0485デフォルトの名無しさん
2006/06/21(水) 17:15:480486デフォルトの名無しさん
2006/06/22(木) 19:28:420487デフォルトの名無しさん
2006/06/22(木) 19:29:44神は何でも分かっているのです。
0488デフォルトの名無しさん
2006/06/23(金) 01:26:54分からないので、教えてください。
0489デフォルトの名無しさん
2006/06/23(金) 01:30:06マルチ乙
0490デフォルトの名無しさん
2006/06/23(金) 01:32:420492デフォルトの名無しさん
2006/06/23(金) 01:48:02情報が曖昧過ぎて何をしたいのかわからない。
宿題スレに、構造体の配列を使った課題があったと思うから探してみたら?
0493デフォルトの名無しさん
2006/06/23(金) 07:45:58struct foo { ... };
void write_foo()
{
FILE* fp;
struct foo f[10];
fp = fopen("foo.dat", "wb");
fwrite(f, sizeof(struct foo), 10, fp);
// fwrite(f, sizeof(struct foo), sizeof f / sizeof f[0], fp);
// fwrite(f, sizeof f, 1, fp);
fclose(fp);
}
void read_foo()
{
FILE* fp;
struct foo f[10];
fp = fopen("foo.dat", "rb");
fread(f, sizeof(struct foo), 10, fp);
fclose(fp);
}
0494デフォルトの名無しさん
2006/06/23(金) 09:31:22しかし、例えば
gets(str);
gets(str);
と二回続けて書くと1つだけが実行されます。
原因が解る方いらっしゃいますか?
0495デフォルトの名無しさん
2006/06/23(金) 12:27:41前にscanf()が呼ばれていて、
バッファに改行が残っているとみた。
0496デフォルトの名無しさん
2006/06/23(金) 13:07:49素朴な疑問だが、2行目の「しかし」は何に掛かっているんだ?
0497デフォルトの名無しさん
2006/06/23(金) 13:23:530498デフォルトの名無しさん
2006/06/23(金) 14:15:45but (日本語だと「しかし」、「でも」など) を使うとその手前のことがキャンセル
されて後に言ったことが強調される。また口語だといきなり「しかし」を先頭に持っ
て来るという考えてみればおかしな文でも通じてしまうのでいきなり何かを強調
したい時に使える。
というようなことがこの前買ったコールドリーディングの本に書いてありました。
0499デフォルトの名無しさん
2006/06/23(金) 15:21:46意味不明の仕様書しか作れないから、手を入れるより毎回新しいプログラムかいておき替えたほうが早い。
0500デフォルトの名無しさん
2006/06/23(金) 16:41:20それはPGで括ることじゃないと思うが
PMだってSEだって(ry
0501デフォルトの名無しさん
2006/06/23(金) 17:45:21>PGは日本語が不自由だからな。
>意味不明の仕様書しか作れないから
PGの書く仕様書を読まされるあなたは、もしや伝説のコーダー様??
0502デフォルトの名無しさん
2006/06/23(金) 19:30:32仕様書通りに作って納品したら、案の定作り直しでデスマであぼーん。
0503デフォルトの名無しさん
2006/06/24(土) 14:26:55人気のある方がいいです
プログラム経験はあります(perl,ASなど)
0504デフォルトの名無しさん
2006/06/24(土) 14:33:360505デフォルトの名無しさん
2006/06/24(土) 17:12:340506デフォルトの名無しさん
2006/06/24(土) 17:13:04とても、プログラム経験がある人の発言とは思えない。
0507デフォルトの名無しさん
2006/06/24(土) 17:13:18初心者?言語の仕様を習いたいの?それとも教育機関でやる
ありきたりな数学的な知識を使った手法(アルゴリズム)をきちっと理解したいの?
まぁ、どの道どの言語でも、アルゴリズムの部分は共通しているんで
どっちでも良いんだけど、C++にしとけば?
0508デフォルトの名無しさん
2006/06/24(土) 20:19:17人気のあるほうって何だよそれ人気があればいいのか?じゃあVB
0510デフォルトの名無しさん
2006/06/24(土) 21:25:010511デフォルトの名無しさん
2006/06/24(土) 22:10:320512デフォルトの名無しさん
2006/06/24(土) 22:31:390513デフォルトの名無しさん
2006/06/24(土) 23:12:550514デフォルトの名無しさん
2006/06/25(日) 00:23:31これってどのぐらいの難易度なんですか?
自分はかなり努力したつもりですがみなさんからみたら初歩なんですかね?
0515デフォルトの名無しさん
NGNGバブルソートは、アルゴリズムの本にソースが載ってたんで、
自分で考えるなんてことはしたことがない。
0516デフォルトの名無しさん
2006/06/25(日) 00:35:35初歩的だが、もっと効率の良いソートを理解する前の前座程度。
しかも、今後作るプログラムにはバブルソートなんて使わず
もっと高速なソートが使われるし、自分で定義しなくてもできたものがあるしね。
0517デフォルトの名無しさん
2006/06/25(日) 01:01:51どうあっても結婚まで発展しなさそうな気がするんだが
0518デフォルトの名無しさん
2006/06/25(日) 01:13:38どのようにするといいのか教えてください。
0519デフォルトの名無しさん
2006/06/25(日) 01:14:140520デフォルトの名無しさん
2006/06/25(日) 01:15:190521デフォルトの名無しさん
2006/06/25(日) 01:15:41それを言語に置き換えるだけで、アルゴリズム理解しようとは思ったこともなかったわ。
シェルソートとクイックソート覚えるだけで良し
0522デフォルトの名無しさん
2006/06/25(日) 02:05:39C言語を使えばどんなものが作れるのかを教えてください。
その中から簡単そうなプログラムから一つずつ作って行って
C言語を学んでいこうと思います。
0523522
2006/06/25(日) 02:41:58感じたのですが。
C言語のソースって、なんだかPerlによく似ているような気がする。
補足するようですが私はPerlを使ってのCGIなら組んだことはあります。
C言語の\nってもしかして、改行を意味する命令?
ifってPerlで使っているifと一緒?
だったら、画面に文字を表示する命令は
print "文字\n";
でしょうか?
0524デフォルトの名無しさん
2006/06/25(日) 02:46:56本読め寝言を書き込むな。薬でもやってるのか?
0525デフォルトの名無しさん
2006/06/25(日) 02:52:17命令制御コード制御文の基礎から勉強しとけ
0526デフォルトの名無しさん
2006/06/25(日) 03:26:040527デフォルトの名無しさん
2006/06/25(日) 04:24:32都会の本屋に行ったら種類が山ほどあって
近所の本屋に行ったら一冊もなくて
迷います
0528デフォルトの名無しさん
2006/06/25(日) 04:37:50ネットで検索してネットで注文しなさいよ
プログラミング言語C ANSI規格準拠
B.W. カーニハン
これを、理解できるまで何百回も読み直せ
0529デフォルトの名無しさん
2006/06/25(日) 04:41:57お小遣い貯めて買います
0530デフォルトの名無しさん
2006/06/25(日) 13:09:440531デフォルトの名無しさん
2006/06/25(日) 20:21:20立派なニートです
0532デフォルトの名無しさん
2006/06/25(日) 23:59:37いきなり本買う前に近所の図書館で借りて読んでみたほうがいいよ。
0533デフォルトの名無しさん
2006/06/26(月) 00:51:17ちうかそれ、出版された日付が古いぞな・・・
ANSI基準もそれから変わった部分もあるんでは?
0534デフォルトの名無しさん
2006/06/26(月) 01:08:41みなさん返信くださってありがとうございます
なんかへこみましたが‥これからも頑張ります
0535デフォルトの名無しさん
2006/06/26(月) 01:15:55そりゃ経験があなたとは何万時間も違うような人から見たら、
バブルソートなんてアホみたいなものに見えちゃうさ。
別にへこむこと無いよ。そのまま突っ走れ。
0536デフォルトの名無しさん
2006/06/26(月) 01:41:43バブルソートです
0537デフォルトの名無しさん
2006/06/26(月) 01:46:27最初はバブルソートだな。けど、この仕組みを理解するのに苦労するのは
先行き不安だね・・・。単純に、各々の要素を配列の先頭から比較して並び替える程度だし。
まぁ、頭の中だけでなく、実際に数字を並べて自分で並び替えて仕組みを理解してみ。
んな難しくないことだし。
0538デフォルトの名無しさん
2006/06/26(月) 02:15:23どこかの大学の講義資料とか漁ってみ。
学外から見れるところもまだ結構残ってる。
0539デフォルトの名無しさん
2006/06/26(月) 02:32:58ここにあるけど、ここのは配列の後ろの要素から比べているね・・・
自分が見たものの多くは前からだったが、まぁ概要は同じなんで
0540デフォルトの名無しさん
2006/06/26(月) 04:00:40降順に並べるか昇順に並べるかの差。
Cには関係ない。アルゴリズムの本読めばソートの解説載ってる。
数学屋の理論的な蘊蓄付きで。
0541デフォルトの名無しさん
2006/06/26(月) 04:17:200542デフォルトの名無しさん
2006/06/26(月) 12:45:00君は日本語の勉強を先にした方がいいよ。
0543デフォルトの名無しさん
2006/06/26(月) 14:24:46いや、この本を理解できればどんなCのマニュアルも理解できる
っつうことでさ。
おれが生まれて初めて読んだ時は10回読んでも理解できんかったw
0544デフォルトの名無しさん
2006/06/26(月) 14:58:38>>540=>>542は>>539のPDFが見られず
人間の言葉以前に状況も理解できないサル以下の知能しかないようだ
>>539はバブルソートをC言語で表したものだが?
頭が悪い以前に自分勝手な主観や意見だけでゴリ押しする
周りを無視するタイプだな
所詮、低学歴、低俗、低レベルな奴
0545デフォルトの名無しさん
2006/06/26(月) 15:03:51>>538には
>大学の講義資料とか
あるため、大学でそれに関する文献を公表している場所を示して
話が続いただけなんだが、無理やりバブルソートを話を終わらせようと必死こいた結果
ここはお前が中心になって話を進めるスレじゃないんで、他へ行った方が良いよ?
そういう考えはまともなソースをかけないクズの考え。
一つ一つおろそかにせず、順を追うことは重要。
なぜなら、効率が悪いアルゴリズムを改善していくという部分の勉強も含まれているから。
現代人は最初っから便利なものを使っている。が、その便利なもの
手法が作られる経緯をろくに知らず、さらに、現代の問題を無視して
現在使っているものが引き起こす問題をそのままにしておく傾向もある。
そういう改善をする考えをもてなければ、プログラマとしてでなく
知能を持った人間として成長しない人間になるよ。
0546デフォルトの名無しさん
2006/06/26(月) 15:05:48>前からも後ろからも計算量は同じだし。
誰もそんなことは聞いてないw
>降順に並べるか昇順に並べるかの差。
え?後ろから比較するか前から比較するかの差は分かるけど?
>Cには関係ない。
モロにC言語で記述されたソースが提示されてんですけどぉ?
C言語でないって言うならスレタイを見て「お前」には聞いてねーって思えよ?w
>数学屋の理論的な蘊蓄付きで。
数学の話なんてしてねーよ
0547デフォルトの名無しさん
2006/06/26(月) 15:07:530548デフォルトの名無しさん
2006/06/26(月) 15:18:49ま た お 前 か
0549デフォルトの名無しさん
2006/06/26(月) 15:27:080550デフォルトの名無しさん
2006/06/26(月) 15:34:02それは一概に言えないけど、とりあえず上の流れは
明らかに大学のプログラムの講義でC言語を使っているものを例に出しているけどね
そういうと、今度は無理なこじつけとか言い出すだろうけど、C言語において
ソートは出てくるんで、あまり細かいことを言っていたら
それじゃC言語でなんのプログラムを作るの?って話にまで発展しちゃうんで
一例を出しての話はおkだな
0551デフォルトの名無しさん
2006/06/26(月) 16:33:180552デフォルトの名無しさん
2006/06/26(月) 17:08:590553デフォルトの名無しさん
2006/06/26(月) 17:19:28やさしいC
しばたぼうようのC入門のやつ
独習C++
ダイテル親子の本
K&R
0554デフォルトの名無しさん
2006/06/26(月) 17:57:35質問したものですが私のために揉め事になってしまっているようで
どうもすいませんでした
家の物置を整理したところ
兄の使っていたC言語の本と思しき書物がありましたので
ひとまずそれを繙いてみます
0555デフォルトの名無しさん
2006/06/26(月) 19:25:20古そうな本はやめておけ。
Cだって生まれたときから今まで全く同じ姿だったわけではない。
せいぜい10年以内できれば5年以内のもので、お前が合っていると感じればよいと思う。
0556名無し
2006/06/26(月) 19:26:15イケメンなら結婚できる。
void life(const char *job)
{
int age,lifetime;
if(strcmp(job,"プログラマ") == 0)
{
lifetime = 50;
}
else
{
lifetime = 70;
}
age=-1;
0557続き
2006/06/26(月) 19:27:46{
#ifdef IKEMEN
if(9<age && age<25)
{
printf("%d 人目の彼女が出来ました。\n",age-9);
}
else
{
if(age==25)
{
puts("結婚しました。");
}
else
{
if (age>29)
{
printf("%d 人目の愛人が出来ました。\n",age-29);
}
}
}
#endif
sleep(31536000);
}
}
0558デフォルトの名無しさん
2006/06/26(月) 19:49:22if(9<age && age<25)
printf("%d 人目の彼女が出来ました。\n",age-9);
else if(age==25)
puts("結婚しました。");
else if (age>29)
printf("%d 人目の愛人が出来ました。\n",age-29);
}
#endif
でいいじゃないか。
何でそんなにネスト掘り下げてんの?
0559デフォルトの名無しさん
2006/06/26(月) 21:03:39else と if がどこに懸かっているのかが分かりにくいから。
0560デフォルトの名無しさん
2006/06/26(月) 21:29:37C言語を使って「愛していますか?」って表示させるプログラムを組んでみよ。
さらに、YESとNOの選択を用意して
YESを選択すれば「もちろん!」
NOを選択すれば「なわけねーだろ!」
って表示させるプログラムを組んでみよ。
0561デフォルトの名無しさん
2006/06/26(月) 22:05:23いつか、ひと目で解るようになれるといいですね。
0562デフォルトの名無しさん
2006/06/26(月) 23:00:16文字列の受け取り方が分かりません('A`)
int main(void) {
char yn;
do {
printf("愛していますか?");
printf("(y/n) > ");
scanf("%c", &yn);
while (getchar() != '\n') { }
if (yn == 'y') {
printf("もちろん!\n");
break;
} else if (yn == 'n') {
printf("なわけねーだろ!\n");
break;
} else { printf("yかnを入力してください。\n"); }
} while (!(yn == 'y' || yn == 'n'));
return 0;
}
0563デフォルトの名無しさん
2006/06/26(月) 23:09:09みなさん色々指示してもらって。助かります。
>>535さんの発言どうり途中であきらめず、この世界で
やっていこうと本気で思いました。本気で突っ走りたくなったんで
更に更に勉強します。
0564デフォルトの名無しさん
2006/06/26(月) 23:24:54人生負け組みになりたくなければ。
0565デフォルトの名無しさん
2006/06/26(月) 23:31:06ひとそれぞれだよ。
俺は今年で35歳になるが、この業界に入って後悔したことはただの一度も無い。
負け犬だと思ったこともないし。客観的に見れば社会的ステータスは低いんだろうけどね。
0566デフォルトの名無しさん
2006/06/26(月) 23:32:18scanfとgetsこの二つは
なにが違うのですか??
初心者ですいません
0567デフォルトの名無しさん
2006/06/26(月) 23:36:27スキャンエフも文字列とか受け取れるがゲッツの方が使い勝手がよいと自分なりに勝手に拝借して候
0568デフォルトの名無しさん
2006/06/26(月) 23:52:53ところでgetsって
ゲッツ?ゲットエス?
0569デフォルトの名無しさん
2006/06/27(火) 00:16:44getsは文字列(string)を受け取るだけ。
scanfは書式指定(Format)できるから、文字列じゃなくて数値とか
いろいろ入力できる。
ま、本当はバッファオーバーランを防ぐためにもfgetsを使う
べきだと思うが。
0570デフォルトの名無しさん
2006/06/27(火) 00:33:45区切られずに読ませる方法もある。
0571デフォルトの名無しさん
2006/06/27(火) 00:45:55むしろ同じ所などない。
全てにおいて異なる。
0572デフォルトの名無しさん
2006/06/27(火) 00:51:58教えてくれた人ありがとうございます。
勉強になりました
0573デフォルトの名無しさん
2006/06/27(火) 16:32:42readdirでBad addressって言われるのってどういう場合が考えられる?
環境はWindowsのMingwです。
0574デフォルトの名無しさん
2006/06/27(火) 18:58:590575デフォルトの名無しさん
2006/06/28(水) 10:50:190576デフォルトの名無しさん
2006/06/28(水) 23:27:59するときどのようにすればよろしいでしょうか。
目的はSQLでエラーになるような特殊文字を検索時の値として渡さないようにしたい
0577デフォルトの名無しさん
2006/06/28(水) 23:44:41一文字づつチェックすればいいだろ。
それより、そういう文字は普通、エスケープして渡すべきだと思うよ。
0578デフォルトの名無しさん
2006/06/28(水) 23:50:360579デフォルトの名無しさん
2006/06/28(水) 23:52:51つ[strcspn]
0580デフォルトの名無しさん
2006/06/28(水) 23:54:35メタ文字の意味を消失させる事
例えばCの文字列定数なら"\\"みたいな
0581デフォルトの名無しさん
2006/06/28(水) 23:55:29そのSQLの仕様見れ
0582デフォルトの名無しさん
2006/06/29(木) 10:03:59直接実行すると、「Press any key to continue」が出ずに
すぐに終わってしまいます。どうすれば、
直接実行したときに、「Press any key to continue」が出るようにできるのでしょうか?
0583デフォルトの名無しさん
NGNGputs("Press any key to continue.");getch();
と書いておく。
0584デフォルトの名無しさん
2006/06/29(木) 16:56:59末尾に
system("PAUSE");
0585デフォルトの名無しさん
2006/06/29(木) 16:59:05コマンドプロンプトを立ち上げて
実行プログラムがある場所に移動してから実行するとか
0586デフォルトの名無しさん
2006/06/29(木) 20:19:49メニュー画面を作って、メニュー番号を入力させるプログラムを作りたいの
ですが、メニュー画面を表示させることはできるのですが、
画面上の真ん中あたりに、メニュー番号を入力させるところを作りたいのですが、
そこに、カーソルをもってくるにはどうしたらいいですか?
お願いします。
0587デフォルトの名無しさん
2006/06/29(木) 20:48:220589586
2006/06/29(木) 22:12:54VCじゃなくって、まったくのc言語だけでカーソル移動とかさせたいのだけど、
windows.hとか使わないでやる方法教えてください。
0590デフォルトの名無しさん
2006/06/29(木) 22:17:07ない。
そもそも、標準Cにコンソールとか言う概念自体がない。
0592デフォルトの名無しさん
2006/06/30(金) 01:03:38>メニュー画面を作って、
>メニュー番号を入力させるプログラムを作りたいのですが、
>メニュー画面を表示させることはできるのですが、
>画面上の真ん中あたりに、
>メニュー番号を入力させるところを作りたいのですが、
>そこに、
>カーソルをもってくるにはどうしたらいいですか?
なげぇ文だぜ。
きっとプログラムもmain()で冗長に書いているのだろう。
0593デフォルトの名無しさん
2006/06/30(金) 16:42:41先頭から n 文字目までのコピーなら strncpy(*char, *const char, int); で実現できますが、
n 文字目から最後までのコピーは、char配列の1成分ずつfor文等でコピーしないといけないのでしょうか?
0594デフォルトの名無しさん
2006/06/30(金) 17:43:09strcpy(dst, src+n);
0596デフォルトの名無しさん
2006/06/30(金) 19:05:37ポインタとヌル終端文字列の基本テクです
0597デフォルトの名無しさん
2006/06/30(金) 22:56:300598デフォルトの名無しさん
2006/06/30(金) 23:19:56#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int num;
char tmp[256];
do{
num=atoi(gets(tmp));
}while(num!=0);
return 0;
}
0599582
2006/07/01(土) 00:25:26ありがとうございます。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);
}
実行してないからバグあるかもしらん。
0600デフォルトの名無しさん
2006/07/01(土) 01:04:310601デフォルトの名無しさん
2006/07/02(日) 13:57:54b=-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になるのはどうしてでしょうか?
0602・∀・)っ-○◎● ◆toBASh....
2006/07/02(日) 14:07:24%10.4fは、浮動小数の「小数点以上」ではなく「全体の幅」を10文字で表すと言う意味。
もちろん小数点以上の桁数が足りない場合は自動的に補われる。
小数点以下の「4」の部分は、小数点以下に使う桁数の指定。
どっちも7文字でも10文字でも表しきれないので11文字に拡張されて同じ表示になる。
0603デフォルトの名無しさん
2006/07/02(日) 14:15:07http://pc8.2ch.net/test/read.cgi/tech/1148993760/671
0604デフォルトの名無しさん
2006/07/02(日) 14:15:33よくわかりました。ありがとうございます。
0605デフォルトの名無しさん
2006/07/02(日) 14:30:09>601の後者はコンパイルさえ通らないし、二番目の%10.4fの結果は12桁になるようにしか見えない。
0606デフォルトの名無しさん
2006/07/02(日) 16:02:02教えてください。
パラメータ 'hWnd'は一度も使用されない
パラメータ 'hPrevInstance'は一度も使用されない
パラメータ 'lpCmdLine'は一度も使用されない
といった警告はどうしたら消えるのでしょうか?
0607・∀・)っ-○◎● ◆toBASh....
2006/07/02(日) 16:09:20int WINAPI WinMain(
HINSTANCE /* hInstance */
, HINSTANCE /* hPrevInstance */
, LPSTR /* lpCmdLine */
, int /* iCmdShow */
)
{
// ほげほげ
}
0608デフォルトの名無しさん
2006/07/02(日) 16:36:34たまに見かけるんだが。
0609デフォルトの名無しさん
2006/07/02(日) 17:50:20http://pc8.2ch.net/test/read.cgi/tech/1151562315/l50
int WINAPI WinMain(
HINSTANCE,
HINSTANCE,
LPSTR,
int,
)
{
// ほげほげ
};
ってやっちまって、コンパイルエラー出て悩むのを防ぐ馬鹿除けでは?
0610デフォルトの名無しさん
2006/07/02(日) 18:10:340611デフォルトの名無しさん
2006/07/02(日) 18:11:340612デフォルトの名無しさん
2006/07/02(日) 18:40:040613デフォルトの名無しさん
2006/07/02(日) 18:47:37数字を入力するとなんか沢山$が出てきちゃいます。
改善方法はありませんか。よろしくお願いします。
#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("$");
}
}
}
0614デフォルトの名無しさん
2006/07/02(日) 19:58:25・scanf()の戻り値をチェックしないとcの値が有効かどうか判らない。
・cには文字が入っている。それは数値ではないので0と比較する意味が殆どない。
・同じ理由で、$の数は文字コードの値に依存してしまう。
やりたいことがよく判らんが、入力と処理を分けて考えた方がいいんじゃないか?
0615デフォルトの名無しさん
2006/07/02(日) 20:54:59↓
英字か?no→→→数字か?no→→→→→それ以外
yes↓ yes↓ ↓
上に戻る cの数だけ$を表示 終了
0616デフォルトの名無しさん
2006/07/02(日) 21:01:4610進数型で入力にして
if((c <= 'A' && c <= 'Z') || (c <= 'a' && c <= 'z')){
printf("英数字ですぅ\n");
else if((c <= 0){
for(a=1;a<=c;a++)
printf("$");
}
else
break;
このようにしても英字を入力したらダメですし・・・。
上のようなプログラムを作るのは無理ですか。
0617デフォルトの名無しさん
2006/07/02(日) 21:05:30つ isalpha(), isdigit()
0618デフォルトの名無しさん
2006/07/02(日) 21:05:51>>616読め
0619デフォルトの名無しさん
2006/07/02(日) 21:13:220620デフォルトの名無しさん
2006/07/02(日) 21:44:180621デフォルトの名無しさん
2006/07/02(日) 21:48:380622デフォルトの名無しさん
2006/07/02(日) 22:17:10#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;
}
0623デフォルトの名無しさん
2006/07/02(日) 22:40:48c言語って難しいですね。
あと、616は間違いだらけでした・・・。
皆さんありがございました。皆さんが言ってることが理解できるようにもっと勉強します。
0624デフォルトの名無しさん
2006/07/02(日) 22:45:12確かにそれでは文字コードの処理は難しいだろう
…とかいうツッコミは置いといて、
ガンガレ。
0625デフォルトの名無しさん
2006/07/02(日) 22:55:52改行を除去するか、'\0' || '\n'で判定しないと、
常に数字以外と判定されるよ。
0626622
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;
}
0627デフォルトの名無しさん
2006/07/02(日) 23:36:32main関数とは別のファイルに作ったユーザー定義関数を
呼び出すのはどうしたらいいですか?
#includeで取り込めばいいのでしょうか?
そのときは、やっぱり関数のプロトタイプ宣言は必要ですか?
0628デフォルトの名無しさん
2006/07/02(日) 23:37:570629デフォルトの名無しさん
NGNG環境は?
0630デフォルトの名無しさん
2006/07/02(日) 23:39:01WindowsXPです
0631デフォルトの名無しさん
NGNGVCとかなら、プロジェクトに別ファイルを追加すればいいよ。
コマンドラインなら、引数で、mainのファイルと、別のファイルを渡せば勝手にリンクされる。
0632デフォルトの名無しさん
2006/07/02(日) 23:44:39c言語を学校で習ってるんですが
家のPCでソース組むにはどうしたらいいでしょうか?
0633デフォルトの名無しさん
2006/07/02(日) 23:46:01はい次の方どうぞー
0634デフォルトの名無しさん
NGNGメモ帳
0635デフォルトの名無しさん
2006/07/02(日) 23:48:540636・∀・)っ-○◎● ◆toBASh....
2006/07/02(日) 23:49:08Visual C++ Express
0637デフォルトの名無しさん
2006/07/02(日) 23:52:170638・∀・)っ-○◎● ◆toBASh....
2006/07/02(日) 23:55:230639デフォルトの名無しさん
2006/07/02(日) 23:59:08コマンドプロンプトでnotepad[Enter]だ。
0640デフォルトの名無しさん
2006/07/02(日) 23:59:45ttp://www.vector.co.jp/soft/win95/prog/se141451.html
VC++ Expはダウソに時間が掛かるから、今すぐちゃちゃっとやるならこっつで
0641・∀・)っ-○◎● ◆toBASh....
2006/07/03(月) 00:05:420642デフォルトの名無しさん
2006/07/03(月) 01:23:42lccと言えば、LSI C-86のような気がする。
準備(インストール)はなれないと面倒かもしれないが、学校と同じというのは利点かもしれない。
0643デフォルトの名無しさん
2006/07/03(月) 02:02:18今更、lccって気もするなあ。
実務経験的に、gccかVCのインスコと環境構築方法も学習すべき。
0644デフォルトの名無しさん
2006/07/03(月) 07:34:30授業でLSI-C使っているならそれはそれで、よっぽど阿呆で楽しいが。
0645仕様書無しさん
2006/07/03(月) 13:16:25メリットなどがあれば教えてください
見やすいのはhoge[i*j]なのでこっちで書くほうが多いのですが
0646デフォルトの名無しさん
2006/07/03(月) 13:34:54a[i] は *(a + i) の略記法なんだからコンパイラにとってはどっちでも同じ。
見やすい方で書けばいい。
0647デフォルトの名無しさん
2006/07/03(月) 15:55:19ではclock()は重い関数なのでしょうか。
というか、重い関数というのはどこでどうやって知るのでしょうか?
0648デフォルトの名無しさん
2006/07/03(月) 15:58:51OSのソースを読むとか実際に測定してみるとか。
0649デフォルトの名無しさん
2006/07/03(月) 16:06:47ということは重いかどうかというのは環境依存なんですね。
分かりました。どうもありがとうございます。
0650デフォルトの名無しさん
2006/07/03(月) 18:46:45>というか、重い関数というのはどこでどうやって知るのでしょうか?
というか、重い関数というのは何を基準に決めるのでしょうか?
0651デフォルトの名無しさん
2006/07/03(月) 19:14:340652デフォルトの名無しさん
2006/07/03(月) 21:21:280653デフォルトの名無しさん
2006/07/03(月) 22:04:21pow()はpow(5, 2)と5*5を較べれば一目瞭然だし、malloc()の代わりにC99の可変長配列を使うとか、
malloc(100)を1万回の代わりにmalloc(100 * 10000)すればずっと早くなるわけだし。
0654デフォルトの名無しさん
2006/07/03(月) 23:06:35ただし、三重にネストした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;
}
上記で合ってますか?
0655デフォルトの名無しさん
2006/07/03(月) 23:15:420656デフォルトの名無しさん
2006/07/03(月) 23:21:42スマソ
サンクス
0657デフォルトの名無しさん
2006/07/04(火) 01:57:58a , b ? c , d : e , f;
は
a , (b ? (c , d) : e) , f;
と同じでしょうか?
あと、
a = b ? c = d : e = f;
は
a = (b ? (c = d) : (e = f));
ですか?
どうも3項演算子の優先順位が今ひとつ…。
括弧つけろってのは別の話ということで、
よろしくお願いします。
0658デフォルトの名無しさん
2006/07/04(火) 02:11:37で、その式はコンパイル通るのか?
0659デフォルトの名無しさん
2006/07/04(火) 09:13:57VC6で試したけどコンパイルは通りました。
たとえば条件演算子と、代入演算子やカンマ演算子は、条件演算子の方が優先順位の方が高いじゃないですか。
なら、そのまま解釈すると
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項演算子だけは二項演算子とは違った特異な処理をしているんしょうか?
ちょっと入門の質問じゃないかも知れないですが、どうも自分の考え方が理解の域に達していないので、初心者とし
て質問させていただきました。
グーグル先生以外の人間の達人の方、出来ましたら演算子の解釈順序なんかをご教示くださいませんでしょうか。
よろしくお願い致します。
0660デフォルトの名無しさん
2006/07/04(火) 09:28:04a = b ? c = d : e = f;
は
a = (b ? (c = d) : e) = f;
a , b ? c , d : e , f;
は
a , (b ? (c , d) : e) , f;
だ。
? と : の間は分離なんかできるわけがないから、
ここは常に ? ... : は ? (...) : と同じになる。
0661デフォルトの名無しさん
2006/07/04(火) 10:12:54どうもありがとうございます。ただ、まだちょっと納得いってません。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 のどちらかになります。
0662デフォルトの名無しさん
2006/07/04(火) 10:13:39改行が多いみたいで、上の続きです。
a = (b ? (c = d) : e) = f;
a = b ? c = d : e = f;
これはトレースすると、挙動が違うんです。もし手軽に試せる状況なら、
追試していただけないでしょうか?
お手数ですが、よろしくお願い致します。
0663デフォルトの名無しさん
2006/07/04(火) 10:33:12三項演算子は左辺に置けないと思うんだけど。
0664デフォルトの名無しさん
2006/07/04(火) 11:11:47C++だと変数の参照を返すからコンパイル通るんだ…。
ここはC言語スレでしたかorz
たしかにCだと
b ? c = d : e = f;
これは書けませんね。
ただ、演算子の優先順位というに点だけ着目すると、Cでは
(b ? (c = d) : e) = f;
こうなって左辺値に不適合でエラー
C++だと
b ? (c = d) : (e = f)
このように実動作しているようです。直感的にはC++流の解釈の方が
素直な気がしますが、三項演算子の コロン以降だけを特別処理している
気がしてならない…。
スレ汚し失礼しました。C++スレに行って来ます。
0665デフォルトの名無しさん
2006/07/04(火) 11:13:34括弧使え括弧。
0666デフォルトの名無しさん
2006/07/04(火) 11:24:20ですので、最初に書いたとおりに、括弧をつけるのは別の話です。
コンパイラの式処理がどうなっているのか勉強しているので。
0667初心者
2006/07/06(木) 10:08:35数列の長さを設定しました。
キーボードで文字を入力します。
入力した文字が設定した長さを超えるとごみが出て
次の入力を影響します。
設定した長さ以後のごみをメモリからとる方法は??
0668デフォルトの名無しさん
2006/07/06(木) 12:47:590669デフォルトの名無しさん
2006/07/06(木) 13:05:30fpurge(stdin)
で入力バッファに入っている文字を落とせる。
これが無いとちょっと面倒だけど、とりあえず改行文字まで
落としたかったら
while(getchar() != '¥n');
でいいんじゃない?
0670初心者
2006/07/06(木) 13:06:420671初心者
2006/07/06(木) 13:13:37例として:
#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);
}
数列を多い目に入れると、次の入力ができない。
0672もはもは
2006/07/06(木) 13:14:461次元配列に 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の数の個数
を格納するようにし、それらを出力するプログラムを作成せよ。
よろしくお願いします。
0673デフォルトの名無しさん
2006/07/06(木) 13:29:23どうゆう入力を想定してるの?
0674デフォルトの名無しさん
2006/07/06(木) 13:32:11fgets(標準ライブラリのものと仮定)の使い方が間違ってる。
標準入力から入力して欲しいのなら、
fgets(gg, 22, stdin);
fgets(hh, 33, stdin);
のように書かなくては。
0675初心者
2006/07/06(木) 13:54:51プログラムの一部なの。(全体は汚いプログラムなので見せない><)
まぁ、かんたんに言えば、
キーボードから入れた文字を好きな所まで取り
オーバーしたものは消す方法。
神様、私の願いを!!!
0676デフォルトの名無しさん
2006/07/06(木) 14:09:56Cより前に日本語をちゃんと勉強しろよ。
0677デフォルトの名無しさん
2006/07/06(木) 14:17:550678初心者
2006/07/06(木) 14:22:39(本当に外国人です!!!日本語下手で御免なさい><);
会社からcを無理やり勉強させました。
お願いします。
0679デフォルトの名無しさん
2006/07/06(木) 14:27:350680デフォルトの名無しさん
2006/07/06(木) 14:29:310681初心者
2006/07/06(木) 14:29:390682初心者
2006/07/06(木) 14:36:10int 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);
}
0683デフォルトの名無しさん
2006/07/06(木) 14:51:10おかしくなるのは仕様です。面倒ですが、次のように大きなバッファを用意して、
そこに一旦とりこむ必要があります。配列の大きさよりひとつ少なくしか使えないのは、
最後にヌル文字を入れる必要があるからです。
#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);
}
0684初心者
2006/07/06(木) 15:09:57先に入れる所用意する事までは分かりました。
でもこれも限界がある(入力がbufの1024字超えれば)と思います。
(他にも使い所あるので><)
butに無限入力できる方法ないかしら??
(どんな入力も対応できる方法)
よろしくおねがいします。
0685デフォルトの名無しさん
2006/07/06(木) 15:13:22どんな入力にも対応するなんてのは無理。
そのために仕様が存在する。
0686初心者
2006/07/06(木) 15:20:06そうなんですか!!!!
本当にありがとうございました。
はんぱな日本語で迷惑かけました>>礼>>
0687デフォルトの名無しさん
2006/07/06(木) 20:02:38最初に学ぶのはどちらがいいのでしょう…?
またCとJavaは数学的な要素(計算など)がどちらも必要になってくるのでしょうか。
返信お願い致します。
0688デフォルトの名無しさん
2006/07/06(木) 20:11:10将来プログラミングで生計を立てたいのなら、まずCから。もちろんその後Javaもやる。
趣味でやるならどちらでも。Javaオンリーでもかまわない。
0689デフォルトの名無しさん
2006/07/06(木) 20:26:42そうですか。
計算などが出てきてしまうと辛いのですが、両者とも計算式を
使ったりするのですか?
0690デフォルトの名無しさん
2006/07/06(木) 20:35:08プログラミングでどのようなものをやるのかによる。
が、言語そのものの学習中にはほとんど出てこない。
数学的センスがあったほうが有利な場面があるかもしれないが。
0691デフォルトの名無しさん
2006/07/06(木) 20:52:14わかりました。ありがとうございます。
0692デフォルトの名無しさん
2006/07/06(木) 21:03:060693デフォルトの名無しさん
2006/07/06(木) 21:05:18ええ、計算式です。間違いなく計算をする数式です。
0694デフォルトの名無しさん
2006/07/06(木) 21:09:13それはCとJavaの両方とも使うのですか?
Cは関数を計算し求めると聞いたのですが、Javaもなのでしょうか。
0695デフォルトの名無しさん
2006/07/06(木) 21:12:42その書き込み、本気なのか?
だったら、プログラミングなど勉強するだけ無駄だからやめとけ。
0696デフォルトの名無しさん
2006/07/06(木) 21:18:310697デフォルトの名無しさん
2006/07/06(木) 21:27:52私情でやらざるを得ない状況になりましたので、今回[入門]とあったこちらで
質問致しました。
レス参考にさせて頂きます。ありがとうございました。
0698デフォルトの名無しさん
2006/07/06(木) 21:31:170699デフォルトの名無しさん
2006/07/06(木) 21:49:20ミサイル発射の謝罪と補償を要求する!
0700デフォルトの名無しさん
2006/07/06(木) 22:06:020から始めた参考書と、それなりにわかってから読んだ参考書を教えてください
0701デフォルトの名無しさん
2006/07/06(木) 22:17:54もう後輩に売っちまった。
0702デフォルトの名無しさん
2006/07/07(金) 00:42:13お前ひとりに直撃すりゃあ良かったのにな。
0703デフォルトの名無しさん
2006/07/07(金) 11:30:11また有事の際に日本で儲けていたと半島のチョンに蔑まれ続けるぞ。
0704デフォルトの名無しさん
2006/07/07(金) 11:33:220からK&Rの第一版。
20年ぐらい前に覚えたのだが、それ以上にまともに書いてある本はなかった。
その後第二版も読んだ。
0705デフォルトの名無しさん
2006/07/07(金) 11:41:42憂さ晴らしは妥当な板でどーぞ
0706初心者
2006/07/07(金) 12:01:46(ちゃんと見るから!!)
このレスを汚くするな!!
0707デフォルトの名無しさん
2006/07/07(金) 16:37:530708デフォルトの名無しさん
2006/07/07(金) 18:55:02いちいち反応するな。流せ
オレモナー
0709デフォルトの名無しさん
2006/07/07(金) 23:24:530710デフォルトの名無しさん
2006/07/07(金) 23:39:50ごめんね
0711デフォルトの名無しさん
2006/07/07(金) 23:44:17ごめんねごめんね、ごめんね、ごめんね、
ごめんね、ごめんね、ごめんねごめんね、
ごめんねごめんしねごめんね、ごめんね、
ごめんね、ごめんね、ごめんね、ごめんね
ごめんねごめんね、ごめんね、ごめんね、
0712デフォルトの名無しさん
2006/07/08(土) 10:29:130713デフォルトの名無しさん
2006/07/09(日) 00:22:08スペースキーが押されたときの判定の仕方を教えてください
0714デフォルトの名無しさん
2006/07/09(日) 00:29:350715713
2006/07/09(日) 00:37:55OSはWindowsXPです。よろしくお願いします
0716デフォルトの名無しさん
2006/07/09(日) 03:15:58操作ミスなどで警告音を鳴らしたいのですが、
MessageBeep()関数だと単純な音しか鳴らせず、おもしろくありません。
かといって、警告音のためにWAV作ったりするのも大変なので、
少しだけシャレた警告音を簡単に慣らす方法がありませんか?
0717デフォルトの名無しさん
2006/07/09(日) 03:24:0710ミリ秒ごとにアルペジオさせれば和音っぽく聞こえて
周りをちょっと驚かすぐらいはできるよ。
0718デフォルトの名無しさん
2006/07/09(日) 03:36:44>>713
標準c言語だと、getchar()かな?
でも、エンターが押されないと、stdinに入ってこない。
MS-Cだと、getch()が1文字ずつとれる。(エコーなし)
エコーしたいなら、getche()。
<conio.h>に入っている。
0719デフォルトの名無しさん
2006/07/09(日) 04:20:510720デフォルトの名無しさん
2006/07/09(日) 05:49:53グラフィックだけ出力してくれるサーバっぽいアプリケーション
ってないですか?
0721デフォルトの名無しさん
2006/07/09(日) 05:57:510722デフォルトの名無しさん
2006/07/09(日) 05:58:370723デフォルトの名無しさん
2006/07/09(日) 06:12:09>>720
system("start C:\\temp\\test.gif");
なんてやれば、windowsならgif拡張子に関連付けしてるアプリを
よんでくれるはず。(.bmpとか.jpgでもOK)
0724デフォルトの名無しさん
2006/07/09(日) 11:38:34普通は鯖といちいち通信するのが面倒だから自前でライブラリ抱えます。
少しだけシャレた警告音はwavでも鳴らさないと無理な悪寒。
どんなのが少しだけシャレた警告音なのか録音してウpしてみてくれ。
常に入力を監視する。
スペースかリターンが押されたのを判定すればいい。
普通はキー入力があったらイベント飛んで来るから、入力に対応した処理を記述しておけばOSが実行してくれる。
0725713
2006/07/09(日) 11:39:330726デフォルトの名無しさん
2006/07/09(日) 11:56:05BorLand C++ Builder6
てどちらが使いやすい?
0727デフォルトの名無しさん
2006/07/09(日) 22:16:51ムカつくほうは使わないほうがいいと思う。ストレス感じるだけ。
0728デフォルトの名無しさん
2006/07/09(日) 23:29:29単なる数値計算やら簡単なプログラム(アルゴリズムの勉強)程度なら
Borland C++ 5.5が手軽で良いYO!
0729716
2006/07/10(月) 01:26:0410mS毎に?
うーん、他にいい方法がなかったら試してみます(汗
0730デフォルトの名無しさん
2006/07/10(月) 01:36:13「'」という文字を配列に格納したいのですが、エラーが出てうまくいきません。
エラーは以下の3つです。
文字列定数は1文字か2文字でなければならない。
,が必要。
文字列または文字定数が閉じていない。
宜しくお願いします。
0731デフォルトの名無しさん
2006/07/10(月) 01:41:010732デフォルトの名無しさん
2006/07/10(月) 03:17:38ありがとうございます!
0733デフォルトの名無しさん
2006/07/10(月) 12:36:59せめて半角で書いて欲しいとオモタ
0734デフォルトの名無しさん
2006/07/10(月) 20:38:160735デフォルトの名無しさん
2006/07/10(月) 21:49:40typedef wchar_t WCHAR;
#ifdef UNICODE_
typedef WCHAR TCHAR;
#else
typedef CHAR TCHAR;
#endif
typedef TCHAR *PTCHAR;
0736726
2006/07/10(月) 21:50:19サンクス
0737デフォルトの名無しさん
2006/07/10(月) 21:58:420738734
2006/07/10(月) 22:08:03アリガ10
0739デフォルトの名無しさん
2006/07/10(月) 22:28:49putchar(112)
0740デフォルトの名無しさん
2006/07/10(月) 22:58:260741デフォルトの名無しさん
2006/07/11(火) 02:29:380742デフォルトの名無しさん
2006/07/11(火) 02:33:22WindowsならWin32
LinuxならGTK+
どっちもCライブラリ
0743デフォルトの名無しさん
2006/07/11(火) 09:08:17BorlandC++と一緒にTurboDebugger落として使ってみたら、
このデバッガって、キャラクタ画面ベースのUIなのな。
あまりに懐かしいスタイルにめまいがしたyo!
0744デフォルトの名無しさん
2006/07/11(火) 16:09:480745デフォルトの名無しさん
2006/07/11(火) 22:50:17malloc以外のHeapCreateやHeapAlloc(GetProcessHeapとかなら問題ないのでしょうか?
0746デフォルトの名無しさん
2006/07/11(火) 23:12:42確保するときと解放するときとで、同じヒープハンドルを用いれば問題ない。
けれどDLLでメモリを確保して、そこへのポインタをEXEに返すのだったら、
DLLはそのメモリを解放する関数も公開するのが一般的だと思う。
0747デフォルトの名無しさん
2006/07/11(火) 23:19:17ちなみに前者がいけない理由が、ことなるメモリマネジメントルーチンを使っている
可能性があるから。VCのDebug/Releaseモードとか。
0748デフォルトの名無しさん
2006/07/11(火) 23:45:52そのルーチン覗いてみるのも勉強になるかもしれませんね。
とりあえず一般的な方法でしてみたいと思います。
ありがとうございました。
0749デフォルトの名無しさん
2006/07/12(水) 01:01:46signed short foge[]={
0x0001,
0x7fff,
0x8000,
0xffff
};
コンパイルするとマイナス値(0x8000と0xffff)で
warning C4305: 'initializing' : 'const int ' から 'short ' へ切り詰めます。
というワーニングがでます。
C言語ではsigned 16bitを表す接尾子が無いようなんで、
キャストで回避するしか無いんでしょうか?
0750デフォルトの名無しさん
2006/07/12(水) 01:04:40何故const signed shortにしないのだろう。
それはさておき、-0x8000, -0x0001ではダメ?
0751デフォルトの名無しさん
2006/07/12(水) 01:11:56よくわからないけど、キャスト以外の方法で、警告消したいだけなら
0x8000 → -32768
0xFFFF → -1
とか、#pragma とかがあるよ。
0752デフォルトの名無しさん
2006/07/12(水) 01:26:04ファイルからの読み込みなのですが
改行がCR(0D)のみで書かれているテキストファイルから
テキストモードでデータを読み込みたいのです
fscanf(fp,"%d",&data1);
のように書くと、だいたいはCRのみの改行も改行として読んでくれるのですが
たまに改行をすっ飛ばして変な値を読んでしまいます
改行がCRのみのテキストファイルをうまく読み込む方法はありませんでしょうか
0753デフォルトの名無しさん
2006/07/12(水) 01:27:430754デフォルトの名無しさん
2006/07/12(水) 10:47:280755デフォルトの名無しさん
2006/07/12(水) 11:17:190.00000000000000000000000000000000000000034?
0756デフォルトの名無しさん
2006/07/12(水) 11:49:450.000000000000000000000000000000000000034
0757デフォルトの名無しさん
2006/07/12(水) 14:13:29あ、ごめん、3のところが38番目になればいいのね。
じゃあfloat型って3.4E-38〜3.4E+38って書いてあるから
34000000000000000000000000000000000000〜0.000000000000000000000000000000000000034?
でも有効桁7桁ってどういうこと?
0758デフォルトの名無しさん
2006/07/12(水) 14:42:48>でも有効桁7桁ってどういうこと?
数学の時間寝てたのか
それともまだ習ってないのか
まあとにかくググれ。
0759デフォルトの名無しさん
2006/07/12(水) 15:01:17float fe;
fe=5e2;
って書くと
500.000000
って出力されるけど、どこが7桁?
0760デフォルトの名無しさん
2006/07/12(水) 15:21:00俺のところで実行したらこうなるよ。
#include <stdio.h>
main()
{
float f = 1.0 / 3;
double d = 1.0 / 3;
printf("%.30f\n", f);
printf("%.30f\n", d);
return 0;
}
結果
0.333333343267440795898437500000
0.333333333333333314829616256247
0761デフォルトの名無しさん
2006/07/12(水) 15:22:11変数を各関数で共有する方法ってグローバル変数以外に何かありますか?
0762デフォルトの名無しさん
2006/07/12(水) 15:31:493.4E-38 は 3.4 * 10の-38乗 だ。
有効桁数は扱える桁数。7桁なら 1.234567 とか 1.234567E+100 とか、
とにかく 7 桁は扱えるが 1.2345678 と書いても最後の 8 が扱えない。
>>759
どう出力されるかということと内部的に何桁保持されているかという
ことは別の話。
0763デフォルトの名無しさん
2006/07/12(水) 15:35:45いやそうなるのはわかるけど、
float型が3.4E-38〜3.4E+38で有効桁7桁ってどういう意味?
float f = 1.0/3
printf("%f")
だと
0.333333
で7桁まで出力されるって意味?
3.4E-38〜3.4E+38ってどういうこと?
出そうと思えば50桁以上出せるけど…
0764デフォルトの名無しさん
2006/07/12(水) 15:39:15必要な変数は構造体のメンバにして
その構造体へのポインタを受け渡しする。
0765デフォルトの名無しさん
2006/07/12(水) 15:39:28じゃあfloat型が3.4E-38〜3.4E+38っていうのは?
0766デフォルトの名無しさん
2006/07/12(水) 15:50:213.400000*10^38のほうが正しいかな?
0767デフォルトの名無しさん
2006/07/12(水) 15:53:15ありがとうございます、さっそくチャレンジしてみます
0768デフォルトの名無しさん
2006/07/12(水) 15:53:27はあ・・・
でも10の50乗でも100乗でも入力できるし出力も出来るよ?
0769デフォルトの名無しさん
2006/07/12(水) 15:56:39「浮動小数点型と誤差」
ttp://www.kyoto-su.ac.jp/~yamada/programming/float.html
0770デフォルトの名無しさん
2006/07/12(水) 16:04:31ああ…それよんだんだけど
1.175494 10-38 < float の絶対値 < 3.402823 10+38
って書いてあるよね。
私の本は
3.4E-38〜3.4E+38
って書いてあるよ。
それで、例えば、
float f=1000000000000000000000000000000000000000000000000.00000000000000000000000000000000000000001;
printf("%40.40f",f);
って書いても
1000000000000000000000000000000000000000000000000.00000000000000000000000000000000000000001;
って表示されるよ。38超えてるよ?
0771770
2006/07/12(水) 16:07:090772デフォルトの名無しさん
2006/07/12(水) 16:11:00コンパイラ何使ってるの?
0773デフォルトの名無しさん
2006/07/12(水) 16:11:580775デフォルトの名無しさん
2006/07/12(水) 16:16:17>>770のソースを「全部」コピペしてみて。動かしてみるから。
0776770
2006/07/12(水) 16:20:30#include <stdio.h>
main(){
float f=1000000000000000000000000000000000000000.0000000000000000000000000000000000000001;
printf("%40.40f\n",f);
}
終わり。
0777デフォルトの名無しさん
2006/07/12(水) 16:22:13うちでは"Inf"って表示されるけど・・・
gccのバージョンはいくつ?
0778770
2006/07/12(水) 16:24:22です。
0779770
2006/07/12(水) 16:26:210780777
2006/07/12(水) 16:30:09おかしいな・・・。うちとまったく一緒のコンパイラなのに。
ちなみに
printf("%d\n", sizeof(1000000000000000000000000000000000000000.0000000000000000000000000000000000000001));
ってやってみて。
8って表示されるはずだから。これはその数値がdouble型のリテラルだって
コンパイラが判断してることを示してる。それをfloat型に代入するときに
暗黙の型変換が行われるはずなんだけど・・・。
ってことで、俺はお手上げ。
0781777
2006/07/12(水) 16:30:420782デフォルトの名無しさん
2006/07/12(水) 16:34:30そのソースでそのgccだと、警告が表示されると思うのだがそれをコピペして見給え。
0783770
2006/07/12(水) 16:38:20printf("%d\n", sizeof(1000000000000000000000000000000000000000.0000000000000000000000000000000000000001));
ってしたら
core dump
しました。
うちの環境がおかしい?WinXP Cygwin最新のものだけど…
入れなおすか…?
どうもありがとうございました。うちがおかしいってことが分かったのでうれしいです。
0785デフォルトの名無しさん
2006/07/12(水) 16:39:530786770
2006/07/12(水) 16:41:12あ、いや、間違ってた
printf("%d\n", sizeof(1000000000000000000000000000000000000000.0000000000000000000000000000000000000001));
でちゃんと8って表示されました。
>>782
警告も何にも出ませんよ。普通にa.exeすると結果表示されます。
0788782
2006/07/12(水) 16:46:07>>777
警告出ないか? main()の戻り値の型がないと。漏れの端末だとこうなるのだが。
--
$ gcc --version ; gcc foo.c
gcc (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
foo.c:3: warning: return type defaults to `int'
foo.c: In function `main':
foo.c:6: warning: control reaches end of non-void function
0789770
2006/07/12(水) 16:47:14uname -a は
CYGWIN_NT-5.1 ****** 1.5.19(0.150/4/2) 2006-01-20 13:28 i686 Cygwin
です。名前は伏せ。珍しくもないけど
0790デフォルトの名無しさん
2006/07/12(水) 16:48:04make使ってて更新されたと認識されていないとか、違うところのa.exeが起動されているとか。
make使わず直接gccを動かしてみるとか、明示的にパスを指定してみるとかしてみたら?
0791デフォルトの名無しさん
2006/07/12(水) 16:49:54マウスで範囲選択して右クリックでコピペされると思うけどなぁ。
0792デフォルトの名無しさん
2006/07/12(水) 16:50:080794777
2006/07/12(水) 16:53:26うちより一つ新しいバージョンだな。ちなみにうちは、
CYGWIN_NT-5.1 MARS 1.5.18(0.132/4/2) 2005-07-02 20:30 i686 unknown unknown Cygwin
最新の1.5.20も怪しいところがあるみたいだから、しばらく更新はしないでおこうw
0795770
2006/07/12(水) 16:53:38あ、範囲指定できたんだCygwinて・・・
gcc (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
しかでません。makeつかってません。フォルダの中にa.exeもソースも一個しかありません。
0796デフォルトの名無しさん
2006/07/12(水) 16:56:04./a
または
./a.exe
でやってる?
0798デフォルトの名無しさん
2006/07/12(水) 16:58:25printf("%d\n", sizeof(float));
で出してみて。
0799770
2006/07/12(水) 17:01:150800782
2006/07/12(水) 17:03:02CYGWIN_NT-5.0 whee 1.5.19(0.150/4/2) 2006-01-20 13:28 i686 Cygwin
コンパイラよりも疑うべきはライブラリか?
0802770
2006/07/12(水) 17:09:16やっぱおかしいんすね。環境作り直します。
Cygwin入れなおします。ちゃんと正規のルートで(学校の先輩からもらわずに)。
どうも失礼しました。
0803デフォルトの名無しさん
2006/07/12(水) 17:13:310804デフォルトの名無しさん
2006/07/12(水) 17:14:130805デフォルトの名無しさん
2006/07/13(木) 13:27:50>>804
gcc を自分でコンパイルできるとスーパーハカーなの?
じゃあ俺も10年ぐらい前からスーパーハカーだったんだね。
0806デフォルトの名無しさん
2006/07/13(木) 13:38:59この本の説明めちゃくちゃ解り辛い・・・
まぁ単に俺が知識0ってこともあるんだろうけど、どの入門書籍もこんなもん?
0807デフォルトの名無しさん
NGNGまったく初めてなら、入門書一冊読んだだけじゃなかなか難しいと思う。
0808デフォルトの名無しさん
2006/07/13(木) 14:15:29どんな本読んでも上達出来ます。
0809デフォルトの名無しさん
2006/07/13(木) 14:15:500810デフォルトの名無しさん
2006/07/13(木) 14:31:58説明なしでいきなり「ここはこうなりますね、ここはこうなるので」
みたいなところが多くて・・・
Cからはじめるのがそもそも間違いなんだろうか
0811デフォルトの名無しさん
2006/07/13(木) 17:53:08まずはAから段階を踏まないと
0812デフォルトの名無しさん
2006/07/13(木) 18:32:39そういうのに一々疑問を持ってストレスを貯めるやつはプログラム書けないよ
すべてそういうもんなんだと素直に覚えないと。
そもそもプログラミングの入門書って根幹に触れないからみんな説明不足といわれれば説明不足になる罠
0813デフォルトの名無しさん
2006/07/13(木) 18:44:26挨拶はハローとか決まりきった定型パターンがあるからそう言うのは理屈無しに覚えるしか無い。
日本語でも、10年以上話して使っていて未だに表現方法とかの新発見がある様に、覚えたてでその言語の全てを理解するのは無理。
とりあえず義務教育の英語の教科書の様に、入門書を最後まで一通りやってみて、分からない所は他の書籍や先輩に訊くとかセミナーや研修にでも出るとかで補完していかないと。
自分でそう言う学習法が出来ない香具師は、金出してスクールに通ったほうがいいよ。
0814デフォルトの名無しさん
2006/07/13(木) 18:49:560815デフォルトの名無しさん
2006/07/13(木) 19:04:240816デフォルトの名無しさん
2006/07/13(木) 22:45:20必要が出てきたり気になったら自分で調べたりこういう場所とかで聞けばいいよ
入門書の中には一部間違ったことが書いてあるものもあるから
完全に鵜呑みってのもちょっとまずいことはまずいんだけどね
まあ気にするな
0817デフォルトの名無しさん
2006/07/14(金) 01:46:26float使ったら小数点以降が表示されてあまり美しくない。
小数点以降を表示しない方法、教えてください。
0818デフォルトの名無しさん
2006/07/14(金) 01:52:24{
Card deck[40];
int *face[] = {1,2,3,4,5,6,7,8,9,10};
char *suit[] = {"hart","daiya","kurab","superd"};
srand(time(NULL));
fillDeck(deck, face, suit);
shuffle(deck);
printf("baeojunnbisimasu");
return 0;
}
プログラミングの一部なんですが
コンパイルが通りません
int faceのところがだめらしいのですが何処が悪いんでしょうか?
どなたか解る方おしえてください
0819デフォルトの名無しさん
2006/07/14(金) 01:54:23整数型にcastして表示しろ
0820デフォルトの名無しさん
2006/07/14(金) 01:55:12int *faceではなく、int face
0821デフォルトの名無しさん
2006/07/14(金) 02:02:38#include <stdio.h>
int main(void)
{
float alfa, beta, ganm;
printf("7桁の整数を入力して下さい(1回目):");
scanf("%f",&alfa);
printf("7桁の整数を入力して下さい(2回目):");
scanf("%f",&beta);
printf("\n%f * %f = %f\n", alfa, beta, alfa * beta);
}
0822デフォルトの名無しさん
2006/07/14(金) 02:11:56マジでありがとう^^
通りました
0823デフォルトの名無しさん
2006/07/14(金) 03:31:14#って話か?
0824デフォルトの名無しさん
2006/07/14(金) 08:34:11int main(void)
{
int n,temp,m=0;
FILE*fp1=fopen("2バイト文字.txt","r");
FILE*fp2=fopen("改行テスト.txt","w");
while((n=fgetc(fp1))!=EOF){
if(n=='\n'){
m=0;
}
else if(m==40){
fputc('\n',fp2);/*ここが上手くいかない模様*/
m=0;
}
fputc(n,fp2);
m++;
}
fclose(fp1);
fclose(fp2);
printf("end\n");
return 0;
}
0825824
2006/07/14(金) 08:37:11例えば、行の文字数40のやつを、原稿用紙の形式に変換したい。
しかし、>>824のやつだと、改行後の一文字目が変になってしまいます。
文字コードの問題なのかどうかすら分かりません。
ここが変だ、という場所の指摘をお願いします。
0826824
2006/07/14(金) 08:44:11tempとprintf("end\n")は気にしないで……。
0827デフォルトの名無しさん
2006/07/14(金) 10:15:49main(){
int i;
float f;
double d;
long l;
char st[80];
printf("文字1文字,%%c,int,%&i=");
scanf("%c",&i);
printf("%%c,int,i=%c\n",i);
printf("文字列,%%s,char,st=");
scanf("%s",st);
printf("%%s,char,st=%s\n",st);
printf("文字列入力の時には&は不要\n");
printf("8進数%%o,int,%&i=");
scanf("%o",&i);
printf("%%o,int,i=%o\n",i);
printf("%%d,int,i=%d\n",i);
printf("10進数%%d,int,%&i=");
scanf("%d",&i);
printf("%%d,int,i=%d\n",i);
0828デフォルトの名無しさん
2006/07/14(金) 10:17:35printf("16進数%%x,int,%&i=");
scanf("%x",&i);
printf("%%x,int,i=%x\n",i);
printf("%%d,int,i=%d\n",i);
printf("long型%%ld,long,%&l=");
scanf("%ld",&l);
printf("%%ld,long,l=%ld\n",l);
printf("%%d,int,l=%d\n",l);
printf("実数float型%%f,float,%&f=");
scanf("%f",&f);
printf("%%f,float,f=%f\n",f);
printf("%%d,int,f=%d\n",f);
printf("実数double型%%lf,double,%&d=");
scanf("%lf",&d);
printf("%%lf,double,d=%lf\n",d);
printf("%%d,int,d=%d\n",d);
}
これやると、例えば
8進数%o,int,&i=70
とか入れると、iに7しか入ってくれなくて、0が次の10進数の処理に自動的に入っちゃうんだけど、なぜ?
0829デフォルトの名無しさん
2006/07/14(金) 11:01:09もちろん最初から標準語で覚えられるような環境を探すのも手。
gcc方言とか、IA方言とか、VC方言とかウィンドウズ方言とかいくらでも環境依存の癖はある。
0830デフォルトの名無しさん
2006/07/14(金) 11:39:34その直前の文字列の入力をコメントにしたらどうなる?
0831デフォルトの名無しさん
2006/07/14(金) 13:17:59うるう年の判定プログラムで
#include<stdio.h>
int main(void){
int n;
n=1;
printf("年数を入力してください");
scanf("%d",&n);
if(n%400=0)printf("うるう年である");
else if(n%4=0&&n%100!=0)printf("うるう年である");
else printf("うるう年ではない");
return(0);}
左辺の値がないとかエラーがでるんですけど
0832デフォルトの名無しさん
2006/07/14(金) 13:30:410833デフォルトの名無しさん
2006/07/14(金) 13:44:21>>830
今度は、
8進数%o,int,&i=179
と3桁にすると、iに17が入って、9が次の10進数の処理に自動的に入ります。
なぜ?
0834824
2006/07/14(金) 17:19:31scanf("%c",&i);の時、1000とか入力すると、%cの分の1をscanf("%c",&i);で取り込み、残りの000は次のscanf("%s",st); に勝手に入力されてしまう。
8進数だから、7、8、9なんかは入力できない。
すると179は17まで8進数と見なされ、残りの9は型が違うものと認識される。
17dとか入力しても同様。
型が違うものと認識されたものは、次のscanfに勝手に入力されてしまう。
標準入力ストリームがバッファリングの構造を取るから。
型が違うもの、と認識されたものは、一度バッファに戻ってから、次のscanfに入力されてしまう。
環境によっては、scanf("%d",i);のところで、a、とか入力すると、
型が違うものだからバッファに戻す→バッファからaがscanfに入力される
というルーチンを延々と繰り返してしまう。
この繰り返しが起こらない環境ならば、型が違うものでも強制的な変換が行われ、scanfに取り込まれるということ。
0835デフォルトの名無しさん
2006/07/14(金) 18:40:08どうもありがとう
なるほどね・・・
0836デフォルトの名無しさん
2006/07/14(金) 21:29:18while((n=fgetc(fp1))!=EOF){
fputc(n,fp2);
m++;
if(n=='\n'){
m=0;
}
else if(m==40){
fputc('\n',fp2);
m=0;
}
}
入力ファイルがすべて 1文字==2バイトと決まっているならこれで良いけど
wchar_tを使うか、文字コードの判定をするかしたほうが良いかも。
0838デフォルトの名無しさん
2006/07/15(土) 08:47:40確変をひいた場合にループをさせる時どのようにすればいいのでしょうか?
for(;;){
switch(GetRandom(1,2)){
case 1:b++;
case 2:break;
}
}
乱数で1だったらループ2だったらfor文を抜けたいとおもうのですが、
これだと止まってしまいます。何故でしょうか。
0839デフォルトの名無しさん
2006/07/15(土) 09:19:20直接の原因は、break は一つ外側の構文に対してしか作用しないこと。
switch 内で break しても、その switch の外側に抜けるだけ。
それで結局、for を抜け出せなくて無限ループになっている。
ネストされた構文から任意の場所に制御を渡したい場合は goto を使うか、
関数を書いてそれを呼ぶしかない。
あと、その case の書き方はやめておけ。
switch はフォールスルーと言って、break を書いておかないとその後の
case にある処理に突入してしまう。
for(;;){
switch(GetRandom(1,2)){
case 1:
b++;
break;
case 2:
goto end_for;
}
}
end_for: ;
0840デフォルトの名無しさん
2006/07/15(土) 09:27:03そのbreakでは、switch文しか抜けられない。
for文を抜けたければ、goto文とかflagをつかえばいい。
◆goto文の場合
for(;;){
switch(GetRandom(1,2)){
case 1:b++;
case 2:goto FOR_EXIT;
}
}
FOR_EXIT:;
◆flag
int flag = 1 ;
for(;flag;){
switch(GetRandom(1,2)){
case 1:b++;
case 2:flag=0;
break;
}
}
0841840
2006/07/15(土) 09:28:390842デフォルトの名無しさん
2006/07/15(土) 09:33:50ありがとうございます。
gotoが便利そうなんでそっちを使いたいとおもいます。
これでやっと先に進めそうです。
ありがとうございました。
0843デフォルトの名無しさん
2006/07/15(土) 09:39:09for(;;){
if(GetRandom(1,2)==2) break
b++;
}
も頭の隅っこに置いとくといいかも
0844デフォルトの名無しさん
2006/07/15(土) 10:24:29char st[10]="text";
char *p;
p=st;
すると、st[10]の先頭アドレスがpに入るって書いてあるんですけど、
printf("%p,%p",p,&p);
pの値と&pの値が違うのはどうしてですか?
0845デフォルトの名無しさん
2006/07/15(土) 10:32:480846デフォルトの名無しさん
2006/07/15(土) 10:44:260847デフォルトの名無しさん
2006/07/15(土) 17:31:59と言ってみる
0848デフォルトの名無しさん
2006/07/15(土) 22:31:54ちゃんと画像のついたソフトやゲームなんかも作れるんですよね?
0849デフォルトの名無しさん
2006/07/15(土) 23:51:47できるけど、標準Cと言われるものの範囲では、画像を表示するなどと言ったことができず、
また、コマンドプロンプトで文字を入出力するのとは、桁違いに面倒だから、入門レベルでは扱わないというだけ。
0850デフォルトの名無しさん
2006/07/16(日) 03:37:48自分はVB8アカデミック(=SE)を使っているのですが。
#include <stdio.h>
int main(void){ printf("HELLO"); return 0; }
のようなDOS窓で動作するようなコードは正常にコンパイルできるのですが、
#include <windows.h>
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
) {
MessageBox(NULL, "Kitty on your lap","メッセージです。", MB_OK);
return 0;
}のようなウィンドウズアプリケーションをコンパイルしようとすると必ずエラーがでてしまいます。
↑のコードは今思い出しながら書いたものなのでもしかすると間違っている箇所もあるかも
しれませんが書籍を参考に10個ほどサンプルを丸写ししてコンパイルしても同じ結果だったので
コードに問題はないと思います。
VB8を再インストールしてみたりもしたのですがまったく効果がなく、もしかして
インストール後になにか他にもインストールしたり環境設定したりと別の作業が必要なのかとも思ったのですが・・・・
どなたか原因がわかる方がいらっしゃいましたら助言いただけないでしょうか。
BBSもプログラミングも初心者なもので失礼もあるかとは思いますがよろしくお願いします。長文ですみません^^;
0851デフォルトの名無しさん
2006/07/16(日) 03:41:08それとも0以外なら実行されるんですか?
0852デフォルトの名無しさん
2006/07/16(日) 03:50:050853デフォルトの名無しさん
2006/07/16(日) 03:50:16書店に行って、自分に合う入門書を買ってくること。
0854デフォルトの名無しさん
2006/07/16(日) 03:51:47()内に=や<>なんかがない場合は
()の中に入る数字(変数でもいい)が0以外なら真と見なしループを続ける(=実行)
0以外なら偽と見なしループを抜け出します。
0855デフォルトの名無しさん
2006/07/16(日) 03:56:20ありがとうございました
>>853
入門書読んでるんですけど、そこがかいてなかったのです
0856デフォルトの名無しさん
2006/07/16(日) 03:59:06堂々と間違った回答をされても困るんだが。
0857デフォルトの名無しさん
2006/07/16(日) 04:09:32while文とごっちゃになってましたOrz
真ならループではなくただ実行されるだけでした
偽ならスルーします。
>>856さんこれであってますでしょうか?
0858デフォルトの名無しさん
2006/07/16(日) 07:15:37for(; GetRandom(1, 2) != 2; b++)
;
0859デフォルトの名無しさん
2006/07/16(日) 07:49:25while(GetRandom(1, 2)!=2)b++;
0860デフォルトの名無しさん
2006/07/16(日) 07:58:25>0以外なら偽と見なし(略)
0861デフォルトの名無しさん
2006/07/16(日) 09:00:28エラーメッセージを書け。
あと、CのコンパイルにVBは関係ないだろ。
0862デフォルトの名無しさん
2006/07/16(日) 13:04:572進数表記する型ってないんですかね。
ライブラリさがしてるんですけど・・・
0863デフォルトの名無しさん
2006/07/16(日) 13:30:54#include <stdio.h>
/* 静的アサーション */
void SASSERT_(int(*p)[1]) { }
#define SASSERT(b) SASSERT_((int(*)[(b) ? 1 : -1])0)
/* 2進1バイトリテラル */
#define BYTE2(x) \
(SASSERT(1 < sizeof (#x) && sizeof (#x) <= 9), /* 1〜8 文字に制限 */ \
SASSERT((0x##x & ~0x11111111) == 0), /* 余計なビットがあるとエラー */ \
(0x##x >> 0) & 0x01 | \
(0x##x >> 3) & 0x02 | \
(0x##x >> 6) & 0x04 | \
(0x##x >> 9) & 0x08 | \
(0x##x >> 12) & 0x10 | \
(0x##x >> 15) & 0x20 | \
(0x##x >> 18) & 0x40 | \
(0x##x >> 21) & 0x80)
/* 2進2バイトリテラル */
#define WORD2(x1, x0) ((BYTE2(x1) << 8) | BYTE2(x0))
/* 2進4バイトリテラル */
#define DWORD2(x3, x2, x1, x0) ((WORD2(x3, x2) << 16) | WORD2(x1, x0))
int main() {
printf("%X\n", BYTE2(01011011));
printf("%X\n", WORD2(11001011, 10000011));
printf("%X\n", DWORD2(01011011, 11001011, 10000011, 00000000));
}
0864デフォルトの名無しさん
2006/07/16(日) 13:31:52もしかしてBASICの&Bみたいに2進でリテラル書きたいってこと??
0865デフォルトの名無しさん
2006/07/16(日) 13:56:36>>864 そうそう。型指定文字のこと。
0866デフォルトの名無しさん
2006/07/16(日) 14:42:030867デフォルトの名無しさん
2006/07/16(日) 14:43:170868デフォルトの名無しさん
2006/07/16(日) 14:44:15>>863 で何か不都合でもあるんだろうか。
文法的な事を知りたかっただけなの?
0869デフォルトの名無しさん
2006/07/16(日) 14:46:04すいませんが説明していただけるとたすかります
0870デフォルトの名無しさん
2006/07/16(日) 14:48:240871デフォルトの名無しさん
2006/07/16(日) 14:50:360872デフォルトの名無しさん
2006/07/16(日) 14:52:09例えば、BYTE2(01011011) なら 0x##x は 0x01011011 になる。
この時、結局 (0x##x >> 0) & 0x01 は
(0x01011011 >> 0) & 0x01 になる。
つまり、0 ビット目を抜き出す操作に相当する。
(0x##x >> 3) & 0x02 は 4 ビット目を 1 ビット目に持ってきて、
それ以外のビットを消す。
(0x##x >> 6) & 0x04 は 8 ビット目を 2 ビット目に持ってきて(ry
こうやって、0x01011011 を2進数 01011011 にしている。
これらの計算は静的に行われるので、
コンパイル時に全部計算が行われて、
単なる定数に置き換わる。
速度は気にする必要ない。
0874デフォルトの名無しさん
2006/07/16(日) 14:57:22へー、それ知らんかった。勉強になった。
0875850
2006/07/16(日) 19:52:59訂正。
×自分はVB8アカデミック(=SE)を使っているのですが。
○自分はVS8アカデミック(=SE)を使っているのですが。
エラーメッセージは850で書いたコードをコンパイルした場合、
(9) : error C2664: 'MessageBox' : 2 番目の引数を 'const char [18]' から 'LPCTSTR' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
というメッセージがでます。
0876デフォルトの名無しさん
2006/07/16(日) 20:05:10_T("Kitty on your lap")
_T("メッセージです。")
とするか
プロジェクトのプロパティ→構成プロパティ→全般→文字セット→マルチバイト文字セットを使用する
に設定。
LPCTSTRはUnicodeを使うかマルチバイト文字を使うかでLPCWSTRかLPCSTRになる。
MessageBoxもMessageBoxWとMessageBoxAで切り替わる。
単にダブルクォーテーションで囲んだだけだとcharの配列 → LPCSTRに変換→引数の型不一致。
文字列リテラルを_T()で囲むとUnicodeの時には頭にLを付けてくれるからLPCWSTRにできる。
0877デフォルトの名無しさん
2006/07/16(日) 20:37:58これの間違いを教えて頂きたいッス!
文字列を入力させる。その中に”ABC”という部分文字列(連続)が含まれていれば「OK」、そうでなければ「NO!」と出力される。
#include<stdio.h>
main()
{
char moji[256];
int n=0,flag=0;
scanf("%s", &moji[n]);
while(moji[n]!='\0'){
if(moji[n]=='O' && moji[n+1]=='U' && moji[n+2]=='P')flag=1;n++;}
if(flag=1){printf("OK\n");}
else printf("NO!\n");
}
0878875
2006/07/16(日) 20:48:57詳しい説明ありがとうございますっ
しかし知識がなさすぎて理解できませんでしたOrzすみませんホント
林○比古の本でも買って勉強してきます。
ありがとうございました。
0879デフォルトの名無しさん
2006/07/16(日) 20:50:04printf("%s\n", strstr(moji, "ABC") ? "OK" : "NO!");
0880デフォルトの名無しさん
2006/07/16(日) 20:56:51できるの?
できるなら何かヒントちょうだい
0881デフォルトの名無しさん
2006/07/16(日) 20:56:56いただきましたーーーー!!
ありがとうございました☆
0882デフォルトの名無しさん
2006/07/16(日) 21:04:59全画面ゲームの場合排他モードで動作してるかもしれないので無理かも
0883デフォルトの名無しさん
2006/07/16(日) 21:11:110884デフォルトの名無しさん
2006/07/16(日) 23:49:46そうなんだ。排他モードなんてものがあるのか。どうも。
0885デフォルトの名無しさん
2006/07/17(月) 04:07:28そういう場合はd3dx9のラッパーを書いて
Presentメソッドに細工して自分が描画したいものを割り込ませる
0886デフォルトの名無しさん
2006/07/17(月) 04:40:50鯖側でプログラムやってる香具師はちゃんとチェック機能付けて排除する対策してると思うよ。
0887デフォルトの名無しさん
2006/07/17(月) 05:50:48へー、なんか凄いヒントもらっちゃった。ありがと
>>886
ボットも面白いかもね。でも後ろで動かしとけばいいんじゃないの?分かんないけど
いいヒント貰ったのであとはDXスレ見てくる
0888デフォルトの名無しさん
2006/07/17(月) 10:07:25main(){
char *c;
*str='c';
int *i;
*i=1;
printf("*c=%c\n",*c);
printf("*i=%d\n",*i);
}
これの何がわるいんだか教えてちょんだい・・・
0889デフォルトの名無しさん
2006/07/17(月) 10:09:25*str='c';->*c='c';
0890デフォルトの名無しさん
2006/07/17(月) 10:10:510891デフォルトの名無しさん
2006/07/17(月) 10:12:54cもiも、まだどこも実体を指していないうちに*で間接参照しているから。
0892デフォルトの名無しさん
2006/07/17(月) 10:19:11>これの何がわるいんだか教えてちょんだい・・・
あんたの頭。
・エラーがでた。
→エラーメッセージを張れ。
・想定したとおりの動作をしない。
→想定した動作と実際の動作を書け。
・間違いを指摘された。
→指摘した人間に聞くか、どう指摘されたか書け。
0893デフォルトの名無しさん
2006/07/17(月) 10:26:12main(){
char *c;
char ch;
ch='c';
c=&ch;
int *i;
int in;
in=1;
i=∈
printf("*c=%c\n",*c);
printf("*i=%d\n",*i);
}
でもこんな書き方してるソースなんて見たことないぜ。
0894デフォルトの名無しさん
2006/07/17(月) 10:32:40そんな書き方する意味がないからな
0895デフォルトの名無しさん
2006/07/17(月) 10:33:36お前入門者以下だからよそ池
0896デフォルトの名無しさん
2006/07/17(月) 10:44:420897デフォルトの名無しさん
2006/07/17(月) 10:46:06まず、なにをしたいのか日本語で説明してもらえまいか?
0898デフォルトの名無しさん
2006/07/17(月) 11:01:110899デフォルトの名無しさん
2006/07/17(月) 11:09:100900デフォルトの名無しさん
2006/07/17(月) 11:10:07俺が持ってる林晴比古著新C言語入門シニア編のポインタの初期化てところに
ex1
int d;
int *p=&d;
ex2
char s[80];
char *p=s;
ex3
char s[80];
char *p=&s[3];
ex4
char *p = "ABCDE";
ex5
char *p=(char *)malloc(100);
って書いてあったけど、あれ*pって配列ABCDEなら文字A(p[0])が入るよな〜と思って、
char *c;
*c='c';
ってやってみたら*cの値に'c'が入るのかなと思ってやってみたらできなかったので
なぜだか聞いてみた。
でも
int *i;
*i=1;
はちゃんと1って出てきたよ?char型とint型って違う動きするの?
0901デフォルトの名無しさん
2006/07/17(月) 11:14:56> int *i;
> *i=1;
> はちゃんと1って出てきたよ?char型とint型って違う動きするの?
たまたま動いてるだけ。実際はメモリを破壊してる。
あと
char *c = (char *)malloc(100);
は
char *c;
c = (char *)malloc(100);
と同義で、*c = とは別
0902デフォルトの名無しさん
2006/07/17(月) 11:28:030903デフォルトの名無しさん
2006/07/17(月) 11:41:06発行見てみたら1992年だった
古すぎ?
0904デフォルトの名無しさん
2006/07/17(月) 12:11:37古いか新しいかじゃなくて、肝心な事がちゃんと書いてあるかどうか。
>>900の疑問に答えてくれる本、っていう基準で探すのもテだぞ。
0905デフォルトの名無しさん
2006/07/17(月) 12:30:420906デフォルトの名無しさん
2006/07/17(月) 15:49:17COSTUNIT *cost_list, int **fare_table) {
ていう関数を書いたとき、
引数のint **fare_tableはmainでどーやって指定すればいいんですか?
ちなみにfare_tableは2次元配列です。fare_table[30][30]って感じ。
0907デフォルトの名無しさん
2006/07/17(月) 16:06:42}
main(){
int f[30][30] ;
foo(f) ;
}
でいいんじゃない?
0908デフォルトの名無しさん
2006/07/17(月) 16:37:58引数の型が指定されてるんですわ
これ基本情報技術者試験の過去問なんだけど
0909デフォルトの名無しさん
2006/07/17(月) 16:52:32int **fare_tableが二次元配列なんてありえない。
移し間違えじゃないのか。
0910デフォルトの名無しさん
2006/07/17(月) 17:00:03#include
typedef struct { int max_dist; /* 上限距離(km) */
int unit_dist; /* 単位距離(km) */
int unit_cost; /* 単位距離ごとの運賃(円) */
} COSTUNIT;
void make_fare_table(int, double *, COSTUNIT *, int **);
int calc_fare(double, COSTUNIT *);
void make_fare_table(int num, double *dist_list,
COSTUNIT *cost_list, int **fare_table) {
int idx0, idx1;
double dist;
for (idx0 = 0; idx0 < num; idx0++) {
fare_table[idx0][idx0] = 0;
dist = 0.0;
for (idx1 = idx0 + 1; idx1 < num; idx1++) {
dist += dist_list[idx1-1];
fare_table[idx0][idx1]=fare_table[idx1][idx0]
=calc_fare(dist, cost_list);
}
}
}
0911デフォルトの名無しさん
2006/07/17(月) 17:01:17int fare = 0, idx = 0;
int lower_limit; /* 区間の下限(直前の区間の上限距離) */
int upper_limit; /* 区間の上限(現在の区間の上限距離) */
lower_limit = 0;
upper_limit = cost_list[0].max_dist;
while (upper_limit!=0 && dist > (double)upper_limit) {
fare += ceil((double)(upper_limit-lower_limit)
/ (double)cost_list[idx].unit_dist)
* cost_list[idx].unit_cost;
lower_limit = upper_limit;
upper_limit = cost_list[++idx].max_dist;
}
fare += ceil((dist - (double)lower_limit)
/ (double)cost_list[idx].unit_dist)
* cost_list[idx].unit_cost;
return fare;
}
0912デフォルトの名無しさん
2006/07/17(月) 17:09:20main(){
COSTUNIT cost_list[4];
cost_list[0].max_dist=20;
cost_list[0].unit_dist=5;
cost_list[0].unit_cost=100;
cost_list[1].max_dist=100;
cost_list[1].unit_dist=10;
cost_list[1].unit_cost=180;
cost_list[2].max_dist=500;
cost_list[2].unit_dist=50;
cost_list[2].unit_cost=850;
cost_list[3].max_dist=0;
cost_list[3].unit_dist=100;
cost_list[3].unit_cost=1650;
double dist_list[10]={3.0,5.5,10.0,3.8,8.2,7.6};
int **fare_table[30][30];
make_fare_table(4,dist_list,cost_list,fare_table);
}
0913デフォルトの名無しさん
2006/07/17(月) 17:14:32写し間違いじゃないのなら、問題が間違ってる。
0914デフォルトの名無しさん
2006/07/17(月) 17:17:41ないだろうな。
0915デフォルトの名無しさん
2006/07/17(月) 17:21:020916デフォルトの名無しさん
2006/07/17(月) 17:23:22ちがうよ。ここみてよ
ttp://www.rs.kagu.sut.ac.jp/~infoserv/j-siken/H17a2/pm10.html
0917デフォルトの名無しさん
2006/07/17(月) 17:33:29問題が間違ってる。特にfare_table[m][n]のm != nだとありえない度うp。
0918デフォルトの名無しさん
2006/07/17(月) 17:33:34なヨカン
0919デフォルトの名無しさん
2006/07/17(月) 17:37:40でも普通間違ってる問題出すか!?仮にも国家試験だろう!
他の問題からベンキョします
0920デフォルトの名無しさん
2006/07/17(月) 17:49:23fare_table[m][n]で、m != nダヨ。
0921920
2006/07/17(月) 17:51:32>>918で正解な予感。
int *fare_table[30]で、実引数はfare_table。
動かしてないけど。
0922デフォルトの名無しさん
2006/07/17(月) 18:10:02それで出てきました。アリガトン
0923デフォルトの名無しさん
2006/07/17(月) 18:32:060924デフォルトの名無しさん
2006/07/17(月) 18:44:38ない。
http://www.kouno.jp/home/c_faq/c14.html#7
0925デフォルトの名無しさん
2006/07/17(月) 18:45:010926デフォルトの名無しさん
2006/07/17(月) 19:50:26「位置表示子」とはなんぞ?
読み出しオフセットが気になるならftell()でもして味噌。
0927デフォルトの名無しさん
2006/07/17(月) 22:05:12問題2キーボードから英字1つを入力し、その英字より2つ前の英字(または数字、記号)を出力するプログラムを作れ
すみませんまったくの初心者です
宿題でまったくわかりません
0928デフォルトの名無しさん
2006/07/17(月) 22:05:56C/C++の宿題を片付けます 66代目
http://pc8.2ch.net/test/read.cgi/tech/1151477344/l50
0929デフォルトの名無しさん
2006/07/17(月) 23:17:58ありがとうございます。
0930デフォルトの名無しさん
2006/07/18(火) 11:26:53char c;
struct letter *follow;
struct letter *other;
char *trans;
} LETTER;
LETTER *p_root;
void main(){
LETTER *p = p_root;
って書いたら、
p
には何が入ってるんですか?
0931デフォルトの名無しさん
2006/07/18(火) 11:30:31*p_rootに入っていた内容。初期化してないから何が入ってるかわからない。
0932デフォルトの名無しさん
2006/07/18(火) 11:44:43p_root->follow->c='a';
p_root->other->c='n';
p_root->trans=NULL;
だったら?
0933デフォルトの名無しさん
2006/07/18(火) 12:56:13ブラウザで例えるとmp3などのURLをクリックすると再生プレイヤーが立ち上がるような感じで、
そのmp3のURLを渡して起動させたいのですが
よろしくお願いします。
0934デフォルトの名無しさん
2006/07/18(火) 13:36:38各チーム名はA, B, C,...Zのようにアルファベットの頭文字で表されるものとする.
nは26以下,mは4以下とするとき,以下のような試合の日程表をつくりなさい.
全試合が終了するのに必要な日数と全試合数も表示すること.
Number of Teams -> 4
Number of Games per Day -> 4
-------- Schedule ----------
Day 1
Game 1 : A vs B
Game 2 : A vs C
Game 3 : A vs D
Game 4 : B vs C
Day 2
Game 1 : B vs D
Game 2 : C vs D
---------------------------
Total Number of Days : 2 days
Total Number of Games : 6 games
---------------------------
誰か作ってくれ・・・
わからん・・・
0935デフォルトの名無しさん
2006/07/18(火) 14:43:07留年しろ。
0936デフォルトの名無しさん
2006/07/18(火) 15:01:43pはポインタ。p_rootもポインタ。
その値は代入によって同じになっているはず。
つまり、p->c == p_root->c && p->follow->c == p_root->follow->c && p->other->c == p_root->other->c && p->trans == p_root->transということ。
>>933
環境依存でよければ、例えばWindowsならShellExecute()辺りが向いているかもしれない。
しかし、その程度のことも調べられないようなら手を出さない方が無難だとも思う。
>>934
宿題スレにでも逝ってみたら?
0937デフォルトの名無しさん
2006/07/18(火) 15:20:11ありがとうございます。
これを足がかりにもう少し調べて見ます。
0938デフォルトの名無しさん
2006/07/18(火) 15:20:420939デフォルトの名無しさん
2006/07/18(火) 15:58:56次にね
while( p!=NULL ){
p=p->other;
}
って書いてあるんですよ。
このpって何を示してるの?
pのメンバ全部のこと示してる?
ちなみにこれも基本情報の過去問だけど…
http://www.rs.kagu.sut.ac.jp/~infoserv/j-siken/H18a2/pm10.html
↑ここ
0940デフォルトの名無しさん
2006/07/18(火) 17:17:26LETTER型のオブジェクト
0941デフォルトの名無しさん
2006/07/18(火) 17:17:330942デフォルトの名無しさん
2006/07/18(火) 18:03:43どうも〜
0943デフォルトの名無しさん
2006/07/18(火) 18:17:53Cでシェルを実装し、パイプラインをpipeシステムコールを使ってできる
ようにしたいのですが、3つ以上のコマンドを繋ぐことができません。
どのようにすればよろしいでしょうか?
0944936
2006/07/18(火) 19:00:14だからpはポインタなんだってばさ。ポイントしている先があるかないかのチェックをしているわけだね。
だから>942は間違い。>941もおかしいな、先頭のみを指しているわけではないのだから。
つーか、ポインタの勉強してきなさいよ。
>>943
コメントもろくにないソースをいきなり読まされる身になってくれ。
つーか、どこが入門レベルなんだか。
0945943
2006/07/18(火) 19:30:15すいません、実行後に標準入力からコマンドを入力し、そのコマンドをgetcl関数で
スペース毎にでargmv[0],argmv[1]...に格納し、exec_one_command関数で実行。
その中にパイプがあればパイプの処理をするという仕様です。
自分でやったところはexec_one_command内でgetclでできたコマンドからパイプを
見つけてそれをNULLに置き換え、パイプの数に応じてexecvpで実行していくという
ところです。
なんとかして完成させたいのですが、ここじゃ不味いですか('A`)
どこいけばいいでしょうか・・・
0946デフォルトの名無しさん
2006/07/18(火) 20:07:28すいません
どこでベンキョしてくればいいでしょう
お勧めの本とかページとかあります?
0947デフォルトの名無しさん
2006/07/18(火) 20:08:56{
return;
}
void funcA()
{
funcB();
printf();
}
こういう場合ってprintf()って作動しますか?
0948デフォルトの名無しさん
2006/07/18(火) 20:11:120949デフォルトの名無しさん
2006/07/18(火) 23:20:14funcA()を呼べばね。
>>946
書籍スレにでもどうぞ。
>>945
ここでもいいけど、みての通りここだとレスつかないねぇ。
pipeなんて非標準だし、環境依存OKスレかUnixプログラミングスレ辺りかね。
0950デフォルトの名無しさん
2006/07/19(水) 00:36:41先頭指してなかったら、キャストもせずに、->演算子使えるわけないじゃん。
0951デフォルトの名無しさん
2006/07/19(水) 00:51:03アホ?
0952デフォルトの名無しさん
2006/07/19(水) 01:02:500953デフォルトの名無しさん
2006/07/19(水) 07:50:030954デフォルトの名無しさん
2006/07/19(水) 08:03:07大丈夫、お前よりもよっぽど賢いコンパイラにとって、それらはどちらも同じと解釈されるから気にするな。
#まぁ、前者を推奨するがな。
0955デフォルトの名無しさん
2006/07/19(水) 09:10:13今のコンパイラならどっちでもいいな。
0956デフォルトの名無しさん
2006/07/19(水) 09:12:340957デフォルトの名無しさん
2006/07/19(水) 09:52:470958デフォルトの名無しさん
2006/07/19(水) 10:03:370959デフォルトの名無しさん
2006/07/19(水) 10:14:250960デフォルトの名無しさん
2006/07/19(水) 10:46:030961デフォルトの名無しさん
2006/07/19(水) 11:29:390962デフォルトの名無しさん
2006/07/19(水) 16:27:560963デフォルトの名無しさん
2006/07/19(水) 17:36:000964デフォルトの名無しさん
2006/07/19(水) 17:42:050965デフォルトの名無しさん
2006/07/19(水) 22:24:10void SASSERT_(int(*p)[1]) { }
#define SASSERT(b) SASSERT_((int(*)[(b) ? 1 : -1])0)
は、単に
#define SASSERT(b) ((void)(int(*)[(b) ? 1 : -1])0)
でいいことに今頃気づいた。
0966デフォルトの名無しさん
2006/07/21(金) 00:37:15のプログラムをちゃんと打って、シグウィンでコンパイルしても
実行したら全くカウントしてくれないのですが、
どうしてでしょうか?誰か教えて下さい。
0967デフォルトの名無しさん
2006/07/21(金) 02:24:54そのプログラムを貼れ。
0968デフォルトの名無しさん
2006/07/21(金) 07:27:35/* 入力される文字をカウント;第1版 */
main()
{
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
0969デフォルトの名無しさん
2006/07/21(金) 08:29:160970デフォルトの名無しさん
2006/07/21(金) 09:21:38#include <stdio.h>
/* 入力された文字を複写;第2版 */
main()
{
int c;
while((c = getchar()) != EOF)
putchar(c);
}
0971デフォルトの名無しさん
2006/07/21(金) 10:54:100972デフォルトの名無しさん
2006/07/21(金) 11:50:37FLIST.c:75: 警告: 引数 2 個の `strcat' を渡しますにより、キャストなしで整数からポインタを作りました
:wq!
上記の警告がでました。問題の75行目 strcatは以下です。
strcat(strLine,ctime( &buf.st_mtime ));/*警告箇所*/
st_mtimeはファイル情報を取得する処理【stat関数】のメンバでbufの変数定義は
struct stat buf;、strLine変数はchar strLine[255];としております。
警告を回避するキャストの方法を教えてください。環境はLinux redhatです。
0973デフォルトの名無しさん
2006/07/21(金) 12:24:15#include <time.h>
してないってことはない?
0974デフォルトの名無しさん
2006/07/21(金) 12:40:43プラットホームをUnixからlinuxに移した際に
リコンパイルで警告がでました。
0975デフォルトの名無しさん
2006/07/21(金) 13:04:56その周辺ロジックだけのプログラム作っても再現する?
こちらでは問題ないのだが。
以下、テストコード。
--
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
int main(int argc, char ** argv)
{
char strLine[255];
sprintf(strLine, "%s:", argv[1]);
struct stat buf;
stat(argv[1], & buf);
strcat(strLine,ctime(&buf.st_mtime));
puts(strLine);
return 0;
}
0976デフォルトの名無しさん
2006/07/21(金) 13:32:38それは何か入力後に EOF を渡す必要がある。
これは Cygwin だとどうなっているのか分からないが、
UNIX 系 OS だとデフォルトでは Ctrl+D でできるのが
普通だ。Windows のコマンドプロンプトや MS-DOS
プロンプトでは Ctrl+Z だ。どちらかを入力してみれば
できるんじゃないだろうか。
0978デフォルトの名無しさん
2006/07/21(金) 15:18:180980デフォルトの名無しさん
2006/07/22(土) 14:43:42while(1) だと警告がでる
for(;;) だとでない
0981デフォルトの名無しさん
2006/07/23(日) 12:03:52という警告文が出るけどなに?
0982デフォルトの名無しさん
2006/07/23(日) 12:07:13#include <stdio.h>がないとか
printfがpirntfになってたりとかじゃないかな?
0983981
2006/07/23(日) 12:10:28その辺は確認しているのだけど
そのへんが問題なのかな?
0984デフォルトの名無しさん
2006/07/23(日) 12:33:160985981
2006/07/23(日) 12:46:51int main( )
{
int n=500+ 150;
printf("%d", n);
return 0;
}
こんな感じなんだけど諸兄の
意見はいかがですかね?
0986デフォルトの名無しさん
2006/07/23(日) 12:48:02char s[3] = "FF"
↓
a == 255
みたいなイメージで、文字データとして16進の形でcharの配列に入ってるものをint形の変数に代入する方法ってない?
0987デフォルトの名無しさん
2006/07/23(日) 12:48:410988デフォルトの名無しさん
2006/07/23(日) 12:52:461行目で既に破綻が
0989デフォルトの名無しさん
2006/07/23(日) 12:59:38strtol
0990981
2006/07/23(日) 13:00:32ありがと。いまきずいた(汗
0992デフォルトの名無しさん
2006/07/23(日) 18:01:340993デフォルトの名無しさん
2006/07/24(月) 10:40:460994デフォルトの名無しさん
2006/07/24(月) 10:55:000995デフォルトの名無しさん
2006/07/24(月) 18:38:560996デフォルトの名無しさん
2006/07/25(火) 09:49:420997デフォルトの名無しさん
2006/07/25(火) 16:42:160998デフォルトの名無しさん
2006/07/25(火) 18:11:33次スレ
C言語なら俺に聞け(入門篇) ぱぁと2〜
http://pc8.2ch.net/test/read.cgi/tech/1153818463/
スレタイについては反省していない
0999デフォルトの名無しさん
2006/07/25(火) 18:21:20乙
1000デフォルトの名無しさん
2006/07/25(火) 18:29:03おまえというやつは・・・乙
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。