C言語なら、俺に聞け! <25>
レス数が1000を超えています。これ以上書き込みはできません。
0001スーパープログラマ日(以下略)
NGNG・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART4
http://pc.2ch.net/test/read.cgi/tech/1022961238/l50
・前スレ
<24> http://pc.2ch.net/test/read.cgi/tech/1024033400/l50
<23> http://pc.2ch.net/test/read.cgi/tech/1023024817/l50
<22> http://pc.2ch.net/test/read.cgi/tech/1022402165/l50
コンパイラなどのリンクは>>2-3 あたり
void日下部氏の激動の半生は過去スレを参照
0002デフォルトの名無しさん
NGNG00031
NGNGgcc
http://gcc.gnu.org/
【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
【製品版。有料】
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
【その他】
http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/prog/progf.html
http://www.bloodshed.net/index.html
0004デフォルトの名無しさん
NGNG乙
>2
早
0005デフォルトの名無しさん
NGNG単純にstring.hに置き換えて問題ないですか?
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGなぜおとなしく日本語で書かないの?辞書引いたよ
0008デフォルトの名無しさん
NGNG日本語がわからないから
0009デフォルトの名無しさん
NGNGもしかして日本人じゃなくて?隣国の方ですか?
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG5TB
0012デフォルトの名無しさん
NGNG0013前スレ 883
NGNG前スレの >>846 >>954 へ
10 ていう数字は >>846 で malloc で 10 文字分確保してたから。
それに合わせて書いただけ。
>>846 の場合だと「一桁の数字」と「改行文字」と「ヌル文字」で 3 以上あればいい。
入力文字数分あればいいけど、特に理由がないときは 80 ぐらい。
80 てのは、端末の1行分から来てるらしい。(未確認)
あとは、 atoi に掛ける前に改行文字をヌル文字に置き換えた方がいいよ。
0014今度こそ
NGNG0015デフォルトの名無しさん
NGNGlinux(vine 2.5)で、ディレクトリの中のファイル数を
知りたいのですが、readdir(3)をNULL まで回して数える以外に
方法はあるのでしょうか。言語はCです。DIR構造体の中に
何か情報があるのでしょうか。
0016デフォルトの名無しさん
NGNG16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
配列なんですけど、プログラム教えておながい。
0017デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1024592344/l50
0018デフォルトの名無しさん
NGNGreaddir()でいいと思う。
おおざっぱでよければ、ハードリンク数が
ファイル数+2ぐらいになってるかもしれない。
001918
NGNG・・・もう寝よう。
002015
NGNGハードリンク数は使えない…んですかね。
地道にループするしかないのかな。
002115
NGNG変わらないんですね。(ディレクトリのハードリンク数は)
ディレクトリの数しか見ていない?
ファイルシステムがまったく分かってない発言をしている
気がしますが。
0022デフォルトの名無しさん
NGNGmalloc(0x18, 0xeffff348, 0xb78964, 0x35000000, 0x0, 0xb78981)
_smalloc(0x18, 0xeefabcf8, 0x8, 0x0, 0x0, 0xeefa5868)
--- シグナル SIGSEGV を発生しました ---
sigacthandler(0xb, 0xefffe9a8, 0xefffe6f0, 0xef666b60, 0x2c, 0xac5020)
__sighndlr(0xb, 0xefffe9a8, 0xefffe6f0, 0xef654598, 0xac5010, 0xac4ff0)
__libthread_segvhdlr(0xb, 0xefffe9a8, 0xefffe6f0, 0xef666b60, 0x0, 0x0)
日本語Solaris2.6、コンパイラはWorkShop5.0。実行ファイルがでかいとの、
でばっかのバグで、メモリアクセス検査は使えない。
http://sources.redhat.com/ml/glibc-linux/2000-q2/msg00094.html
には、獲得してないメモリを開放すると、まったく関係のないところで、
SIGSEGVが発生するとあるが、本当なのか?
002315ボヤキ
NGNGセット、とかできればなあ。DIR構造体はどういう構造なんでしょう。
__dirstreamのデファインとしかヘッダに書いてないし。
0024デフォルトの名無しさん
NGNGBSD 系だと telldir(), seekdir() なんてシステムコールがあった気がするが。
何にせよ ANSI C の範囲外だから、UNIX プログラミングのスレに移動しない?
0025デフォルトの名無しさん
NGNGたぶん 22 のソースのバグ。たぶん malloc() で割り当てたメモリブロックの前後
に管理情報が書いてあって、そこを壊しているので、結果的に次の malloc で死
んでるのだと思う。
Solaris 2.6 だとソースは読めんと思うが Solaris 8 のソースで malloc の実装を
確認してみたら? もしくは、別の(性能より耐久性重視の)実装をした malloc で
差し替えてみるとか。
0026shige
NGNG0027デフォルトの名無しさん
NGNGif else for while do continue break goto return
auto static extern register volatile
この他にC言語の予約語はありますか?(ただしCプリプロセッサ命令は除きます)
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG確かにobsoleteっていう慣用表現はobsoleteだと思いますが…
0030デフォルトの名無しさん
NGNGswitch
0031名無しさん@カラアゲうまうま
NGNGcaseとdefaultも入れろよ。
0032デフォルトの名無しさん
NGNG何のために調べてるか知らないけど、Cの文法が載ってる適当な本を探した方が
早くないか? >>27
0033デフォルトの名無しさん
NGNG003427
NGNG列挙しようとすると普段使っていても思い出せないものが結構ありますね・・・
autoなんて使っていないものは思い出すのに。
>>32
昔借りた本にファイルの中に存在するCのキーワードの個数を数えろという問題があったので、それを解こうと思ったんです。
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGcontが漫才ではなくcontinueの略と知ったのは小学6年の頃だった・・・
0038デフォルトの名無しさん
NGNG_Bool
_Complex
_Imaginary
0039葵
NGNG3×3行列Aに対し
1,Aを読み込みAの行列式を出力
2,Bを読み込みA×Bを出力
3,|A|≠0の時のA^-1を出力
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG1.2.は簡単なので
3.掃き出し法(ガウス・ジョルダン消去法)を用いる。
「ガウス・ジョルダン消去法」でぐーぐるってみ。
0042デフォルトの名無しさん
NGNG旧スレageんな、ぼけ
0043デフォルトの名無しさん
NGNG-a[1][1]*a[3][2]*a[2][3]-a[3][1]*a[2][2]*a[1][3]-a[2][1]*a[1][2]*a[3][3]
0044デフォルトの名無しさん
NGNGあ、ちなみに配列の添え字を0から始める時は全部1引いてね。
0045デフォルトの名無しさん
NGNGに宿題投げるんじゃいハゲ。
0046デフォルトの名無しさん
NGNG|A|≠0のとき、各要素について余因子行列Δ11〜Δ33を求め、
A^-1=1/|A|×余因子行列(Δ11〜Δ33)で求める。
Δ11 = (a[2][2] a[2][3]
a[3][2] a[3][3] ) のように。
0047デフォルトの名無しさん
NGNG...........
あとは自分でやれ。
0048デフォルトの名無しさん
NGNG(-1)^(i+j) * △ij = Aij
の、Aijの方でないかと。
0049デフォルトの名無しさん
NGNG小行列式は、適当にいくつかの行といくつかの列を取って作る行列です。
それに対し余因子は、aijのi行j列を取り除き、それに符号(-1)^(i+j)を
掛けたものです。
〜 〜
逆行列A^(-1)=1/|A|×Aで、ここにAはAの余因子行列のつもりで
書きました。
読みにくかったのならすみません。
0050デフォルトの名無しさん
NGNGやっぱいろんなスレに宿題投げといて、時間経ってから答えだけ見にくるってか。
0051デフォルトの名無しさん
NGNG見たよ。数学の基礎もわからないで、プログラムだけ作ってやったって
何の役にも立たないからねえ。放置放置。
0052デフォルトの名無しさん
NGNGさらに突っ込んで(しかもスレ違いで)申し訳ないんだけど、
最後に掛けてるAって、転置しないといけなかったような気が。
それとも、逆行列を求めるときに登場する余因子行列Aは、すでに転置済みなの?
0053デフォルトの名無しさん
NGNG余因子行列は、転置済みです。これぐらいなら初等数学の本を読めば
書いてあるから、特に書かなかった。
0054デフォルトの名無しさん
NGNGISOイメージ(2048バイト/セクタ) → RAWイメージ(2352バイト/セクタ)
RAWイメージ → エラー訂正 → ISOイメージ 等々
ECCとEDCの求め方と使い方(エラーの訂正方法と検出方法)が分かりません
そこら辺の事を詳しく説明している日本語か英語のホームページか
Cのソースがあるホームページを知ってる方は教えて下さい
0055デフォルトの名無しさん
NGNG簡単に出てきたぞ
0056デフォルトの名無しさん
NGNGbitですよ。
0057デフォルトの名無しさん
NGNG0xffffffffから0x7fffffffまで
005857
NGNG0x8000000からか?
0059デフォルトの名無しさん
NGNG>long は一般に最小・最大いくつまで使えるんですか?bitですよ。
問題聞き直してこい。
0060デフォルトの名無しさん
NGNG> bitですよ。
わけわからん
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGこれはどのCPU、どのコンパイラでも同じですか?
エンディアンとか関係あるのでしょうか?
0063デフォルトの名無しさん
NGNG普通は、エンディアンは考えなくていいとおもう。
0064デフォルトの名無しさん
NGNGエンディアンを問題にしなきゃいけないのは他CPUにデータを渡す場合。
0065デフォルトの名無しさん
NGNGどうもありがとうございます
ちなみにunsigned int型の整数なんですけど
考えなくてはいけない場合とかないですよね・・・
0066デフォルトの名無しさん
NGNG無謀なキャストの時もだよ〜〜〜ん。
0067デフォルトの名無しさん
NGNGそっか、char->long(32bit)とかすると値変わるね。
0068名無しさん@カラアゲうまうま
NGNGunsignedだとだいたい同じだが、singedだと保証花井。
0069デフォルトの名無しさん
NGNG先ほどはすいません。32bitの間違いでした。(気にしないで下さい)
16進数ではなく、10進数で教えてください。お願いします。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGそもそもどんな腐ったCの入門書にも必ず書いてあるもんだと思うが・・・
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG微妙にひねくれた書き方だね。
0075デフォルトの名無しさん
NGNGLONG_MIN〜LONG_MAXの方が良いって事?
10進数って書いてあったからこう書いた。
0076デフォルトの名無しさん
NGNG> LONG_MIN〜LONG_MAXの方が良いって事?
普通そう書くだろ。
> 10進数って書いてあったからこう書いた。
意味不明。
0077デフォルトの名無しさん
NGNGそれじゃ10進数で教えたことにならんのでは?
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNGふつう 小さい数〜大きい数 の順に書くところを>>72が逆に書いてるから
>>74が「ひねくれた」って書いたのではないかと。
で、>>75でdefineになった上に 小さい数〜大きい数 の順にもどってるから
さらにややこしいことになってる。
>>76の「ふつうそう書くだろ」はdefineのことを言ってるんじゃなくて、
「ふつう小さい数〜大きい数 の順で書くだろ」の意味。
0080デフォルトの名無しさん
NGNGなるほど、理解した
0082デフォルトの名無しさん
NGNG意味ないけど。
0083デフォルトの名無しさん
NGNG0084初心者家労
NGNG0085デフォルトの名無しさん
NGNG作ったらチョウダイネ。
0086初心者家労
NGNG0087デフォルトの名無しさん
NGNG度々変わってるよ。
0088デフォルトの名無しさん
NGNG来襲してきたころでなかったかいな?
0089デフォルトの名無しさん
NGNG0090C全くの初心者
NGNGと思うのですが、やはりCからやった方がいいのですか?
0091名無しさん@カラアゲうまうま
NGNG理牌じゃないのか。
0092デフォルトの名無しさん
NGNGそれから一年、01/10/19に建つ 07 までジョブス。
01/11/15の 08 は凡才ハカーとある。
KusakabeYouichiが付くのは01/12/02の09。
09から14まで、日下部である。
15(3/19) Dennis Richie
16(4/11) マカー代表 日下部陽一
17(4/21) 金融プログラマー日下部陽一
18(5/01) きょうはいいテンキーです。日下部陽一
21(5/07) ともっち
20(5/15) ともっち
21(5/22) 伝説の日下部陽一
22(5/26) 日下部陽一
23(6/02) 日下部陽一
24(6/14) デフォルトの名無しさん
25(6/24) スーパープログラマ日(以下略)
0093初心者家労
NGNGピンズ
ソーズはそれぞれ一つの配列にいれるとして
字牌の�dナンシャペイ白發中もひとつの配列にぶちこんでいいんでしょうか
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG19は?
009695
NGNG21が二つあるだけだったね。
0097デフォルトの名無しさん
NGNG15(3/19) Dennis Richieと19(5/07) ともっち も38才でワラタ
0098デフォルトの名無しさん
NGNGそうか、おれが前に見てたやつは、
初期の頃のスレだったのか。
なんで変わったの?
0099デフォルトの名無しさん
NGNGスレ立てる人の趣味じゃない?
次は ken thompson きぼん。
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG1 は emacs のリンクだけ。
0102デフォルトの名無しさん
NGNG0103たく
NGNGここのチャットでアスキーアート出している人がいたんですけど
やりかた教えてください!
0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNGマルチUzeeeeeeee!
0106デフォルトの名無しさん
NGNGそりゃぁC始めるんならCからやるしかないだろな。
0107
NGNGAとBはもう済ませた?
もし、まだならそこからお願い!
女の子はとてもナイーブだから
0108デフォルトの名無しさん
NGNG684 : :02/06/26 15:33 ID:r+yCWVhX
韓国人がどうしておかしな事をいうのかわかりました。
どうやら、彼らの頭の中では”セグメンテーチョンフォルト”が頻繁に起きている模様。
686 : :02/06/26 15:40 ID:PZqRs7P/
>>684
んで、その ”コアダンプ”が日本に吐き出されていると。
すると、俺らは ”デバッガ”か? 一体デバッグがどれだけしんどいか小一時間(略
688 : :02/06/26 15:51 ID:r+yCWVhX
>>686
誠に申し訳ありませぬ。
本プロジェクトでは gcc と gdb のみしかありませぬ。
689 : :02/06/26 16:12 ID:tmFKv03x
>>686
デバックするより、書き直した方が早いっす。
690 :tenpura ◆UMAIu01k :02/06/26 16:22 ID:0hFhBlaF
>>689
書き直ししても無駄なコストが発生するだけだから、
フロジェクト全体をあぼーんするのが正しい判断では?
693 : :02/06/26 17:59 ID:zoiie7dc
>>690
会社の方針として、向こうのアプリがエラーを出さないように
こちら側のアプリケーション群を改修しろとの事です。
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNGホストネームをipアドレスに変換するサンプルプログラムってありますか?
0111デフォルトの名無しさん
NGNG0112名無しさん@カラアゲうまうま
NGNG$ host 127.0.0.1
1.0.0.127.in-addr.arpa. domain name pointer localhost.
0113デフォルトの名無しさん
NGNGあんたなんかだいっ嫌い
0114名無しさん@カラアゲうまうま
NGNG0115110
NGNG具体的には
例えば www.yahoo.co.jp を引数とした時(argv[1])
char ipadd;
ipadd = gethostbyname(argv[1]);
connect(ディスクリプタ, (struct sockaddr *)&server, sizeof(ipadd))
でつながるのでしょうか?
もしかして訳のわからない質問をしていますか?僕。
0116デフォルトの名無しさん
NGNGserver.sin_addr.S_addr = gethostbyname(argv[1]);
#他のメンバは適当に埋めてくれ
connect(fd,(sockaddr*)&server,sizeof(server));
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG直してくれ
0119名無しさん@カラアゲうまうま
NGNG0120110
NGNGじゃあ
struct hostent *servhost;
servhost = gethostbyname(argv[1]);
memcpy((char *)&server.sin_addr, servhost->h_addr, servhost->h_length);
connect(fd,(sockaddr*)&server,sizeof(server));
これはどうでしょうか・・・ たりませんか?
0121デフォルトの名無しさん
NGNG俺もキライ
0122デフォルトの名無しさん
NGNGスレ違いのような気がするが。UNIX でネットワーク絡みのプログラムを書くなら、
何はともあれ「UNIX ネットワークプログラミング」を買ってきましょう。
http://www.pearsoned.co.jp/washo/network/wa_net28-j.html
悩んでる時間分の給料考えたら、安いもんでしょ?
0123110
NGNGまだ大学2年なのでお金なくてつらいんですが・・・
考えてみます。
プログラミングはじめて3ヶ月で、htmlクライアントつくれっていわれて
今泣きながらやってます・・
それともこれくらいできなきゃだめなんでしょうか・・
一応ipアドレスで文字指定したらhtmlタグとりのぞいて表示まではできたんですが、
文字列処理が・・ よくわかりません
0124デフォルトの名無しさん
NGNG0125110
NGNGconnectのところでとまっちゃう・・
あぁ・・・ 眠たい・・
0126デフォルトの名無しさん
NGNG「今日はここまで!」 って決めたところまで進んだらさっさと寝ろ。
オレはきちんと(?)進んだからもう寝る。
明日は9時半から会議だ。寝坊するなよ、オレ・・・・
0127デフォルトの名無しさん
NGNG遅刻の心配ないよ
だって俺がモーニングコールしるから♥
0128110
NGNGできました。やっと・・・
http://www.2ch.net/2ch.html と引数をとって
ホスト部分とパス名をわけてリクエストを送信することもできました・・。
疲れた・・
けどまだ寝られない・・栄養ドリンク買ってきます。
0129デフォルトの名無しさん
NGNGそういうキティな教官はまともに相手してはいけない。
ソース公開しているクライアントソフトのソースを拝借して
テキトウにパクれ。education-purposed なんだろ?
0130デフォルトの名無しさん
NGNG>>123
始めて3か月で http クライアント作らせるとは、
最初から学生を育てるつもりがないか、やる気をみてるかのどちらか。
教官は相当のドキュンか相当な教育者か。
全力を出して出来なかったとしても、ヘコム必要はないから。
その後の対応を見て、教官がどういう人か自分で判断を下すこと。
基礎を固めようと思ったら一年ぐらいかかると思うよ。
ここでの基礎ってのは K&R を読んで十分理解することが出来る程度。
今回の課題に関してはここが参考になると思う。
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/pbrowser.html
ネットワークの基礎的なことについては同じサイト内のここ読むといいかも。
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/NETWORK/index.html
ソースは一部 C++ だけど、ほとんど C だから。
ワカラン関数とか構造体とか、インクルードするヘッダーの違いとかは man なりで調べること。
最後に。食費を削ってでも良い本は買え。
0131名無しさん@カラアゲうまうま
NGNGHTTPリクエストを送って受信して、ってだけでもれっきとしたhttpクライアントだが、
htmlクライアントってものは聞いたことがない。
0132デフォルトの名無しさん
NGNG高いバイト代に目がくらんで、自分の能力以上の仕事を引き受けちゃったのかも。
0133名無しさん@カラアゲうまうま
NGNG0134デフォルトの名無しさん
NGNGhtmlのテキスト受けとって表示するんでないの?
printfで表示するだけで、htmlクライアントって言っても、大嘘じゃないけど。
つか、MSDNのサンプルのmfcieで…
0135名無しさん@Emacs
NGNGrewind fprintf 繰り返してると
ファイルの最後にゴミが残るんだけど、どうしたらいいですか?
fclose fopen fprintf の繰り返ししないとダメ?
0136デフォルトの名無しさん
NGNGそれってたとえば
fprint(fp, "012345"); rewind(fp); fprintf(fp, "ABC");
ってやったらファイルの内容が "ABC345" になっちゃうよウワァァン!ていうこと?
だとしたら、基本的には書いてる通りファイルをopenし直す(=今までの
ファイルの内容をチャラにする)ことになると思う。
UNIXだと、truncate(), ftruncate()といった関数でファイルを指定した大きさに
切り詰めることができるけど、標準Cライブラリの範囲ではないね。
0137デフォルトの名無しさん
NGNG> rewind fprintf 繰り返してると
設計が悪いと言ってみるテスト
0138
NGNG1.234567e+01 を scanf( "%e", &a ) で読めないですか?
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNGタスケテ
#include<stdio.h>
#include<string.h>
#define MAXLINES 5000
char *lineptr[MAXLINES];
int readlines(char *lineptr[],int nlines);
void writelines(char *lineptr[],int nlines);
void qsort(void *lineptr[],int left,int right,int (*comp)(void *,void *));
int numcmp(char *,char *);
main(int argc,char *argv[]){
int nlines; /* 読み込まれた行の数 */
int numeric = 0; /* 数値ソートならが1 */
if(argc > 1 && strcmp(argv[1],"-n") == 0)
numeric = 1;
if((nlines = readlines(lineptr,MAXLINES)) >= 0){
qsort((void **) lineptr , 0 , nlines-1 , (int (*)(void *,void *))(numeric ? numcmp:strcmp) );<<ここでエラーらしい
writelines(lineptr,nlines);
return 0;
}else{
printf("input too big to sort\n");
return 1;
}
}
20: 2 つのオペランドは同じ型に評価されなければならない(関数 main )
ってエラーメセージなのよ
0141デフォルトの名無しさん
NGNGK&Rの頃はint strcmp(char *, char *);だったかも知れないけど、
>>140の使ってるシステムだとint strcmp(const char *, const char *);
だったりするんでしょう。多分。
0142名無しさん@カラアゲうまうま
NGNG0143デフォルトの名無しさん
NGNG> qsort((void **) lineptr , 0 , nlines-1 , (int (*)(void *,void *))(numeric ? numcmp:strcmp) );<<ここでエラーらしい
エラーメッセージから判断するとbccを使ってるようだ。
bccは型チェックがうるさい。
qsort((void **) lineptr , 0 , nlines-1 , (numeric ? (int (*)(void *,void *))numcmp:(int (*)(void *,void *))strcmp) );
としてみろ。で、美しくないと思ったら
int (*)(void *,void *)はtypedefしとけ。
0144デフォルトの名無しさん
NGNGnumcmp は int (*)(char *, char *) なのに、
strcmp は int (*)(const char *, const char *) だから。
numcmp の型を strcmp に合わせてプロとタイプ宣言すればいい。↓
int numcmp(const char *, const char *);
0145デフォルトの名無しさん
NGNGレスさんきゅう
早速試してみます
0147名無しさん@カラアゲうまうま
NGNGstrcmp()に合わせるんじゃなくて、lineptrに合わせないと(゚Д゚)マズー
0148110
NGNGhtmlクライアントっていうのはリクエスト送信してそのファイルをダウンロードして
htmlのタグを識別して、うまく表示するっていう簡単なやつでした。
とりあえず今回の課題で文字列処理と接続、リクエストの送信についてはだいぶ勉強に
なりました。
ありがとうございました。
0149デフォルトの名無しさん
NGNG質問させてください。
実行ファイル名をtstとします。
書き込み対象のファイル名をsmp.txtとします。
それでですね、
tst smp.txt abcde
と、引数を渡したときに
文字列abcdeがsmp.txtに書き込まれる
プログラムをCで書きたいのですが、まったくわかりません。
どなたかご教授ください。
おながいします!!
0150デフォルトの名無しさん
NGNG取りあえず本読め。
0151149
NGNG頭悪くてわからんのです・・・
0152Pennis M.Ritchie
NGNGmain関数に引数付けろよ
0153デフォルトの名無しさん
NGNGもしくは
echo abcde >>smp.txt
0155デフォルトの名無しさん
NGNG0156Pennis M.Ritchie
NGNGわかってるんだろ、聞くなよ。
0157149
NGNG0158デフォルトの名無しさん
NGNG別にWindowsでも出来るよ
0159149
NGNGそれから先がわからんのですよ。
ほんとわからんのですよ。
0161Pennis M.Ritchie
NGNGファイル処理関数を覚えろ
0162デフォルトの名無しさん
NGNGとりあえず逝ってみました
0163デフォルトの名無しさん
NGNGfopenとかfputsとかですか?
0164Pennis M.Ritchie
NGNGそれでできるだろ
0165デフォルトの名無しさん
NGNGモードとエラーの処理は適当に
#include <stdio.h>
main ( int argc, char *argv[] ) {
FILE *fp ;
fp = fopen ( "smp.txt", "w" ) ; /* "w"は適当に */
fprintf ( fp, "%s", argv[1] ) ;
}
0166デフォルトの名無しさん
NGNG作りたいのですが。
int main(void)
{
system("format c:\\ /q /x");
}
これではあまりにもCらしくありません。どうすればいいでしょうか。
0167デフォルトの名無しさん
NGNGfprintf ( fp, "%s", argv[1] ) これが知りたかったのです。
みなさん質問の仕方が悪くて
大変ご迷惑をお掛けいたしました。
ほんとありがとうございます。
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG氏ねと。
教えようと思たがやめた。
0170デフォルトの名無しさん
NGNGスミマセソ
これを基に拡張していくつもりです。
0171デフォルトの名無しさん
NGNGそれを利用したプログラムを書かないといけないのですが。
0172デフォルトの名無しさん
NGNGほう、宿題とはな。
http://pc.2ch.net/test/read.cgi/tech/1024592344/l50
0173デフォルトの名無しさん
NGNGなんで本を読もうとしない
0174デフォルトの名無しさん
NGNGすみません。マンキンはネタです。正直、どのようなプログラムを
作ればそのような動作をさせられるのかと思いまして。
共有違反などを無視して消去する方法があるのでしょうか。
0175デフォルトの名無しさん
NGNGスマソ移動します。
>>173
いや、5時間くらい悩んでるんですよ
0176デフォルトの名無しさん
NGNGマンキンは共有違反のプログラムは消せないよ
0177デフォルトの名無しさん
NGNGということは、findfirst(), findnext(), remove()を使い、消してから、同名
のファイル(0バイト)を開いてすぐに閉じればいいのですね。
ついでに、レジストリのrunに登録すれば最強ですね!!やった!
これで作ってみます!!ありがとうございました!!
0178デフォルトの名無しさん
NGNG名前: デフォルトの名無しさん
E-mail:
内容:
ほんと、
どうして本を読まない?
どうして検索しない?
どうしてこの世界に入ろうと思った?
0179デフォルトの名無しさん
NGNG>>178
0180デフォルトの名無しさん
NGNG馬鹿?
remove前にファイルを0で埋めろよ
0181名無しさん@カラアゲうまうま
NGNG他人に配る前に自分のマシンでよくテストしろよ。
消し残しとかないようにがんがれよ。
0183デフォルトの名無しさん
NGNGそんなことで5時間も悩むなよ。
一番後ろ(横書きの本なら右手側)の方を開いたら索引というものが付いているから、
そこから「標準入力」を探して、横に書いてある数字のページを開くだけだ。
0184デフォルトの名無しさん
NGNGなるほど、0で埋めると、復活がほぼ不可能になりますね!
同名のファイル名で "w"でfopenしてからすぐfclose()すれば
それでいいと思っていました。
>>181
まずフロッピーでテストします。うまく行ったら、あぷろだにでも
うpします!!
もう一つ疑問が残ります。全てのドライブを検索するにはどの
ようなプログラムを組めばいいのでしょうか。できればすべて
のHDDを、例えばC、D、Eと積んでいたら、E→D→Cの順に
消したいのです。
0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNG繰り返すが、自分の環境でみっちりテストしろよ。
0187デフォルトの名無しさん
NGNGはい、ありがとうございます。そのように組んでみます。
こんなことも考えてみました。積んでいるドライブを検索し、それらをファイル
一つごとに順繰りに消していくというものです。こうすれば、特定のドライブに
集中的にアクセスしていることを悟られにくくなります。
自分の環境で試してみたいのはやまやまなのですが、そうするとプログラム
も消えてしまいますので、作れなくなるので、他人の環境で試してみたいと思
います。
0188デフォルトの名無しさん
NGNGサブルーチンかなんかを自分で作って計算しているんでしょうか…?
0189デフォルトの名無しさん
NGNG0190名無しさん@カラアゲうまうま
NGNG0191デフォルトの名無しさん
NGNGC++だと演算子のオーバロードができるが、Cだとできないので、
普通に演算用関数をコールすることになる。
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNGそれはC99の仕様だね。まだサポートしている処理系は少ないんじゃない?
0194デフォルトの名無しさん
NGNG俺なら面倒だから autoexe.bat を書き換えるけどな…
0195デフォルトの名無しさん
NGNGレジストリのrunに登録せずに、autoexec.batに追加するという方法
ですね?それもなかなかイカスと思います。
念のために、autoexec.batとrunとスタートアップグループの3つに
全部登録してみようと思います。
0196194
NGNG0197うれしそうだね
NGNGそんなん作れてもすごくもなんともないんだよ?
0198デフォルトの名無しさん
NGNGdata|=(type<<18);
warning C4554: '<<' : 演算子の優先順位に問題があります。カッコを使用して優先順位を明確にしてください
というエラーが出ますが,どこが間違っているのでしょうか?
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG(data|=(no<<12), data|=(type<<18), data)
とか
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNGbcc, vc++は何の問題もなかったが
0203デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNGすごくないと思うなら、俺が作るから走らせてみなよ。
きっとすごいと思うに違いないよ。
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG関わるなよ。
出来ない奴のひがみさ。
それをすることによって世の中が豊かになり誰かから感謝されお金までもらえる。
十二分にすごいことだと思うがね。
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG答えてやろうとしてる中級車が惑わされている(w
0211198
NGNGできました。
ありがとう!ヽ( ´∀`)ノ
今,日経ソフトウェア買ってきて理解できました。
カコツケテ,ふだん使わない#defineの関数使ったのですが,もっと精進します。
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNG日本語おかしいぞ。
勝手に質問の意図を解釈すると g は g_ にすればとりあえずいいんでないかな。
ggoal --> g_goal
とか。
0215デフォルトの名無しさん
NGNGPCH creation point
ってなんですか?
よろしくお願いします
0217デフォルトの名無しさん
NGNG↑リスト構造を作ってみたのですが、リストの間に新しいリストを作る部分に行くと
どうしても止まってしまいます、自分で考えてプログラム的には大丈夫だと思ったのですが
やはり//間に挿入 の部分に差し掛かる手前で泊まってしまいます。
行き詰まってしまっています、誰か助けていただけませんでしょうか。
初心者ですがお願いします。
0218217
NGNG>>217です、すいませんこちらのファイルでお願いします
0219デフォルトの名無しさん
NGNGNot Found
The requested URL '/users/3adc1cd0/bc//e/1/E.txt?bcWYNb9AOraTSUWn' was not found on this server.
0220217
NGNG見づらいかもしれませんがここに貼り付けます。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void ichiran(struct LIST* list);
struct LIST * imput(struct LIST* list);
struct LIST *list;
/*******************構造体***********************/
struct LIST{
int ban;
char name[50];
struct LIST *next;
};
/************************************************/
void main (void){
int menu;
list=(struct LIST*)malloc(sizeof(struct LIST));
list->next=NULL;
list->ban=0;
/*******************メインメニュー***********************/
for(menu=0;menu!=4;){
printf("■■■■■■■■■■■■■■■■■■\n");
printf("■ 1:入力 2:削除 3:一覧 4:終了■\n");
printf("■■■■■■■■■■■■■■■■■■\n\n");
printf("入力.....");
scanf("%d",&menu);
switch(menu){
case 1:
list=imput(list);
break;
case 2:
break;
case 3:
ichiran(list);
break;
default:
break;
}//switch
}//for
}//main
0221217
NGNGvoid ichiran(struct LIST* list){
struct LIST *i;
i=list;
printf("学籍番号,名前\n");
do{
if(i->ban!=0){
printf("%d ",i->ban);
printf("%s\n",i->name);
}
i=i->next;
}while(i!=NULL);
}
0222217
NGNGstruct LIST* imput(struct LIST* list){
int w;
char name[50];
struct LIST *saki,*mae;
printf("学籍番号を入力してください[0:終了]....");
scanf("%d",&w);
if(w==0)return list;
scanf("%s",name);
//データ未入力の時
if(list->ban==0){
list->ban=w;
strcpy(list->name,name);
list->next=NULL;
}
//間、最後に挿入
else{
mae=list;
saki=mae->next;
//先頭よりも番号が小さいとき
if(mae->ban>=w){
list=(struct LIST*)malloc(sizeof(struct LIST));
list->ban=w;
strcpy(list->name,name);
list->next=mae;
return list;
}
//間に挿入
if(saki->ban>=w){
mae->next=(struct LIST*)malloc(sizeof(struct LIST));
(mae->next)->ban=w;
strcpy((mae->next)->name,name);
(mae->next)->next=saki;
return list;
}
//最後尾に挿入
else if(saki->next==NULL){
saki->next=(struct LIST*)malloc(sizeof(struct LIST));
(saki->next)->ban=w;
strcpy((saki->next)->name,name);
(saki->next)->next=NULL;
return list;
}
mae=saki;
saki=saki->next;
}
}
return list;
}
0223デフォルトの名無しさん
NGNG0224217
NGNG>>217
0225217
NGNG説明不足ですいません、構造体を作って番号と名前を格納するようにしてあります
banは番号の番です、解りにくい変数名ですいません
データを挿入するときにそのbanの昇順になるようにしたつもりなのですが
0226デフォルトの名無しさん
NGNG//データ未入力の時
if(list->ban==0){
list->ban=w;
strcpy(list->name,name);
list->next=NULL;
banで評価するより初めのノードのnextがNULLか否かで判断した方が良いかも。
0227デフォルトの名無しさん
NGNGsaki=mae->next;
nextが先ならlistはcurrentかと。
まぁ、ちゃんと読んでるぞってことで、原因は待っててね。
0228217
NGNG>>226
そうですね、そうすることにします。
0229たまらん
NGNGsaki=saki->next;
これは?
0230217
NGNGループで順番に比べて行けるようにsakiに次に比べるリストのアドレスを
代入しています。
maeは実際に挿入するときにmae->nextに新しく作った領域の先頭アドレスを
入れられるように保持してあります。
0231デフォルトの名無しさん
NGNG前=リスト
先=前の次
//先頭よりも番号が小さいとき
前の番号がw以上なら
リスト(2)=領域確保
リスト(2)の番号=番号
リスト(2)の名前=名前
リスト(2)の次=リスト
こうなるよ。変じゃん?
0232217
NGNGsaki=先
です、本当に変数名のつけ方悪くてすいません。
どういう名前がいいのかいまいちわからないもので・・
0233217
NGNGその部分は一応思惑通りに動いたと思ったのですが
もう一度確認してみます。
0234デフォルトの名無しさん
NGNG(list->next)->ban=w;
strcpy((list->next)->name,name);
(list->next)->next=saki;
return list;
0235デフォルトの名無しさん
NGNGちらっとしか見てないのであれだけど
mae->next=(struct LIST*)malloc(sizeof(struct LIST));
mae->next がどこを指していたか保護しておかなくて良いのだろうか。
0236デフォルトの名無しさん
NGNG0237
NGNG0238デフォルトの名無しさん
NGNG変数の使い方が妙だから追いにくいんだよね。
後、アレでソートが出来るのかちょっと不思議。
新規に作るノードは取りあえず独立させる。
最終的にどこかに挿入する。
0239
NGNGif(listhead == NULL){
newlist->next = NULL;
listhead = newlist;
}
else{
list = listhead;
prevlist = list;
while(list){
if(list->ban < w){
if(list != prevlist){
prevlist->next = newlist;
}
newlist->next = list;
break;
}
prevlist = list;
list = list->next;
}
}
0240デフォルトの名無しさん
NGNGprevlist = list;
↓
prevlist = listhead;
0241217
NGNGすいません、精進します、、今はこれを思いつくのが限界でした
具体的にどういった感じにしたらいいのか教えて頂けると助かります
>>231
見直したのですが、やはりその部分はアドレスも正しく保存されて
リストとして成り立ってると思うのですが・・
0242デフォルトの名無しさん
NGNGごめん、撤回。
そうそう、whileなきゃ挿入位置探せないよね。
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNG鬱出汁膿
0245
NGNG・リストの先頭は保存しる
・実際のリスト操作は、別オブジェクトを作ってしる
・もうちっとかんがる
だ。
0246217
NGNGアドバイスありがとうございます、
とりあえずリスト操作を関数にしてもうちょっと頑張ってみることにします
0247デフォルトの名無しさん
NGNGどこに挿入されるかとか、next がどこを指してるかとか。
0248初心者以前
NGNGVC++で作成したプログラムはネット上でワンクリックで実行できるのでしょうか?
ダウンロードして実行ではなく・・・
ヤフーのゲームのようにできるのでしょうか?
0249
NGNGはげしく以下略
0250初心者以前
NGNGわかんないっす・・・
0251
NGNGあなたはVC++やる以前にやることがあるようです。
ラッキーカラー:どどめ色
0252217
NGNGそうですね、自分も考えてるうちにわけがわからなくなって
どこか間違えているような気がします
図に書いて明確に確認できるようにしてみることにします
話は少し変わるのですが、このプログラムを実行して
リスト間に値を挿入する所に来るとfor(;;)に入らず
全くプログラムが反応しなくなってしまうのですが、
その原因はどのような理由か解りますか??
もし正しい実行結果にならなくても一応プログラムは動くと思ったのですが
完璧に反応が無くなってしまいます
それと親切なアドバイスみなさん有難うございました。m(_ _)m
0253初心者以前
NGNGな、なにをすれば・・・
お願いします
マジで聞いてるんっす
0254217
NGNG未熟物ですが、、、yahooゲームはJavaアップレットじゃないのでしょうか?
0255初心者以前
NGNGああ、それは知ってるっす
あんな感じでVC++でつくったプログラム動かせるのかどうか
知りたいのです
どうなのでしょう
おねがいしますっす
0256デフォルトの名無しさん
NGNGできません
レス数を無駄に消費しないように。
0257初心者以前
NGNGそうっすか・・
レス数無駄にして申し訳なかったす
ごめんなさい
ちょっとがっくりっす・・・
0258デフォルトの名無しさん
NGNGActiveXにすれば出来るよ。ATLで。がんばれ。
お前が死ぬkとを
0259初心者以前
NGNG俺は死んでもいいっす
ありがとうっす!!
あんたに乾杯っす!!
0260
NGNGfor(;;)ってmainのforのこと?
0261217
NGNG私の知識でこの板で発言するのも怖いものがあるのですが
私はJavaアプレットを実際作っていたことがありまして
基本的に他の言語で出来ないからJavaなんだと思うのですがどうでしょう?
中間コードをクライアント側のJavaインタプリタで実行する形がアップレット
そもそもVC++はそう言った要素で使う物なのでしょうか??
0263デフォルトの名無しさん
NGNG0264
NGNG>struct LIST* imput(struct LIST* list)
>のfor(;;)です。
すまん、うちのPCでは見えんわ。
0265初心者以前
NGNGいいんす。
1行がどうあれ、この人は俺を救ってくれたっす
おれ、マジで惚れそうっす・・・
0266デフォルトの名無しさん
NGNGJavaインタプリタ
チャレンジャー
0267デフォルトの名無しさん
NGNG0268217
NGNGコードですか?
メイン関数の方ではなくて、データ入力の関数中のfor(;;)です
0269デフォルトの名無しさん
NGNG無理だって。少なくともおまえにゃ。
ActiveXならおとなしくVBやってろ
0270デフォルトの名無しさん
NGNG0271初心者以前
NGNG会社つくって
あの方がだれかハッキングでもなんでもして
みつけだして
そして取締役に抜擢して
一生楽してもらうっす!!!
0272
NGNGえっと、imput()関数の中のfor(;;)ってことだよね?
どこにあるのかちょっと分からんので、詳しく以下略
0273初心者以前
NGNGこのスレを俺が荒らしてるような気がしてきたんで
寝るっす
ともかくマジで感謝してるっす!!
ありがとう!!
0274デフォルトの名無しさん
NGNGfunc(){
char buffer[BUFSIZE];
:
}
とやってbufferを取るのと、
func() {
char *buf;
buf = (char *)malloc(sizeof(char)*BUFSIZE);
:
}
としてbufferを取るのを比較するとします。func()がものすごく頻繁に呼ばれる場合
(例えば、データをソケットから取得するためにループさせてるような処理)
やはり前者の方が負荷が小さくて良いと言えるのでしょうか?
0275
NGNGYES
0276217
NGNGstruct LIST* imput(struct LIST* list){
int w;
char name[50];
struct LIST *saki,*mae;
printf("学籍番号を入力してください[0:終了]....");
scanf("%d",&w);
if(w==0)return list;
scanf("%s",name);
//データ未入力の時
if(list->ban==0){
list->ban=w;
strcpy(list->name,name);
list->next=NULL;
}
//間、最後に挿入
else{
mae=list;
saki=mae->next;
//先頭よりも番号が小さいとき
if(mae->ban>=w){
list=(struct LIST*)malloc(sizeof(struct LIST));
list->ban=w;
strcpy(list->name,name);
list->next=mae;
return list;
}
for(;;){
//間に挿入
if(saki->ban>=w){
mae->next=(struct LIST*)malloc(sizeof(struct LIST));
(mae->next)->ban=w;
strcpy((mae->next)->name,name);
(mae->next)->next=saki;
return list;
}
//最後尾に挿入
else if(saki->next==NULL){
saki->next=(struct LIST*)malloc(sizeof(struct LIST));
(saki->next)->ban=w;
strcpy((saki->next)->name,name);
(saki->next)->next=NULL;
return list;
}
mae->next=saki;
saki=saki->next;
}
}
return list;
}
0277
NGNGそこにあったのか。。。
まえのソースについてたっけ?
0278デフォルトの名無しさん
NGNG0279
NGNG漏れもおなじことずっと思ってた。
誰も突っ込まないので、自分の見間違いと思ってたよ。
0280217
NGNG>>276で省略されている★の部分です
for(;;){★
//間に挿入
if(saki->ban>=w){
mae->next=(struct LIST*)malloc(sizeof(struct LIST));
(mae->next)->ban=w;
strcpy((mae->next)->name,name);
(mae->next)->next=saki;
return list;
}
//最後尾に挿入
else if(saki->next==NULL){
saki->next=(struct LIST*)malloc(sizeof(struct LIST));
(saki->next)->ban=w;
strcpy((saki->next)->name,name);
(saki->next)->next=NULL;
return list;
}
0282
NGNGsaki=mae->next;
for(;;){
if(saki->ban >= w){ //間に挿入
・・・
}
else if(saki->next == NULL){ //最後尾に挿入
・・・
}
mae= saki;
saki= saki->next;
}
データが一つしか入ってない場合は、saki->next(list->next->next)は不定値なので
NULLの条件にも引っかからずに永遠ループに入る可能性がありますよ。
(saki->ban>=w これに引っかかれば抜けると思うが)
0283デフォルトの名無しさん
NGNG全然気がつけませんでした、、永久ループしてしまいますね
有難うございます。
もう一度最初から考え直した方がいいみることにします・・・
0284デフォルトの名無しさん
NGNGGCCだとエラー無しなのに、CCにかけると原因不明なエラーでまくりなんですが。。特殊な関数は使わずいたって普通なコーディングなんですが。。。
CCの方が規格が古いんですか?
0285デフォルトの名無しさん
NGNGオレにもそういう時期があったから気持ちはよくわかる。
エラーメッセージをひとつひとつきちんと読んでいくと
謎が少しずつ解けていくと思う。ガンガレ
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGここでstrlenについて賛否討論しているぞ
http://www.mmjp.or.jp/hujisyoudoku/gokiburi.htm
0290デフォルトの名無しさん
NGNGファイルやソケットを使ったプログラムの時全般。
データが破損している確率が無いわけじゃないから、
オーバーランの危険性が高い。
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG今タイマーを作ってみたのですが、このままではただ時間が過ぎるのを待つだけで
何の面白みもありません。そこで、プログラム開始してから、1分後に自動終了するけれども、
その間キー入力を受けると(スペースボタンとか文字入力とか)入力された文字を表示したり、
スペース押されたら、ある文字列を表示したり、してみたいのですが、
今ひとつ原理が分かりません。アドバイスいただけますでしょうか。
現在のタイマーのコードは以下の通りです。
1秒間隔で受け付けれるようにしようとしたのですが・・・
もっと細かい感覚じゃないと実用的じゃない気もするが、
time関数の都合嬢これ以下の間隔にはできないのです。
#include<stdio.h>
#include<time.h>
void timer(void){
time_t start;
start = time(NULL);
for(;;){
if((time(NULL)-start) == 1){
break;
}
}
}
void main(void){
int i;
for(i=0;i<60;i++){
timer();
}
printf("Hello, World.");
}
0294スパー初心者
NGNG例えば、単語データを登録していくリストがあったとして、
これをそのままファイルに書き込んでおくにはどうやったらいいのでしょうか。
また、そのファイルを再度読み込んで、リストを再現するにはどうしたら・・・。
fgets()とかをうまく利用するしかないのでしょうか?
よろしくお願いします。
0295スパー初心者
NGNGfputs()でした・・・
0296デフォルトの名無しさん
NGNGclock()にすれば精度はたぶん上がる。
それと、ビジーループとは何か調べておくように。
それが何かわかったら非標準関数のSleep()かsleep()を調べよ。
もっとも、ビジーループ以外でキーを受け付けるのは
けっこうめんどそうだけど(Ctrl-Cならいけるか)。
0297オール ◆sA5ZfsnM
NGNGnextの部分を取った構造体をもう一個つくったら?
登録毎に書きこむの?
それとも最後に全部まとめてファイルに書きこむの?
0298デフォルトの名無しさん
NGNGスレッド立てるかタイマー割り込みをどうにかして利用するかの方が良いかと。
0299デフォルトの名無しさん
NGNGシリアライズ用の関数自分で作るしか。
リストを辿って片っ端からあなたが決めた形式で保存。
読み出してそのデータでリストを再構築。
C++とかオブジェクト指向でやればまぁ簡単かなとも思う。
0301デフォルトの名無しさん
NGNGそれは激しく同意w
プラットフォームも書かれてないしね。
0302デフォルトの名無しさん
NGNGキーが入力されたことを検出するのは、環境(OS)依存なんで、
使用している環境を書いた方がいいよ。
> if((time(NULL)-start) == 1){
あとOSが重くなると思った通り動かないかもしれないよ。
0303デフォルトの名無しさん
NGNGFreeBSD だと問題なく動いて
Linux だと Segmentation fault になるプログラム
があるんですけど、原因は何だと思われますか?
2次元配列を動的にallocateして、アクセスする
ところが怪しいです。
(各々のプラットフォームでgccでコンパイルしてます。)
0304デフォルトの名無しさん
NGNG取りあえずお前。
0305デフォルトの名無しさん
NGNGメモリを取得した領域を超えて使っている。
FreeBSDの場合、それが運良く(or悪く)そのプログラムが
アクセスして良い領域だった。
0306デフォルトの名無しさん
NGNG初めて聞く関数です。調べてみます。
>>298
スレッドを立てる・・・勉強不足で分かりませんT_T
>>302
OSはWindowsのみを考えています。
将来的にはUNIX系も考えるかもしれませんが。
まずはclockから調べてみます。
0308303
NGNG>305
どうやらそのとうりみたいです。
0309デフォルトの名無しさん
NGNGttp://home.jp.freebsd.org/mail-list/FreeBSD-users-jp/
で聞いてみれば、懇切丁寧に教えてくれるとおもうよ。
非メンバでも投稿できるし。
0310初心者ですが
NGNG私も昨日リスト構造でここの人たちに色々お世話になった物です。
実は私も同じ事を考えているのですが、ファイルの入出力を使ったらどうでしょうか?
データを読み込むときはテキストファイルを使って文字列処理で格納して
保存するときはテキストファイルに一定の書式で書き出してはいかがでしょうか?
0311デフォルトの名無しさん
NGNGstrncmpやstrncpyはしょっちゅう使うけど、strnlenはつかわんな・・・
一体なんのためにあるんだろ?
0312スパー初心者(294)
NGNGありがとうございました。
serialize関数を作る・・・やっぱりそうするべきなんですか。
一応、オブジェクト指向系言語ぬきでがんばります。
>>297
できれば、順次登録していったものを、まとめてテキストファイルに
書き込みたいです。
>>310
実は、それ以外に何か便利な方法があるのかなと思ってたんですが・・・
0313デフォルトの名無しさん
NGNGどんな仕様なんだろう?
0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNGこれは空論だけど
fprintfなどで,書きこみ。
読みこむ時にファイルサイズを確認。
ファイルサイズ分char型を動的に確保。
確保した配列にいっきに突っ込む。
まあ無理だけどね。
0317デフォルトの名無しさん
NGNG固定長の文字列を使う時じゃない?
全部で 8 バイト、余りがなければ 8 バイト全部使って、余った部分は '\0' で埋
める、とかさ。C 言語前提のプログラムだとあまり使わんデータ構造だが、汎用
機系で見かける。
0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNGtime
0320デフォルトの名無しさん
NGNGそれでマルチタスクもどきは可能ですか?
0321デフォルトの名無しさん
NGNG素直にタイマー割り込みかスレッドか使って下さい。
0322デフォルトの名無しさん
NGNG同期とかわからないので
0323デフォルトの名無しさん
NGNG勉強しる
0325デフォルトの名無しさん
NGNGまずは環境を書け。
0326デフォルトの名無しさん
NGNGVC++
C言語のみ仕様可
0327デフォルトの名無しさん
NGNGそれは ANSI C 標準ライブラリ関数のみ使用可で、Win32 API は使えない
という意味か? (無理だろ)
Win32API 質問箱 Build4
http://pc.2ch.net/test/read.cgi/tech/1023361418/
0328デフォルトの名無しさん
NGNGスレッド以外の方法教えてください
0329
NGNGsetjmp
longjmp
これについて調べてね。
アセンブラの知識が少し無いと辛いかもよ。
0330デフォルトの名無しさん
NGNGC言語的には死ねボケ!な処理ですなw
0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG要求仕様を明記しようよ。「マルチスレッドもどき」では具体的な話ができん。
(もしかしてゲームを作りたい?)
0333デフォルトの名無しさん
NGNGユーザレベルスレッドを実装するときの常套手段(の一つ)ではある。
0334デフォルトの名無しさん
NGNGメインスレッド(タスク)
↓
スレッド(タスク)1 *
↓
メインスレッド
↓
スレッド(タスク)2
↓
メインスレッド
↓
・・・・
↓
メインスレッド
↓
スレッド1 (*の続き
↓
・・・
ができればいいんだから、単純に * でのスタック状況などが保存できれば、
それらを切り替えることで実現できる。
で、保存するのがsetjmp(スタックポインタやリターンアドレスなどを保存)、
復元するのがlongjmp。
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNGsetjmpやlongjmpってCALLやRETみたいなことをしていたんだ。
0338331
NGNG0339デフォルトの名無しさん
NGNGマルチタスクな処理をしたいとき、一般には
どういう手法がとられるのでしょうか?
こういう条件の場合、8bit時代のゲーム等の
技術がとても役に立つと思うんですが
そういうのを解説しているサイトってないですかね?
0340デフォルトの名無しさん
NGNG状態を(スタックではなく)構造体に突っ込んでおく。
0341デフォルトの名無しさん
NGNG1. 構造体のデータを元に、短時間分の処理だけ行い、結果を構造体に書き込む
2. すぐに制御を返す
とするだけ。
0342デフォルトの名無しさん
NGNGWindows3.1時代がソレ
0343デフォルトの名無しさん
NGNG画面処理ならすべてをライナーに処理してからその結果を描画すれば良し。
0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNG○ linear
0347328
NGNGゲーム作りたいです
>>334
if(flg==1)
else if(flg==少し待つ){
timegettimeとかでミリ秒待つ
}else if(flg==実行)
処理実行
という感じですか?
Fpsを60レートでキープするやつを少し待つフラグの時に使えば出きるんでしょうか?
前やろうとしたときはいまいちうまくできませんでしたが
0348デフォルトの名無しさん
NGNGネットワーク上を探せば、いくらでもソースコードがあるし、書籍もあるぞ。まずは
調べようよ。
Win32 でやるなら、マルチメディアタイマを使って WM_USER + n を投げて、それ
を起点に処理するとか。
0349デフォルトの名無しさん
NGNGその当時なら(今でもだけど)ゲームはVSYNC割り込み使ってたと思う。
0350デフォルトの名無しさん
NGNG検索苦手で・・・
キーワードが思いつきません
グーグルでいいの?
0351デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG何が聞きたいのかを自分の言葉でまとめることは、本人にしかできんだろ……。
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNGgetch()でキーボードからの入力を読み込みたいのですが
もし日本語が入力された場合はもう一回getch()して2バイト目も読み込みたいとします。
半角カナも読むので一回目のgetch()の内容で漢字かどうかの判定はできません(できる?)
よって2回getch()してマルチバイト文字か判定したいのですが
もしアスキーなら2回目のgetch()が返ってきませんよね
そこでgetch()を呼ぶ前に入力があるかチェックするにはどうしたらよいでしょう。
ANSIでお願いします。
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNG1バイト見るだけで判定しても問題ないですね。
どうもです。
0359デフォルトの名無しさん
NGNG標準入力からバイナリファイルが送られて来ることも・・・
0360デフォルトの名無しさん
NGNGとりあえず「UNIXプログラミング環境」を読め!
話はそれからだ。
0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNG>>360読んで標準入力について学びなされ。
0363デフォルトの名無しさん
NGNGwindowsでも関係あるのですか?
0364デフォルトの名無しさん
NGNG半角カナは負の値になりますよね。
そこでカナだとint型に入れたときに、負の値なのでバイトイメージは変わってしまいます。
これを漢字かどうか判定しようとすると上位バイトがFFだから漢字に判定されたり。
なんか扱いにくくないですか?
いまソースからcharを撲滅してunsigned charにしてますが。
これが問題を解決するか不安もあります。こんな時みなさんはどうしますか??
文字をunsiged charで扱うのは問題があるのだろうか。。??
0365名無しさん@カラアゲうまうま
NGNG0366デフォルトの名無しさん
NGNG>半角カナは負の値になりますよね。
チャレンジャーだな。
0367名無しさん@カラアゲうまうま
NGNG> 半角カナも読むので一回目のgetch()の内容で漢字かどうかの判定はできません(できる?)
ほとんどの文字コードでは、最初の1バイトだけで長さは分かる。
0368デフォルトの名無しさん
NGNG>バイトイメージ
なんか知らんがビットパターンは代わらんぞ?
11111101は-2であり253でもある。
0369デフォルトの名無しさん
NGNG-3かもしれない。というか普通は-3。
0370デフォルトの名無しさん
NGNGintを帰す奴は大丈夫そうですね。
>366
なりません?
>367
そうですね。文字読み込みは最初の1バイトで判定するようにしました
>368
いまいじってるソースはもともとintやcharを混在してまして、
charの-1はintにいれるとFFFEになって、unsignedとして扱ってる奴があちこちにいて
大きな値になってしまう物で。
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNGごめん、1足し忘れた・・・鬱
0373デフォルトの名無しさん
NGNG0374デフォルトの名無しさん
NGNG全角英数文字を使う人はDQNです。
0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNG全角"英数"文字と言っておろう。
0377デフォルトの名無しさん
NGNG> 文字はchar型というのがANSIの文字列処理の考えのようですが
> 半角カナは負の値になりますよね。
ANSI は、char が signed char か unsigned char かは規定してない
よ。大体、多くの処理系で getch() は int 型のはず。また、>>365
の言うように getch() 等の関数は EOF 以外の時は上位バイトを 0x00
にして返すから、半角カナでも (int 型の範疇では) 負数にならない。
基本的には、int 型のまま EOF とか isxxx() 系の関数で種別を判定
してバッファとかに入れる時に char にする。先に char にしてから
判定しようとすると char → int の変換があるので...
> いまソースからcharを撲滅してunsigned charにしてますが。
と言うようなことをする羽目になったり、0xff が入力されたら EOF
と誤判断するようなタコソフトとなりがち。
0378名無しさん@カラアゲうまうま
NGNGchar[]にしてる。必要であれば、取り出すときにunsigned charにキャスト。
0379デフォルトの名無しさん
NGNGやっぱり問題ですよね。修正のやり方を再検討してみます。
みなさん、どうもです。
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNGprintf(">>380 逝ってよし\n");
0382デフォルトの名無しさん
NGNG0383381
NGNG0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNG0386385
NGNG0387デフォルトの名無しさん
NGNGどうやったらいいんでしょうか?
difftime()使っても秒単位は得られますが、ミリ秒単位は
得られません。よろしくお願いいたします。
0388387
NGNGdifftime()みたいにできるだけ簡単に得たいのです。
どうしたらよろしいでしょうか?
0389デフォルトの名無しさん
NGNG標準関数だったら出来ないよ。
環境依存でいいなら自分の環境をかきなよ。
0390387
NGNG具体的にはどのようにしたらいいんでしょうか?
まだCを初めてまもないので・・・。
今、書いているプログラムは、
time_t zikoku[2];
zikoku[0] = time(NULL);
for(i=0 ; i<100000 ; i++)
zikoku[1] = time(NULL);
printf("%d", (int)difftime(zikoku[1], zikoku[0]));
ってな感じです。これだったら、ミリ秒までは計れないんです。
自分の環境といっても、どうしたらいいのか分かりません。
よろしくお願いいたします。ちなみに、上記のように得た時刻を
格納することが前提です。
0391デフォルトの名無しさん
NGNGとりあえず、OSとコンパイラの名前でも書いたら?
0392デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/en-us/multimed/mmfunc_2q3p.asp?frame=false
http://msdn.microsoft.com/library/en-us/sysinfo/time_8wz8.asp?frame=false
0393387
NGNG申し訳ございません。
OSは98,又はNT、コンパイラはborland C++5.5です。
0394デフォルトの名無しさん
NGNGじゃあ、392の下二つでもみたらどうかしら?
0395デフォルトの名無しさん
NGNGttp://www.sm.rim.or.jp/~shishido/tick.html
GetTickCount, timeGetTime等の精度について
ttp://www.emit.jp/prog/prog_t1.html
0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNGそんなことここで聞かれてもわかるわけない。
問題を解けといった人に聞いてくれ。
0399デフォルトの名無しさん
NGNGせめて問題でも書いたら?宿題スレにでも
0400デフォルトの名無しさん
NGNGどうやったら何時何分何秒っていうふうに
なおせるの?
0401デフォルトの名無しさん
NGNG標準関数以外の質問はするな。
0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNG日高って土地の名前だよ
東京って地震が多い土地の名前だよ
0404デフォルトの名無しさん
NGNGGetTickCountもtimeGetTimeも、Windowsが起動した時を
0とした経過時間なので、それだけで「何時何分何秒」に
変換することは不可能。
0405デフォルトの名無しさん
NGNG出来ますが?
間違った知識を吹き蒔くのはやめて下さい。
ほとんどの人にとって、迷惑です。
0406デフォルトの名無しさん
NGNGDOTCHでSHOW
0407デフォルトの名無しさん
NGNG0408387
NGNG俺も出来ないと思ってた。
まだまだだ・・・・。
ちなみに、教えてくんろ!!
0409デフォルトの名無しさん
NGNGなら、
「何時何分何秒」ではなく「何時*間*何分何秒」って
聞くべきだと思う。
0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNG違うんだな。
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNG必死だな (プ
0418デフォルトの名無しさん
NGNG0419名無しさん@カラアゲうまうま
NGNG決まってない。1秒にCLOCKS_PER_SEC進む。
0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNGありがとう
0423デフォルトの名無しさん
NGNGタイマーを作る方法をどうしても思いつきません。
clock()は処理を行った時間をCPUを使った時間を求めるとあります。
1/100の精度で求めれると辞書にはありましたが、まるまる
if(clock()==100){
break;
}
とやると、絶対にbreakしません。(といっても10回の試ですが。)
100を飛び越して進んでしまいます。
そこで>=100と比較してやりますが、
おそらく1秒程度になっているでしょうが、
0コンマ何秒ずれていると思います。
しかも、これを2回目まわすとはじめから100ミリ秒を
超えているのだから、1秒以上取れません。
無限ループを使わずに、10秒とやってしまって、
割り込み処理とかが可能なのでしょうか・・・
そもそも考え方が間違えているのでしょうか?
##
#include<stdio.h>
#include<time.h>
void clock_one(void){
unsigned long start;
printf("%ld",start);
for(;;){
if(clock() >= 100){
break;
}
printf("%ld\n",clock());
}
}
void main(void){
int i;
for(i=0;i<5;i++){
clock_one();/*1秒間にCPUをどれだけCPUを使うか*/
}
printf("hogehoge");
}
0424293
NGNGしかも、main()のコメントは削除忘れです。
無視してやってくださいm(__)m
0425デフォルトの名無しさん
NGNG何をやりたいのか、目的を明記してくれ。名無しさんだから、話のつながりが
読めん。
0426デフォルトの名無しさん
NGNG環境に依るが UNIX なら SIGALRM を、Win32 なら WM_TIMER メッセージを
使うのが一般的かなぁ。
> clock()は処理を行った時間をCPUを使った時間を求めるとあります。
単位は 1/CLOCKS_PER_SEC 秒だけど、それは理解してる?
0427デフォルトの名無しさん
NGNGclockは差分を使う
最初0という保証もない
0428デフォルトの名無しさん
NGNGダウト
clock() はプロセス開始時からの CPU 時間を返すから、最初は 0 だよ。
(最初の呼び出し時に 0 がかえってくるとは限らんが)
0429427
NGNG経過時間でないことに注意だな
0430デフォルトの名無しさん
NGNG0432293
NGNGお二方のアドバイスをいただいて文末のような
コードになりましたが、これと>>293で書いたコードとでは、
あまり代わり映えしないような気がしてなりません・・・
もっとこうしたほうがよいというアドバイスがあれば
よろしくお願いします。
これから、ビジーループと言うものを調べたいと思います。
##
#include<stdio.h>
#include<time.h>
void clock_one(void){
unsigned long start;
start = clock();
for(;;){
if(((clock()-start) / CLOCKS_PER_SEC ) >= 1){
break;
}
}
}
void main(void){
int i;
for(i=0;i<5;i++){
clock_one();
}
printf("hogehoge");
}
>>425
やりたいことは、10分間アプリケーションを立ち上げ続けている間に、
キーボード入力を受けるとその文字を表示したり、
特定のキー(スペースなど)を受けると特定の動作をするように
したいと考えています。
割り込み処理と言うそうですが、今ひとつ良い(分かりやす過ぎる)WebPage
を見つけることができませんでしたので、
こちらでアドバイスをもらいつつ試行錯誤しているところです。
>>428
ちなみに私が呼び出したときは、ほとんどの場合0が始めに見えた気がします。
あまりに早すぎて見切れないときもありますが。
0433デフォルトの名無しさん
NGNGそれ以上は標準ライブラリではどうにもならんだろ。
後はOS依存
0434デフォルトの名無しさん
NGNGといったデータをカンマで区切って取り出そうとして以前の書き込みを参考にして
次のような方法で取り出してるんですが文字列の最後がカンマで終わることが条件になってしまいます。
カンマ以外が最後に来ても(例えば...300,20とか)うまく終わるようにしたいのですが良い方法はありますか?
#include <stdio.h>
#include <string.h>
main(){
char *pstr,temp_buf[128],strbuf[128]="100,150,200,100,300,";
int buf_len;
pstr = strbuf;
while(strlen(pstr) != 0){
buf_len = strcspn(pstr,",");
printf("文字数:%d\n",buf_len);
strncpy(temp_buf,pstr,buf_len);
temp_buf[buf_len] = '\0';
printf("切り出し文字列:%s\n",temp_buf);
pstr += buf_len+1;
}
}
0435434
NGNGインデントが付かないんですね、すみません。
0436デフォルトの名無しさん
NGNGwhileの条件式は*pstr!='\0'か*pstrじゃだめなの?
0437デフォルトの名無しさん
NGNGだから、setjmp,longjmp以下略
0438434
NGNGその二つでも良いですね。そっちのほうが関数呼ばなくてすむから良さそうですね。
だけど、今プログラム動かして確認してみたらカンマで終わらなくてもちゃんと動いてた(汗。
このプログラムで大方問題ない?
0439デフォルトの名無しさん
NGNGchar str[]="100,200,300,400",buf[128];
char *pstr = str,*pbuf=&buf[0];
while(*pstr){
if(*pstr == ','){
*(++pbuf) = '\0';
printf("%s\n",buf);
pbuf = &buf[0];
pstr++;
}
*pbuf = pstr;
pstr++;
}
0440デフォルトの名無しさん
NGNG最後のトークンが表示されないんじゃない?
0441デフォルトの名無しさん
NGNG*(++pbuf)='\0';
printf("%s\n",pbuf);
か?
0442440
NGNG0443。。。
NGNGitoa,ltoaなどの数を文字列やその逆みたいのは
どうやって実現してるんでしょうか?
だいぶ考えたけどわかんなかった。
0444デフォルトの名無しさん
NGNGMay the source with you!
*BSD の libc でも読んでみるのが良いかと。
0445デフォルトの名無しさん
NGNG0446デフォルトの名無しさん
NGNGMedia Playerで再生中のファイル名を取得する方法ってありますか?
そういうアプリを作りたいんですが・・・
0447デフォルトの名無しさん
NGNGstart_time = clock();
for (;;) {
if (キー入力の検出あり) {
キーの処理
}
if ((clock() - start_time) / CLOCKS_PER_SEC >= 600) {
exit(0)
}
}
キー入力の検出はどうしても環境に依存する。
0448デフォルトの名無しさん
NGNG0449293
NGNGそうですそうです。
そんなかんじで、イメージしてます!
その、キー入力をどうするか、
というところを、勉強中です。
考えているところが、間違えていなくて良かったです。
<自分のはif以下に()が一つ多かったが・・・>
環境(OS)はやはりWindowsを主体に考えていますが、
割り込み処理と言う部分も環境(ハードウェア)によるのであれば、
勉強がかなり大変になりますね・・・
ちょっとうつですががんばってみます
0450をい!
NGNGwindowsなら以下略
0451デフォルトの名無しさん
NGNGハァァ?
0452デフォルトの名無しさん
NGNG/ ヽ / ヽ
| | | |
| | | |
| | | |
V ヽ
/ \
/ ヽ
| | /  ̄ ̄ ̄ ̄ ̄ ̄
| ● ● | /
ヽ / < ・・・・・・・・・・・・
\ × / \
-、、,,,,,___,,,,,、、- \
// (_人_) ( ○川 )  ̄ ̄ ̄ ̄ ̄ ̄ ̄
(_ / ヽ_)
/_________ヽ
| | |
( __) _)
0453デフォルトの名無しさん
NGNG0454293
NGNG略しすぎで今ひとつ分かりませんが・・・
APIなるものを利用せよ!
と言うことでしょうか?
ビジーループについて分かりました。
これはやめて、sleepなるものの使い方を勉強してみます。
はふぅ(>_<;)
0456デフォルトの名無しさん
NGNGWM_TIMER まで書いてやれよ。
0457!
NGNG0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNG> これはやめて、sleepなるものの使い方を勉強してみます。
おいおい…。それじゃ入力に対して即座に反応できんだろ。
0460デフォルトの名無しさん
NGNG0461名無しさん@カラアゲうまうま
NGNGUNIX系ならselect()かpoll()
0462デフォルトの名無しさん
NGNGWindows なら、入力はスレッドを別に用意せず、メッセージループ回すだけだと
思われ。
0463名無しさん@カラアゲうまうま
NGNG>>423でprintf()使ってるあたりを見るとそうとも限らない。
0464293
NGNGWM_TIMERですか。ちとまだ調べられていないので分かりませんが、
次の課題に抱えておきます。
>>459
まだs;eep()の特性を調べ切れていないので、
てっきりsleep()の方が良いのかと思ってました。
>>461-463
現在は、Windowsでbccを使って勉強しております。
ですので、現在はコマンドプロンプト上での操作になるのですが、
VisualCorC++orC#が必要と言うことになるのでしょうか?
一応環境は手持ちにあるのですが。
0465デフォルトの名無しさん
NGNG余計な処理までしてくれるうふふな仕様。
0466デフォルトの名無しさん
NGNG(´-`).。oO(>>450 は Windows スレへ行けと言いたいんじゃないかなぁ。。。)
0467デフォルトの名無しさん
NGNGちと、作ってみた。制限があるけど、自分で探して。
#include <stdio.h>
void swap(char *c, char *d);
int strlen(char *s);
void reverse(char s[]);
void itoa(int n, char s[]);
int main(void){
char str[32];
itoa(-12345, str);
printf("%s\n", str);
return 0;
}
void itoa(int n, char s[]){
char *p = s;
int sign = 1;
if(n < 0){
sign = -1;
n = -n;
}
do{
*p++ = n % 10 + '0';
}while(0 < (n /= 10));
if(sign < 0)
*p++ = '-';
*p = '\0';
reverse(s);
}
0468467 続き
NGNGvoid reverse(char s[]){
char *p = s;
p = s + strlen(s) - 1;
while(s < p){
swap(s, p);
++s;
--p;
}
}
int strlen(char *s){
char *p = s;
while(*p)
++p;
return (int)(p - s);
}
void swap(char *c, char *d){
char temp;
temp = *c;
*c = *d;
*d = temp;
}
0469デフォルトの名無しさん
NGNG32bitCRCを算出して、CRCリストと比較するモノを作成したいのですが、
CRCの計算原理がいまいちわからずに困惑しています。
どなたか噛み砕いて教えていただけないでしょうか・・・
0470デフォルトの名無しさん
NGNG手近なところだとソフトウェア開発技術者の参考書。
0471デフォルトの名無しさん
NGNGコンパイルできなくなるのですがどうしたらよいのでしょうか
struct{構造体宣言};
(中略)
int main(){ ... }
と、これはコンパイルできるのですが、このソースに
#pragma pack(push, 1)
struct{構造体宣言};
#pragma pack(pop)
int main(){ ... }
とやると
bitmap.c:107: warning: malformed `#pragma pack'
/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/crt1.o: In function `nope':
/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/crt1.o(.text+0x5c): undefined
reference to `main'
collect2: ld returned 1 exit status
となるんです
0472デフォルトの名無しさん
NGNG#pragma pack(push, 1)
struct{構造体宣言};
#pragma pack(pop)
↓
struct{構造体宣言} __attribute__ ((pack));
でどうか。
0473471
NGNGコンパイルは通ったのですが、
warning: `pack' attribute directive ignored
…だそうです。無視されたってこと…でしょうね。
fwrite/freadで構造体(BMPのヘッダです)読み書きするプログラムなので
構造体をpackして欲しいのですが。
gccなので当然wingdi.hなぞありません(w
ひとまずあきらめて別のアプローチをとったほうが良いでしょうかね。
0474デフォルトの名無しさん
NGNGpack→packedの間違いですた。スマソ。
0475デフォルトの名無しさん
NGNG無事コンパイル通りました。ありがとうございます
0476デフォルトの名無しさん
NGNG469じゃないけどさ、具体的に書名教えてよ。
CRC-16とかの計算方法が載ってそうな本
0477デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=utf8&oe=utf8&q=CRC+16+%E8%A8%88%E7%AE%97%E6%96%B9%E6%B3%95
つーか、本が好きなら「アルゴリズム辞典」系の名前の本を
片っ端から見てみりゃ幾らでもあるだろう。
0478名無しさん@カラアゲうまうま
NGNG構造体の要素をchar(とそのような構造体)だけにすればパディングは起きない。
0479デフォルトの名無しさん
NGNG0480名無しさん@カラアゲうまうま
NGNG0481デフォルトの名無しさん
NGNGこれってC言語で使えるんだよね?
VCとかBCとかで
0483buy
NGNGvoid main(void)
{
int mat[3][4],i,j;
float ave[3],is;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("mat[%d][%d]=",i,j);
scanf("%d",&mat[i][j]);
}
}
for(i=0;i<3;i++)
{
is=0.0;
for(j=0;j<4;j++)
{
is=is+mat[i][j];
}
ave[i]=is/4;
}
for(i=0;i<3;i++)
{
printf("%3d %3d %3d %3d %3.2f\n",mat[i][0],mat[i][1],
mat[i][2],mat[i][3],ave[i]);
}
}
これに各列の平均も出したいんですけどどうすればいいんですか?
誰か教えてください。
0484デフォルトの名無しさん
NGNGi と j を逆にしてループを回せばよい。
0485buy
NGNGループって何ですか?
0486デフォルトの名無しさん
NGNG・・・・・・・。
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNG(1) 輪。環。「―アンテナ」。ボタンを掛ける、ひもの輪。
(2) 「ループ線」の略。急勾配(こうばい)の地に鉄道を敷く時、線路を環状にして、登りやすくしたもの。
→loop
0489デフォルトの名無しさん
NGNG↻ฺ↻ฺ
0490デフォルトの名無しさん
NGNGマジレスしてやる。
ここで聞く以前の問題だ。
俺の昔使った本(すぐわかるC/C++)には
前から73ページ目に乗ってるよ。
もう一度勉強しなおしなさい。。
ループ=繰り返し
0491buy
NGNGまじテストやばい・・・
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNGやばいだろうな。
人類のためにさっさと学校やめてくれ。
0494デフォルトの名無しさん
NGNGんで、勉強せぇ
0495デフォルトの名無しさん
NGNG友達のソース丸・・・友達いないか
0496buy
NGNG金曜日テストなのに間にあうと思います??
0497デフォルトの名無しさん
NGNG0498buy
NGNG0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG10個のデータg[10]のそれぞれを比較して最大値を出力したいのですが
if文を大量に書くしかないのでしょうか?
10個ならまだいいですが100個とかになった場合恐ろしいので気になりました。
よろしくお願いします。
PS もしかしてとても初歩的な質問ですか?
0502buy
NGNGなんかうまくいかないんだけど・・・
0503デフォルトの名無しさん
NGNGそのためのループです。
0504デフォルトの名無しさん
NGNGなんのなためにエディタのコピペがあるとおもってんの?
0505デフォルトの名無しさん
NGNGループでまわして最大値をさがせばいいじゃん。
0506buy
NGNGめっちゃくちゃ初歩的だよ
0507デフォルトの名無しさん
NGNGお前が言うなw
0508デフォルトの名無しさん
NGNG>>505
ループ使うってのは考えたのですが
いまいちどう書いていいものか・・・
3個のデータで例でソース書いていただけませんか?
よろしくお願いします。
>>504
コピペですか・・・
効率が悪いと思ったのでなるべく避けたいです。。。
0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNGint m = a[0];
for(int i = 1; i < 3; ++i)
{
if( m < a[i] ) m = a[i];
}
0511501
NGNG少し考えてからわからなかったらまた聞きに来ます。
自分で考えずに人に聞くことばかりではダメですよね(汗)
0512510
NGNG0513デフォルトの名無しさん
NGNGいま全力で>510を思考中
0514buy
NGNG0515デフォルトの名無しさん
NGNGint m = a[0];
a[3]は初期化していないよね?実は広域変数とか?
0516デフォルトの名無しさん
NGNG>>484
0517501
NGNGレスありがとうございます。
質問の仕方が悪かったです
最大値を持っている要素と最大値を出力したいの間違いでした。
しかし、勉強になりました。
ちなみに自分がしたかったことは以下です(汗)
int k=0;
for(i=0;i<10;i++){
if(g[k] > g[i]);
else k=i;
}
printf("g[%d] = %1.2f\n",k,g[k]);
みなさん本当にありがとう御座いました。
0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNGここはCスレです。C++スレではありません。
0520buy
NGNGまじでエラーになるって〜
0521デフォルトの名無しさん
NGNGしょうがないなあ。ほれ、これでどうだ。
void main(void)
{
int mat[3][4],i,j;
float ave[4],is;
.........
for(j=0;j<4;j++)
{
is=0.0;
for(i=0;i<3;i++)
{
is=is+mat[i][j];
}
ave[j]=is/3;
}
0522buy
NGNG0523デフォルトの名無しさん
NGNG本当に i と j を入れ替えるだけだったろ?行と列を入れ替えただけだもん。
0524デフォルトの名無しさん
NGNGif(x<y) return -1;
if(x==y) return 0;
if(x>y) return 1;
と可読性をあげるために敢えてelseを使わないとある雑誌に書いてあったのですが本当ですか?
三項式の入れ子は可読性が低いというのは分かるんですが。
0525デフォルトの名無しさん
NGNG・無駄
・意図した処理にならない場合も
よってダメ。
0526buy
NGNG両方の平均を一緒に出すのがむずかったよ
0527デフォルトの名無しさん
NGNG足して割れやゴルァ
0528デフォルトの名無しさん
NGNGですよね。
まったくもう・・・>あの雑誌
0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNG確かSoftwareDesignという雑誌だったと思います。
学校で少し見せてもらっただけなので間違っているかもしれませんが。
0531!
NGNGreturn ((x-y)/abs(x-y));
とするな。
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNGおいおい、0による除算エラーがおきねーか?
0534533
NGNG0535532
NGNGほんとだ(うつ
0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNGreturn (x-y)/((x-y) ? abs(x-y) : 1);
とするな
0538buy
NGNGvoid main()
{
int n,n100;
int y;
n=0;
n100=0;
while(scanf("%d",&y),y>=0)
{
n=n+1;
if(y>=100)
{
n100=n100+1;
}
}
printf("全部で %d ,100以上は %d \n",n,n100 );
}
入力された数字すべての和、100以上の数字の和を求めるよう、改良しろって問題なんだけど
どうやればいいの??さっぱり分からん
0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNGおまえはこの道はあきらめたほうがいいぞ。
0541デフォルトの名無しさん
NGNG大阪工業か?
0542buy
NGNG0543デフォルトの名無しさん
NGNGこれより先は君の質問に限り、解答が有料になるがよろしいか?
0544buy
NGNGよろしくないです
0545デフォルトの名無しさん
NGNG俺は明日の昼飯でいいや。
0546デフォルトの名無しさん
NGNG土産もってこい
0547デフォルトの名無しさん
NGNGじゃあ自分の力でやれ。
0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
NGNG改造前のコードが、何をやっているのかは分かるの?
0550buy
NGNG工大生?
なら教えて
0551buy
NGNGわかんないです・・・
0553デフォルトの名無しさん
NGNG線を2本書き足すだけだよ! 優しいな俺って。
0554デフォルトの名無しさん
NGNGおまえひょっとして、以下略
0555buy
NGNGどこに足すの?
0556buy
NGNG以下略って何よ?
0557デフォルトの名無しさん
NGNG>>538のプログラムが何をしているのか一行ずつ読みながらよく考えてみな。
Cの文法はわかっているんでしょ?
0558デフォルトの名無しさん
NGNGもうこれが最後だからな!1を足す代わりにyを足せ。
0559デフォルトの名無しさん
NGNG生き別れになったお兄さんだろ!! こんなところで会えるなんて!!
0560buy
NGNG0561デフォルトの名無しさん
NGNG元のプログラムでは、100以上の数の個数
0562デフォルトの名無しさん
NGNGちょっと待て。
そろそろくだらない質問の連続やめろよ。
自分で調べろ。
http://www.yahoo.co.jp/
>>555>>560
客観的に見てみな。
他人がこんなん書き込んでたらどう思う?
Cの前に掲示板のマナーを学ぶことを強くオススメする。
0563buy
NGNGありがとう
0564buy
NGNGすいませんでした・・・
自分でやります
0565デフォルトの名無しさん
NGNGに昼飯よろしく。
0566デフォルトの名無しさん
NGNG||だろ?
0567デフォルトの名無しさん
NGNGべつにいいんじゃない?
0568デフォルトの名無しさん
NGNGscanfでyに代入(?)したあとにyが0以上かどうか判断しているんだろ。
(俺は条件式でカンマ演算子なんか使いたくないな)
0569デフォルトの名無しさん
NGNG0570名無しさん@カラアゲうまうま
NGNGwhile (scanf("%d", &f) == 1)
もしyが0以上という条件があるなら
while (scanf("%d", &f) == 1 && y >= 0)
0571buy
NGNG0572デフォルトの名無しさん
NGNG勉強用プログラムでscanfの戻り値なんて確認しないだろ。
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNGいや、実際に代入した個数。それを見てきちんと代入されたかどうか判断する。
0575名無しさん@カラアゲうまうま
NGNG0576デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1024592344/
0577デフォルトの名無しさん
NGNGscanfで複数個の代入なんて…
0578デフォルトの名無しさん
NGNGするだろ?少なくともsscanfでは。
0579デフォルトの名無しさん
NGNGぷっ。
0580デフォルトの名無しさん
NGNG「使うな」といわれてそれっきりのやつも多いんだろうなあ。
子供のおもちゃにしては危険度の高い関数だが
いい大人がなんで使っちゃいけなかったのか、
どう使うべきなのかを理解せずに未だに「いけないもの」
としてる香具師を期待したが、出てこないな、おい。
0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNG0586デフォルトの名無しさん
NGNG* strtok scanf:どちらも仕事では、使ったこと梨。
* scanf :仕事でなければ結構使うかも。
*/
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNGstrtokよりもscanfの方がよっぽど危険だと思うが?
strtokは素性さえ知ってれば仕事でも使えるだろ。
0591デフォルトの名無しさん
NGNG頃の、過去の遺物。
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG俺のティムポが曲がっているのと同じくらい不思議。
0594デフォルトの名無しさん
NGNG簡単だから。
0595デフォルトの名無しさん
NGNGティムポが曲がるのは、同じ手でばかりオナーニしてるせいらしいぞ。右利きと左利き
のティムポは逆方向に曲がっているとか。
0596デフォルトの名無しさん
NGNG逆の手でやってりゃ直るのかい?
0597デフォルトの名無しさん
NGNGどうかな?ちなみに俺は両効きなので、ティムポはほぼまっすぐに
なっているぞ。ふふふ
0598デフォルトの名無しさん
NGNGそうそう、こういうものは沢山残ってる(w
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNG>カードでデータを読みとっていた頃の、過去の遺物。
じゃあカードと紙テープ復活させる?
0601デフォルトの名無しさん
NGNGじゃあ最新はどこら辺よ?
0602デフォルトの名無しさん
NGNGそこまでしなくても、エディタで入力ファイルを書式通り書いて
リダイレクトで読み込ませるだけで十分。
0603デフォルトの名無しさん
NGNG小学生が考えるようなプログラミング言語を作った
「ひまわり」の作者が「ひまわり.NET」を作成中との情報です。
同作者は「Web上でも動くんだよーチャキーン」と連呼し、各種掲示板サイトに
事実上荒らし行為とよばれる書き込みを多数している模様。
需要がろくにないくせに何を言ってるんだ!とあちこちで死ねコールが
発生。しかし韓国ではワールドカップの影響か「ひまわり」を愛用する
若者たちが最近多く見られるそうだ。彼らは「カムサハムニダチョムルキセヨーウォライケィ」
(ひまわりよ我らに讃えあれ)と意味不明の言葉を発しているとのこと。
ひまわりが韓日関係の向上に一役かってくれそうな状況だ。
0604デフォルトの名無しさん
NGNG最新は何かな?
ちなみにC++自体も中身は時代遅れと作者は言っていたようだし。
要するに何が問題かというと、CもC++も入出力機能は言語機能では
なくライブラリとして提供されている点が問題。
GUIのライブラリを入出力用に使えば機種依存は生じるが、最新の
機能を維持できる。それだけの話。
0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG剥げどう。
0609通りすがり
NGNG0610デフォルトの名無しさん
NGNGって事はVC++って事?
やっぱりMSかい。スモールサイズはアセンブラって事に落ち着くかい。
0611デフォルトの名無しさん
NGNGその通り。なぜこのような使い物にならないライブラリが添付されている
のか不思議。まあUNIXは未だにCUIも当たり前だから不思議でもないか
も。
0612デフォルトの名無しさん
NGNGCUIであることと、古くさいライブラリが付いているのは別問題。
0613デフォルトの名無しさん
NGNGMotifもお忘れ無く。
0614デフォルトの名無しさん
NGNGint foo(int x, int y)
{
if (x < y) return -1;
if (x == y) return 0;
if (x > y) return 1;
}
> cc -c -Wall t.c
t.c: In function `foo':
t.c:7: warning: control reaches end of non-void function
という具合にwarningがでる。それなんでこう書く。
if (x < y) return -1;
if (x > y) return 1;
return 0; /* x == y */
0615デフォルトの名無しさん
NGNG条件文無しの無条件returnが一つは必要って事かな?
0616デフォルトの名無しさん
NGNG0617デフォルトの名無しさん
NGNG0618614
NGNGreturn -1;
} else if (x > y) {
return 1;
} else { /* x == y */
return 0;
}
こんな感じ?こだわりはなくて気分次第で使い分け。
でもelseを使うとなぜか{}を書きたくなる。
0619デフォルトの名無しさん
NGNG0620デフォルトの名無しさん
NGNG関数に配列を投げ込んで
配列内の最大値を返そうとしてるんですが
うまくいきません
> gcc test.c
test.c: In function `MAXdt':
test.c:32: arithmetic on pointer to an incomplete type
test.c:33: arithmetic on pointer to an incomplete type
たすけて…
0621デフォルトの名無しさん
NGNGコンパイラのエラーの意味はわかるのか?
0623デフォルトの名無しさん
NGNG0624620
NGNG#include<stdlib.h>
#define N 1
int MAXdt(int dt[][]);
int main(void)
{
int i,j;
int cmax;
int org_dt[N][N];//オリジナルデータ
org_dt[0][0]=3;
//配列の最大値を探す
cmax=MAXdt(org_dt);
printf("%d",cmax);
}
int MAXdt(int dt[][])
{
int cmax,i,j;
cmax=0;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(dt[i][j]>cmax)
cmax=dt[i][j];
return cmax;
}
0625620
NGNGif(dt[i][j]>cmax)
cmax=dt[i][j];
でるみたいです
0627デフォルトの名無しさん
NGNGとりあえず、何を繰り返したいのか小一時間(以下略
0628デフォルトの名無しさん
NGNG> int MAXdt(int dt[][])
仮引数に配列を渡すときには、実際にはポインタに縮退しているのは理解してる?
0629620
NGNG0630デフォルトの名無しさん
NGNGMAXdtの仮引数→dt[N][N]は?
0631デフォルトの名無しさん
NGNGココミル!
0633628
NGNGそう書いても良いけど、実際の内部処理を反映する形で宣言すると
int MAXdt(int (*dt)[N])
だよね。「int 型 N 個の配列へのポインタ」が引数として渡される。
0635デフォルトの名無しさん
NGNGint dt[N][N]; と宣言してるから dt 自体は N * N の二次元配列。ただし dt を
右辺値として評価すると、それは N 要素の一次元配列へのポインタに縮退す
る。
二次元ではなく一次元でも同じなんだけど、一次元だと適当に理解していても
どうにかなる。二次以上は、ポインタと配列の区別を明確にしておかないとハマ
る。
0636620
NGNGありがとうございました 動きました!!
なんかいまいちわかんないですが
dt[i]まではポインタで
[j]はそのポインタを格納している配列なのかな???
うーむ・・・
0637620
NGNG(*dt)[N] 動作しました
[N][N] エラーでとまりました
0638名無しさん@カラアゲうまうま
NGNG> [j]はそのポインタを格納している配列なのかな???
やっぱり分かってない。
0639デフォルトの名無しさん
NGNG誰のせいかは名言しませぬが。。
0640デフォルトの名無しさん
NGNG覗いてみたら消防の宿題ばっかしやし。
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNGint *a;
main( )
{
func( );
a[ 0 ] = ...;
}
void func( )
{
a = ( int *)malloc( ... );
}
みたいなことはできますか?
なんか、配列が壊れてるみたいなんですが。
0644名無しさん@カラアゲうまうま
NGNG0645デフォルトの名無しさん
NGNG>644 ありがとうございます。
よく分かりませんが malloc するサイズを
必要な分だけにしたらうまくいきました。
0646デフォルトの名無しさん
NGNG>malloc するサイズを必要な分だけにしたらうまくいきました。
いや、当たり前ですが。
まだmallockとかは早いと思われ。
ポインタの使ってる割にはグローバル変数で渡してみたり・・・。
0647デフォルトの名無しさん
NGNG> まだmallockとかは早いと思われ
mallockって何ですか?
多分、君もmallocを使うのは早いと思われる。
0648デフォルトの名無しさん
NGNGmallock知らんのか?
mallocを習得したものだけが使える究極の関数だ。
きっと君は100年経ってもmallockは使えんだろうね。
0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNGk=こんにちわ
0652デフォルトの名無しさん
NGNG1024
0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNGキティ街
0655デフォルトの名無しさん
NGNG更年期
0656デフォルトの名無しさん
NGNG俺のイニシャル
0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNGその場合、戻り値の情報量を減らす理由があれば別として、
return x - y;
で十分のような。
0660デフォルトの名無しさん
NGNG勿論。callock 一度つかったら calloc なんて使ってられない。
0661デフォルトの名無しさん
NGNG確かにその方が早い。
でも意味がちがってくる・・
つまりプログラムを読んだときに意図が見えにくくなる
0662デフォルトの名無しさん
NGNG逆は成り立たないということでよろしいですか?
0663デフォルトの名無しさん
NGNGカーネルレベルのmallocがmallock。
0664デフォルトの名無しさん
NGNGprintkってのもありましたな・・・
0665デフォルトの名無しさん
NGNGこの内容って関数から抜けたときに配列の要素が消えるから
関数外で戻り値のポインタを使用して配列の要素にアクセス
してはならないってことであってる?
それとも、returnに自動変数を使用しちゃいけないってこと?
0666デフォルトの名無しさん
NGNG正解。
関数出た時点からその関数ローカルな変数の値は保証されない。
0668デフォルトの名無しさん
NGNG値渡しってわかるよね?
あれは引数だけでなく返値にも適応される。
だから戻り値にはその変数のコピーが渡される。
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNG>それとも、returnに自動変数を使用しちゃいけないってこと?
とか言っておきながら>667は何だろう?
0672デフォルトの名無しさん
NGNGそう?リアルタイムで読んだけど、
「こんな奴おらへんわ〜往生しまっせ〜」
って感じで長し読みした。
0673デフォルトの名無しさん
NGNGWindowsアプリのソースで以前あった。これってヤバイの?
0674デフォルトの名無しさん
NGNGつぅかそんなレベルで変数共有留守法が悪いと思われ。
0675デフォルトの名無しさん
NGNGrule(int l, int r , int h){
int i,j,t;
for(t=1,j=1;t<=h;j+=j,t++)
for(i=0;l+j+i<=r;i+=j+j)
mark(l+j+i,t)
}このアルゴリズムの解説をお願いします。markは印をつける
という意味です。
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNGtempp)=(kata *)realloc((p),((cnt))*sizeof(kata));\
0678デフォルトの名無しさん
NGNG(tempp)=(kata *)realloc((p),((cnt))*sizeof(kata));\
なんかエラーが出るんですけど,なぜ?
kataが悪いようなんですが
0679デフォルトの名無しさん
NGNG最初の行の\の後ろにある文字を消してみては。
0681デフォルトの名無しさん
NGNGお前このまえも来ただろ。
0682デフォルトの名無しさん
NGNGそれはマクロじゃなくてマクロを展開した後の文に問題があるんだろ。
0683デフォルトの名無しさん
NGNG本当だ。
ありがとう。
3時間悩んだ俺は未熟者
これからは,前後の文もよーく見ます
国語が苦手だったのは,前後の文みなかったせいかな
0684デフォルトの名無しさん
NGNGどんなコンパイラを使っているの?
そういうものは普通はエラーじゃなくて警告がでるよね?構文上の誤りがあるわけじゃないんだから。
0685684
NGNGおかしいな、ポインタ同士なら警告になるはずだが・・・
0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNG俺もそれよくやった。
>>680
reinterpret_castを使えば警告は出ないよ。使うべきでないけどね。
0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNG拡張子が".cpp"、つまりコンパイラにC++と認識されていると、C形式の
普通のキャストもエラーになる事がない?
0690デフォルトの名無しさん
NGNGstatic_cast、reinterpret_castが行われる。とっても便利
Cで通用するキャストは全部通るはず、と思う
0691デフォルトの名無しさん
NGNG本当だ。第3版のP927〜928に書いてある。知らなかった。使わなかった
もので。
0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNGなるのではない?
0694デフォルトの名無しさん
NGNGunsigned の方が、ぱぅわが強いのです。ぱぅわが。
0695693
NGNG0696デフォルトの名無しさん
NGNGsize_t count = 10; // 個数
if ( value*count<100 ) puts("合計は100未満だよ");
↓
(゜д゜)マズー
0697デフォルトの名無しさん
NGNGtは、印の高さで(l+j+i)は印をつける位置です。
0698デフォルトの名無しさん
NGNG一文字ずつ分解する(分けて取り出す)プログラムを教えてほしいのですが。
0699デフォルトの名無しさん
NGNG文字コード書いてくれてないから何とも言えません・・・
0701デフォルトの名無しさん
NGNGmbstowcs()とかを使ったら?使えない処理系もあるけど…
0702デフォルトの名無しさん
NGNG1バイト読みとって最上位ビットが1だったら2バイト読んで、0だったら1バイト読むとか・・
でも>>701がよいとおもう。
0704デフォルトの名無しさん
NGNGそれだけでは、いわゆる半角カナがあるとうまくいかない。
0705デフォルトの名無しさん
NGNGShiftJISの文字コード表探してきて法則性見つけてみる?
勉強にはなると。
0706デフォルトの名無しさん
NGNGああそうか。半角仮名があったな(笑)
0707デフォルトの名無しさん
NGNG次の1バイトを _ismbbtrail() でチェック。これも真なら
2バイト文字として読み飛ばす。
0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNGsigned char だとまずくないですか?
0710デフォルトの名無しさん
NGNG銀行系とか遊戯系とか。
めちゃくちゃビックリした。
0711デフォルトの名無しさん
NGNG0712名無しさん@カラアゲうまうま
NGNGつーか、cにカッコつけろや(゚Д゚)ゴルァ
0713名無しさん@カラアゲうまうま
NGNG0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG意味をもったキャストではなくて、そのまま生のバイトを再解釈して
型を変えるのでややアレ。
0716デフォルトの名無しさん
NGNGreinterpret_castなんてはじめから存在しないものと思っていいよ
0717デフォルトの名無しさん
NGNG特にWindowsでプログラムする場合なんかは。
0718デフォルトの名無しさん
NGNGあえて聞くと、画像処理で頻繁に LPBYTE <-> LPWORD なんかの変換を行うけど、
こんなのにもわざわざ C++ スタイルのキャストを行うの?
0719名無しさん@カラアゲうまうま
NGNGキャストの話ではないが、RISCとかに移植しようとしてSIGBUSを喰らう罠。
0720デフォルトの名無しさん
NGNGvoid*経由だろ、フツー
0721デフォルトの名無しさん
NGNGLPVOID <-> LPBYTE はC++スタイルのキャスト?
0722デフォルトの名無しさん
NGNGつぅか汎用ポインタはキャストしないと使えないしょ。
0723デフォルトの名無しさん
NGNGstatic_cast<>()
0724デフォルトの名無しさん
NGNG可読性も落ちる気がするし。
0725デフォルトの名無しさん
NGNGリファクタリング時に泣くことになる。
0726デフォルトの名無しさん
NGNGキャストを検索するマクロ書け
0727デフォルトの名無しさん
NGNG漏れも今度からstatic_cast使おうかな
0728デフォルトの名無しさん
NGNG書いてください。
漏れには正確に列挙する正規表現が思いつかないよ
0729デフォルトの名無しさん
NGNG書くとき大変なんて、誰も言ってないが?
そういうことにしたいのですね?(どこかで聞いたフレーズ)
0730名無しさん@カラアゲうまうま
NGNG0731デフォルトの名無しさん
NGNGコンパイラと同じように、インクルード展開して、
型認識せよ
0732デフォルトの名無しさん
NGNGそれならやっぱりC++スタイルキャストの方がいいやん
0733デフォルトの名無しさん
NGNG一回書けば、ずっと使えるぞ。学生なら勉強にもなるぞ。
リファクタリング時に、見づらいC++スタイルキャストで
ソースが難解になり、泣かずにすむぞ。
0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNGC++スタイルキャストは冗長でうざいけど判断の妨げになることはない
grepだけで簡単に判断できるから、どの環境でも列挙できる強みもある。
0736デフォルトの名無しさん
NGNG>>C++スタイルキャストは冗長でうざいけど判断の妨げになることはない
ソースが見づらいのは、充分判断の妨げになる。
>>grepだけで簡単に判断できるから、どの環境でも列挙できる強みもある。
Cスタイルキャストがないとは判断できない。
結局、全てのキャスト部分を列挙するツールが必要。
0737デフォルトの名無しさん
NGNG冗長だとは書いてあるけど、見づらいとは書いてないじゃん
0738デフォルトの名無しさん
NGNGだと本当に可読性悪くなってしまう。結局 C スタイルキャストに
戻してしまった...。
0739デフォルトの名無しさん
NGNGクラスオブジェクトのポインタはC++キャスト使ってるけど、
その住み分けにしばし迷ったりして、いっそのこと全部Cスタイルにしようかと。
0740デフォルトの名無しさん
NGNG入力文字列にEBCDICを使えるのでしょうか?
0741デフォルトの名無しさん
NGNGどうして紹介されてるんですか?
(入ってるのは、C# , JScript .NET , Visual Basic .NET コンパイラ だけなんですが)
0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNGその処理系が対応していれば使える。
0744デフォルトの名無しさん
NGNG(unsigned)intにキャストして下位ビットを見て処理を分けるな。
x86でも高速化に有効。
if ((((unsigend)ptr)&(sizeof(xxx)-1))==0) {
xxx *ptr2 = (xxx*)ptr;
/* aligned code */
} else {
/* unaligned code */
}
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNG| |
| |
| |
| |
∧_∧ | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д`)/./ < 先生!バカがいます
/ / \___________
/ /
__| | | __
\  ̄ ̄ ̄ ̄ ̄ \
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
.|| ||
0747デフォルトの名無しさん
NGNGというか、普通に考えたらASCIIとEBCDICと同時に使えないような
気がするんだけど、文字コードがアスキーだというのは
いったい誰がどこで定義するんだ?
LANG=Cだとアスキーコードなの?
0748デフォルトの名無しさん
NGNG> というか、普通に考えたらASCIIとEBCDICと同時に使えないような
> 気がするんだけど、
誰がASCIIとEBCDICを同時に使おうとしてるの?
Cの仕様では文字コードはASCIIとは限定していないし、
某汎用機のCコンパイラはEBCDICコードに対応している。
0749デフォルトの名無しさん
NGNG11日しか経って無いのにもうレス700・・・
0750名無しさん@カラアゲうまうま
NGNG> 某汎用機のCコンパイラはEBCDICコードに対応している。
昔から気になってるんだけど、その処理系のisascii()は何を返すんだろう。
0751デフォルトの名無しさん
NGNGhttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/isascii.3.html
isascii()
はcが、ASCII文字セットに合った7ビットの unsigned char であるかを調べる。この関数はBSDやSVIDが拡張したものである。
とのことだから、値がASCIIのコードに合っていればいいんじゃないの?
0752デフォルトの名無しさん
NGNG初心者板に行ってみな。もっととんでもないスレがあるから・・
0753デフォルトの名無しさん
NGNGCの標準関数にはisascii()などという関数は存在しません。
751も
> この関数はBSDやSVIDが拡張したものである。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
を無視して勝手な推測をするな。
0754751
NGNGあ、ごめん。下の準拠ってところにANSI-Cと書かれていたから準拠なんだと思った。
他の関数のことだね。というかそこにもBSDや・・・と書かれているし(鬱
0755デフォルトの名無しさん
NGNGそれを言っちゃだめ(w
0756デフォルトの名無しさん
NGNG標準入力より入力された文字を見えなくして、取得するための関数はありますか?
getc(stdin)やscanf系を試しましたが、いずれも入力した文字は目に見える形で
取得されているようです。ないと思いましたが不安になったもので。よろしくお願い
します。
0757デフォルトの名無しさん
NGNG(゚Д゚)ハァ?
質問の意味がわかりません。
文字を見えなくして?(゚Д゚)ハァ?
0758名無しさん@カラアゲうまうま
NGNG0759shige
NGNG簡単にやるなら、cursesでnoecho()呼べ。
0760757
NGNG俺だってそれくらいのことは想像がつく。
いいかたがわるかった。
ようは相手にわかるように質問する力をつけてほしいのだ。
0761デフォルトの名無しさん
NGNG超初心者な質問で申し訳ないですが、お願いします。
0762デフォルトの名無しさん
NGNG宿題お断り。
0763デフォルトの名無しさん
NGNGatoiに放り込めば数値がゲットできるってーことか。
さっそく試してみるか。
できなかったらころす
0764デフォルトの名無しさん
NGNGヘロンの公式を教えろ。
0765デフォルトの名無しさん
NGNGアフォかw
0766デフォルトの名無しさん
NGNG教えなかったらころす。
0767デフォルトの名無しさん
NGNGdouble helon(double a,double b, double c){
double s = (a+b+c)/2 ;
return sqrt(s*(s-a)*(s-b)*(s-c)) ;
}
0768デフォルトの名無しさん
NGNG( ´,_ゝ`)プッ
0769767
NGNG0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNG0773デフォルトの名無しさん
NGNG君はヘロンの公式が何かしらないのか?
宿題は宿題スレにいけ、殺すぞ!
0774デフォルトの名無しさん
NGNG>>761には不覚にも見抜かれてしまったが、
まあ教えてくれや。
教えなかったら頃すぞゴルァ!!
0775デフォルトの名無しさん
NGNGちょっと待ってクダサーイ。
どうしてそこで笑うデスか?
理由をおしえないと ぶちますよ?
0776デフォルトの名無しさん
NGNG0777767
NGNGただへロンのスペリングは間違っている。
0778デフォルトの名無しさん
NGNGしまう。このスレの住人はなかなか優秀じゃのう(w
0779尻めつれ
NGNGそれにしたって 「アスキーじゃないとだめ」 なんてのは
man見ても載ってないし。
そもそも文字コードの「前提」ってやつは 処理系のどこで
どう定義されてるんですか ってのが
誰も応えられないのはいったいぜんたいどういうことなのか。
これがわからないと自分で変換プログラムを書かないとならないので
面倒くさいけど、てゆーか、もう書いちゃったんだけど、くやしくて
車輪の再開発って気に入らないってゆーか。
これから誰を信じていけばいいの? おしえて。
0780デフォルトの名無しさん
NGNGまともなプログラマは、みんな「答えられる」から。
0781デフォルトの名無しさん
NGNGlocale
0782デフォルトの名無しさん
NGNGchar arr[] = "";
or
char arr[] = {'\0'};
で、空文字列を格納する配列を
宣言できるらしいですけど、
空文字列の使い道ってあるんですか?
実際宣言することなんてあるんでしょうか・・・・?
0783デフォルトの名無しさん
NGNGないから安心しろ。
0784デフォルトの名無しさん
NGNGロケールでEBCDICを使いたいときはどうすればいいの?
0785デフォルトの名無しさん
NGNGEBCDIC をサポートしている処理系を使う。
0786デフォルトの名無しさん
NGNGLinuxでEBCDICをサポートしてるディストリビューションってある?
0787デフォルトの名無しさん
NGNGない。
0788デフォルトの名無しさん
NGNGじゃー どのみち もーだめじゃん
もう しぬしかない・・・
0789デフォルトの名無しさん
NGNGいきるのです
0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNGまず、メモリとはなんぞ輩やり直し。
0792s
NGNG0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNG二次記憶(secondary memory)って知ってる?
0796デフォルトの名無しさん
NGNG0797デフォルトの名無しさん
NGNGttp://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.8.2.html
0798デフォルトの名無しさん
NGNGhttp://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.8.2.html
0799デフォルトの名無しさん
NGNG0800デフォルトの名無しさん
NGNG>>796
0801デフォルトの名無しさん
NGNGそこの管理人は生意気だから嫌いだけど、それはワラタ
0802デフォルトの名無しさん
NGNG0803コンパイラさんへ /* とりあえずgccのみ */
NGNG#define B.Kernighanマンセー
#define D.Ritchieマンセー
#define R.Stallmanは神!
#define J.Gosling逝ってよし!
#undefine<microsoft.h>
#define …<stdio.h>??? /* 見えてねーよな?*/
main(コンパイルして下さい) /* ったくよー、めんどくせえなー */
{
表示してね("hello, world\n"); /* 分かんねーんだよ */
retune コンパイラさん、今日もいかしてますね(はぁと;
}
0804デフォルトの名無しさん
NGNG発作?
0805デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNG#defineA( str) Func( "str" )
A(hogee);と記入すると、Funcには"hogee"ではなく"str"が渡されてしまいます。
マクロで"hogee"を渡す方法ってありますか?
0807デフォルトの名無しさん
NGNG0808806
NGNGそれだと、Func(hogee)になってコンパイルエラーになりませんか?
0809806
NGNG失礼しました。
勘違いしました。
早速試してみます。
0810806
NGNGありがとうございました!
0812名無しさん@カラアゲうまうま
NGNG0813デフォルトの名無しさん
NGNGおまえ失礼な奴だな
0814デフォルトの名無しさん
NGNG0816名無しさん@カラアゲうまうま
NGNG0817新米 ◆jH.6d5ig
NGNGfor(i=0;i<=100000;i++)
{
printf("%d",i);
}
ってやると100000が表示されるまで何にも受け付けてくれないのですが
もしこの表示中にexitと入力してエンターすれば
表示がそこでとまる、というプログラムを作りたいときは
どのようにすればいいのでしょうか?
処理をしながら別のところでは別処理をするプログラムを作りたいわけです。
0818デフォルトの名無しさん
NGNGスレッド。kbhit。getch
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG初心者の質問に答えてるとき、どうも話がかみ合わないなーと思ったら
その勘違いをしながらずっと話を進めてたっていう・・・
0823新米 ◆jH.6d5ig
NGNG0824新米 ◆jH.6d5ig
NGNG0825デフォルトの名無しさん
NGNGこの逆は奥村晴彦さんが書かれた「C言語によるアルゴリズム事典」から調べたんですけど…
思うように出力されないです(TT)
0826デフォルトの名無しさん
NGNGC言語で大抵の事が出来ると聞いてるのですが、
テトリスあたりの簡易ゲームも作れる事が出来るのですか?
それとC言語関連の資格試験があったら教えてください
0827756
NGNGスマソ、UNIXパスワードみたいに見えない形といったほうが分かりやすかったようです。
>>758-759
サンクス、ためになりました。
その後調べてみたのですが、_getch()で思うような操作ができるようになりました。
お騒がせしてしまってすみませんでした。(getche()が、scanf系やgetchar()と同じく
目に見える形になる)
0828デフォルトの名無しさん
NGNGできる。
0829デフォルトの名無しさん
NGNG犯罪の匂いがする。
0830デフォルトの名無しさん
NGNGおとといくらいからC言語の勉強を始めたのですが、本を読んでる間
貧乏ゆすりが止まりません。どうしたらいいですか?
0831デフォルトの名無しさん
NGNG入院してください。
0832デフォルトの名無しさん
NGNGつま先ではなくかかとを付くようにして下さい
そんなどーしょうもない俺が1,000行、約2,000ステップのプログラムを1週間後までに修正できる実力をつけるためにはどうしたらいいでしょうか?
0834デフォルトの名無しさん
NGNGでもなぁ、人様の書くソースはくせありまっせ。
0835デフォルトの名無しさん
NGNGるーぷあんろーりんぐとコピペの練習(ワラ
0836デフォルトの名無しさん
NGNG「1,000行、約2,000ステップのプログラムを作れるようになりたい」と
勘違いしているヴァカ発見。
>>833
「1,000行、約2,000ステップ」ってどういうこっちゃ ?
0837デフォルトの名無しさん
NGNG妄想で補ってください。
できなければ右脳を鍛えてください。
0838デフォルトの名無しさん
NGNG/* comment */
a=b; b=f(c) ; c=g(a);
みたいなコードなのでわ……
0839デフォルトの名無しさん
NGNG見事にすべてを破壊してますな。
そのなかでif文を4つくらい使っているのですが,
これをなくすためにgoto文を使おうと思うのですが,
他の方法(文が読みにくくなるけど,elseつかったりしてなんとかしる)を取った方が良いですかね?
0841デフォルトの名無しさん
NGNG0842デフォルトの名無しさん
NGNG(gomen totsuzen IME ga sinda)
0843デフォルトの名無しさん
NGNGfor(){
if(・・・) goto aaa;
if(・・・) goto aaa;
if(・・・) goto aaa;
if(・・・) goto aaa;
aaa:
}
とかやってんじゃ・・
if(data==1) No=1;
if(data==2) No=2;
if(data==3){
if(-------){
if(-------){
if(-------)
else if(------)
}else{
}
}
switchつかったほうがいいのかな?
0845デフォルトの名無しさん
NGNGNo = 1;
continue;
}
if(data==2){
・
・
・
とか。
0846デフォルトの名無しさん
NGNG表示関数(Src[No]);
ってやってるの
0847デフォルトの名無しさん
NGNGif (xx) break;
} while(0);
を覚えなさい
0848デフォルトの名無しさん
NGNGってか
for
for
do{
}while(0);
にしている人どのくらいいる?
0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNG???
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNGマクロ内に複雑な文を入れたいとき do/while で囲むと吉
0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNG配列の順番でNo決めるのか?
0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNG*( *( hairetu + j ) + i ) == hairetu[i][j]
だろ
0859デフォルトの名無しさん
NGNG変だぞ?
0860デフォルトの名無しさん
NGNGだろ?
0861デフォルトの名無しさん
NGNG*( hairetu + i * j ) == hairetu[i][j]
0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNGNoって何だ.
0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNG馬鹿か?
*( hairetu + i + j * w)だろ。
でも、>>858が正解
0866デフォルトの名無しさん
NGNG>>855の情報だけでは何とも言えない。これ答え。文句あっか!
0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNG馬鹿か?
0869デフォルトの名無しさん
NGNG大体、>>844の質問って何?
分岐をシンプルにしたいって事?
ループ以外でのi or jに加減算なければアホなレスもOKでは?
0870デフォルトの名無しさん
NGNG>>858=865は真性
ということでよろしいか?
0871デフォルトの名無しさん
NGNGj[i[hairetu]] == hairetu[i][j] だがな
0872デフォルトの名無しさん
NGNGいや、ネタじゃないで。。。(本人。。)
ネストしたループしか考えてなかった。。。。
0873デフォルトの名無しさん
NGNGどこからjとiの配列が出て来るんや。。。。。。。
0874デフォルトの名無しさん
NGNG"abcde"[i]とi["abcde"]は等価
0875デフォルトの名無しさん
NGNG「C言語」のスレでは??
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNGって言うかそれ出来たら言語的にすごい気がする。
これ指向で誰か仕様考えない?
0878デフォルトの名無しさん
NGNGCは言語的にすごかったのですね。
0879デフォルトの名無しさん
NGNG出来たらつか、出来るんだ。
x[y]の形式は x + yと等価だから、y[x]でも同じ事
0880デフォルトの名無しさん
NGNGだから!「言語的に」だって!!
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNGxが基準。yがオフセット?
0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG#define foo(x) {\
/*ほげほげ*/ \
goto XXX; \
/* ふがふが */ \
XXX: \
}
を複数回使ってもコンパイラに文句を言われないよう、XXXに __LINE__ か何かを
くっつけたいんですが、どうやったらできますか?
こんなマクロ駄目とかgoto使うなってのはナシで。
0886デフォルトの名無しさん
NGNGこんなマクロ駄目。goto使うな。
0887デフォルトの名無しさん
NGNGdo {\
break;
} while(0)
0888デフォルトの名無しさん
NGNGdo {\
break; \
} while(0)
\つけ忘れ。鬱だし脳
0889デフォルトの名無しさん
NGNGマクロの中のforの2重ループから抜けたいのよね…
0890デフォルトの名無しさん
NGNGマクロにラベル文字列を指定する引数を追加するってのはどうだ?
コンパイルは通ったぞ。望み通りの動きをするかどうかは知らん。
0891デフォルトの名無しさん
NGNGgoto XXX##str;
XXX##str:
でいいっけ?
0892デフォルトの名無しさん
NGNGええんちゃう?
ただ、strに渡す引数は手作業で指定してやらないといけないけど。
(__LINE__等が使えない)
0893名無しさん@カラアゲうまうま
NGNG#define CONCAT2(x,y) x##y
#define CONCAT(x,y) CONCAT2(x,y)
#define foo() { \
goto CONCAT(xxx_,__LINE__); \
CONCAT(xxx_,__LINE__):; \
}
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNGそうそう!良く考えたらそうなんだよね!
でもCのスレだからな。
ポインタに0入れてiもjも0なら「少し」は判るが・・・
(そりゃ無いけど)
0897デフォルトの名無しさん
NGNGとは?
0898デフォルトの名無しさん
NGNG勉強熱心で若者なら有意義な質問かもね。
0899デフォルトの名無しさん
NGNGよかったな。向上心無しの技術者定年間近のおっさんはお前だけだ。
for(i=0;i<100;i++)
for(j=0;j<100;j++)
No=tel(hairetu[i][j]);
#define tel(a) (a)&(1<<3)
ッてな感じです
0901デフォルトの名無しさん
NGNGこういうので遊べるってのもプログラマの素養の一つだろ。
0902デフォルトの名無しさん
NGNGポインタに0が入るロジックあるのか??
0903デフォルトの名無しさん
NGNG> でもCのスレだからな。
ってのは変だなと思って。
0904デフォルトの名無しさん
NGNGう〜ん。それ言われるとなーー
でも、それだと数学的になり過ぎて、
収集つかないような気がする・・・
0905デフォルトの名無しさん
NGNGなぜこの流れで数学なんて言葉が出てくるんだ?
0907デフォルトの名無しさん
NGNGnum|=2<<20;
printf("num=%d\n",num>>20); //2
printf("num=%d\n",(num&printf("num=%d\n",(num&2097151)>>20); //2
のはずなんですが,最後の&したあとにシフトさせるのが,0になってしまいます。
上のプリント文は,2が出るのに,なんで下のプリント文では,2が出ないんでしょうか?
0908デフォルトの名無しさん
NGNGnum|=2<<20;
printf("num=%d\n",num>>20); //2
printf("num=%d\n",(num&printf("num=%d\n",(num&2097151)>>20); //2
のはずなんですが,最後の&したあとにシフトさせるのが,0になってしまいます。
上のプリント文は,2が出るのに,なんで下のプリント文では,2が出ないんでしょうか?
0909デフォルトの名無しさん
NGNGnum|=2<<20;
printf("num=%d\n",num>>20); //2
printf("num=%d\n",(num&printf("num=%d\n",(num&2097151)>>20); //2
のはずなんですが,最後の&したあとにシフトさせるのが,0になってしまいます。
上のプリント文は,2が出るのに,なんで下のプリント文では,2が出ないんでしょうか?
0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNGとりあえずnum&2097151==0だ。
何がやりたいのかよく分からんが
0912名無しさん@カラアゲうまうま
NGNG2<<20==0x200000
0913デフォルトの名無しさん
NGNGで21ビット目が埋まる?
0914デフォルトの名無しさん
NGNG0915デフォルトの名無しさん
NGNGnum|=2<<20;
printf("num=%d\n",num>>20); //2
printf("num=%d\n",(num&printf("num=%d\n",(num&2097151)>>20))))))))))))); //2
のはずなんですが,最後の&したあとにシフトさせるのが,0になってしまいます。
上のプリント文は,2が出るのに,なんで下のプリント文では,2が出ないんでしょうか?
足りなそうだったので付け加えてみますた。
0916909
NGNG0917デフォルトの名無しさん
NGNGkansuu'const char a)
{
return a+1;
}
のようにconstってよく付けますか?
つける場合プロトタイプ宣言の方にも付けた方が良いでしょうか?
0918デフォルトの名無しさん
NGNGkansuu'const char a)
{
return a+1;
}
のようにconstってよく付けますか?
つける場合プロトタイプ宣言の方にも付けた方が良いでしょうか?
0919名無しさん@カラアゲうまうま
NGNG関数の引数に'はつけたことがない
constもポインタ引数にはつけるが値渡しにはとくにつけない。
0920木村 キタキタマシーン
NGNGプロトタイプ宣言にも必要です
0922デフォルトの名無しさん
NGNGありがとん
夜はいろいろな名前の人がいて楽しいのら(徹夜でおかしくなり気味)
0923デフォルトの名無しさん
NGNGサーバーをプログラムしたのですが、どうやってそのサーバに
長さを送ったらいいのでしょうか?
ちなみにそのプログラムは自分のPCの中においています。
telnetで送れるらしいのですが、いまいち分かりません。
0924デフォルトの名無しさん
NGNGだから、以下略
0925デフォルトの名無しさん
NGNGもしかして、既出ですか?
0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNGドラえもんの方はどこで聞いた?
0928デフォルトの名無しさん
NGNGこれからはHSPが主流
0929デフォルトの名無しさん
NGNG「C++の将来」スレでそういうネタがあったんだよ。
0930デフォルトの名無しさん
NGNGどうしたらよろしいのでしょうか。
0931デフォルトの名無しさん
NGNG暇なんでマゾレス。
itoa
0932デフォルトの名無しさん
NGNGなるほど。ありがとうございます。
では、w型をCharにかえるにはどうすればよろしいのでしょうか。
何度もすいません。
0933名無しさん@カラアゲうまうま
NGNGitoa()は標準にはない。
sprintf(buf, "%d", i)
0934デフォルトの名無しさん
NGNGw型ってlongのことか?
ltoa
0935名無しさん@カラアゲうまうま
NGNGw型ってなんだ。あとCにCharというのはない。
0936デフォルトの名無しさん
NGNGありがとうございました。
sprintfで解決しました。
0937デフォルトの名無しさん
NGNGウェブサービスのサーバ?
0938デフォルトの名無しさん
NGNG「待って」というメッセージを送って、2人コネクトして初めて
メインの処理が始まるようにしたいんですが、どういう構成でいけばよろしいでしょうか?
0939デフォルトの名無しさん
NGNG一人がコネクトした状態では「待って」というメッセージを送って、
2人コネクトして初めてメインの処理が始まるような構成にしてはどうでしょう?
0940デフォルトの名無しさん
NGNG一人がコネクトした状態では「待って」というメッセージを送って、
2人コネクトして初めてメインの処理が始まるような構成にに僕も賛成です。
0941デフォルトの名無しさん
NGNGs = socket()
bind(s, addr_and_port)
listen(s,...)
s1 = accept(s)
send(s1, "待って", ...)
s2 = accept(s)
main(s1, s2)
ぐらいでいいと思うが。3人目来たらどうするかとかは知らんけどさ。
あと当然ながら、エラー処理は言うに及ばずクローズ処理や Windows
なら必要な WSA...() は書いてねーからそのつもりで。
0942デフォルトの名無しさん
NGNG0943941
NGNG3人目を受付ないならね。そう言う仕様かもしれないし、3〜4人目をセットにし
て同じような処理する仕様かもしれないしね。
要は、「そこの仕様が不明確だよ。」って言ってるだけ。
0944デフォルトの名無しさん
NGNG% echo $LINES では行数を得られるのですが、環境変数ではないようで、
getenv("LINES") ではだめなんですが。
0945944
NGNG0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNG/TIOCGWINSZ
0948デフォルトの名無しさん
NGNGdialogon/open.
%1-dialogaaa
0949シロウト
NGNGif ( (fp = fopen ("omanko","w" ) )!=0 ) {
printf("Can't open");
exit(1);
}
↑の場合どうすればヨイのですか?
FILE Fopen (*fp) {
if ( (fp = fopen ("omanko","w" ) )!=0 ) {
printf("Can't open");
exit(1);
}
}
とかにすりゃいいんすかね?
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG#include <stdlib.h>
void Fopen(FILE **fp);
void Fopen(FILE **fp)
{
if((*fp = fopen("omanko","r"))==NULL){
printf("cant open");
exit(1);
}
}
main()
{
FILE *fp;
char buffer[255];
Fopen(&fp);
while(fgets(buffer, 254, fp))
printf("%s\n",buffer);
return 0;
}
こんなのとか。
0952デフォルトの名無しさん
NGNGそんな君に送る単発質問テンプレート
「何」を、
「こう」したいので、
「こう」書きましたが、
「こうなって」しまいました。
どうすればよいでしょうか?
鍵括弧の所を適宜書き直して使ってくれ。
0953デフォルトの名無しさん
NGNGエラー時にFopenでexitするの?
0954デフォルトの名無しさん
NGNGまあ、オリジナルに近い形でつくってみますた。
0955949
NGNGこうしたいので、
こう書きましたが、
こうなってしまいました。
どうすればよいでしょうか?
0956デフォルトの名無しさん
NGNG>949を、
>こうしたいので
ハァハァ
0957949
NGNGfopenを関数にしたかったんすけど
void FileOpen (??????)
の?部分と
呼び出す際の
FileOpen(??????)
の?部分がわからなかったのです。
糞厨でスマソ
0958デフォルトの名無しさん
NGNG偉い。本当にテンプレートを使用してくるとは・・・
最近は、こういう書き方するとすぐ突っかかってくる奴等
ばかりだからな。感心感心(いや、マジで)。
まず、fopen 自体が関数だって事は理解してるよね。
で、それを使用してエラーをはじく機能を追加した
自作の fopen (=Fopen) を作りたい訳だ。
まあ、普通(あまり細かい事に気を遣わずに)に書くなら
FILE* Fopen(char *filename,char *mode)
{
FILE *fp;
if((fp=fopen(filename,mode))!=NULL){
printf("Can't open");
exit(1);
}
return fp;
}
int main(void)
{
fprintf(Fopen("omanko","w"),"hello world\n");
return 0;
}
で、いいんじゃない?
0959デフォルトの名無しさん
NGNG{
return EXIT_SUCCESS; //(゚ω゚=)
}
0960デフォルトの名無しさん
NGNGまあ、言いたいことはわかるけど、何でプログラムの動作まで変えるん
だ ? こんな書き方すると...
while(fgets(buffer, 254, Fopen("omanko", "r")))
printf("%s\n",buffer);
とか書きかねないぞ。あと今回は固定文字列だからいいけど、
printf("helo world\n"); は、printf("%s", "hello word\n"); にし
た方がいいと何回も言われてるのに、学習能力の無いアフォですか ?
0961デフォルトの名無しさん
NGNG何故にわざわざ「あまり細かい事に気を遣わずに」と
断り書きをいれたか分からんのか?
読解能力の無いアフォですか ?
0962デフォルトの名無しさん
NGNG>> printf("helo world\n"); は、printf("%s", "hello word\n"); にした方がいい
はつみみです。
0963デフォルトの名無しさん
NGNGとりあえず、教科書では
printf("%s", "hello world\n");
ではなく、
printf("hello world\n");
と書かれている理由をじっくり考えてみるヨロシ。
0965949
NGNG0966デフォルトの名無しさん
NGNG著者がそろいもそろってバカばっかだからだよ。
0967デフォルトの名無しさん
NGNGprintf("n=%d\n",n);
ではなくて
printf("%s%d%s","n=",n,"\n");
としたほうがいい訳だな
バ カ ァ ?
0968偽551
NGNGププ、簡単につれるねぇ。なんだあんたは、「細かいことに気を遣わないと」もと
のプログラムと動作が変わっちまうんのか ?
まあ、もともと「普通に書くなら」ああいうプログラムスタイルになる奴になに
言ったって無駄だけどな。
>>962
失礼、このスレじゃなかったかも知れん。「まあ、
printf("%%% hellow world %%%\n"); とかしたい時まずいだろ ?」って話だ。
0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNG次スレよろしく
0971デフォルトの名無しさん
NGNG偽551ハケーン!!
確かに、普通に書いてあーなるのはちょとどこかおかしいかも・・・
0972デフォルトの名無しさん
NGNG結局、説明の力点を何処に置くかって事だろ。
説明したかったのは Fopen についてだけで
main はあくまでもオマケ。
コンパイルして実行してみたいだろうからね。
確かにちょっとおかしいと感じるのも分かるけど
動作に支障が無ければ短いほうがいいと考えただけ。
(結構 Lisper の血が流れているのかもしれん・・・)
0973デフォルトの名無しさん
NGNGC言語なら、俺に聞け! <26>
http://pc.2ch.net/test/read.cgi/tech/1026048820/l50
0974デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNGあんた、「どんな文字列が入っているのか分からないものをprintfのフォーマット文字列に指定してはならない。」ということと勘違いしていないか?
定数ならなんの問題もないだろ(第一、"%s"だって定数だし・・・)。
0978デフォルトの名無しさん
NGNG> とかしたい時まずいだろ ?」って話だ。
しねーよ馬鹿(ワラ
0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNGやっと前スレ埋まったよ。
次は、ここだな。
おめーら、早く次ぎいけ
C言語なら、俺に聞け! <26>
http://pc.2ch.net/test/read.cgi/tech/1026048820/l50
0981デフォルトの名無しさん
NGNG∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
( xДx)< デブ川俣は昇天・・・
|⌒|U U \_______
川 | |
U U
∫
0982デフォルトの名無しさん
NGNG0983デフォルトの名無しさん
NGNG0984(・∀・)
NGNG0985985
NGNG0986(・∀・)
NGNG0987(・∀・)
NGNG0988(・∀・)
NGNG0989(・∀・)
NGNG0990990
NGNG0991(・∀・)
NGNG0992(・∀・)
NGNG0993(・∀・)
NGNG0994(・∀・)
NGNG0995(・∀・)
NGNG0996(・∀・)
NGNG0997(・∀・)
NGNG0998(・∀・)
NGNG0999(・∀・)
NGNG1000デフォルトの名無しさん
NGNGl⊆⊇`ヽ ≡ ヤホーイ
(´�D`Lノ ≡
m=○=mノ) ≡
_/_/(「_ノニコ ≡
( (0)=(__)0) ≡(´⌒(´⌒;;
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。