C言語なら、俺に聞け! <19>
レス数が1000を超えています。これ以上書き込みはできません。
0001ともっち
NGNG・comp.lang.c FAQ
http://www.eskimo.com/~scs/C-faq/top.html
・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・前スレ
<18> http://pc.2ch.net/test/read.cgi/tech/1020260813/l50
リンクは>>2-3
0002ともっち
NGNGいろいろな言語を極めたが、一番手になじむのはCだった。
Cのことならすべてわかるから、疑問な点があったら漏れに聞け。
だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。
・comp.lang.c Frequently Asked Questions
http://www.eskimo.com/~scs/C-faq/top.html
・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART3
http://pc.2ch.net/test/read.cgi/tech/1016722820/
C言語なら、俺に聞け!
<17> http://pc.2ch.net/test/read.cgi/tech/1019372139/l50
<18> http://pc.2ch.net/test/read.cgi/tech/1020260813/l50
0003ともっち
NGNGタダで使えるBorland C++!
http://pc.2ch.net/test/read.cgi/tech/1002377328/l50
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ともっちかよ!
0005デフォルトの名無しさん
NGNGともっち 38 かよ!
0006_
NGNG0007デフォルトの名無しさん
NGNGほとんど一緒。
天と地ほどの差しかない。
0008デフォルトの名無しさん
NGNG生ハムと生肉くらいの違いです
0009_
NGNGなんかコボルというのは前時代のプログラムで
こんなの学んでも食えんと言われてしまいました。
0010デフォルトの名無しさん
NGNGいやコボルだろ〜
CはUNIX記述用言語として生まれただけあってUNIXと制御系でよく使われる。
0011_
NGNGソフトを開発する仕事のことですか?
あと、10氏レスを見ると、UNIXを学ぶなら、先にC言語を学んだほうがいいみたいな
感じですね
0012デフォルトの名無しさん
NGNG一緒でいーんじゃねーの
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGエンジン制御とか埋め込み系じゃなか?
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGまじかよ!
Emacs Lispとか?
0017デフォルトの名無しさん
NGNG>ソフトを開発する仕事のことですか?
違う。
>制御系ってOSとかじゃないの?
それも違う。
厳密な定義がある訳じゃないけどある特定の機械を動かすためのプログラムをさして
制御系とか組み込みなどという。いま身の回りにある電化製品はほとんどICが入っていて
これを「制御」しているのもやはりプログラムなわけです。
Cはこの制御系でよく使われるのですがそれは言語仕様が小さくてプログラム全体が
小さくできるからです。
0018デフォルトの名無しさん
NGNG> 小さくてプログラム全体が小さくできるからです。
比較的低水準だからだとオモテタ
0019デフォルトの名無しさん
NGNG逝こう・・・
0020デフォルトの名無しさん
NGNG前橋さんの本でちょこっとかいてあったんですけど、「テレビのリモコンに使う組み込みチップ」
などは実務における、Cのよくある使い方の1つなのですか?
初心者丸出しの質問で申し訳ないですが。
0021デフォルトの名無しさん
NGNGだからプログラムを小さくできるということでは。
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG巨大も部分による。
予約後が莫大=巨大というとらえ方もあるし
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNGで、Cは出力されるコードが予想やすい言語仕様だから、小さく作りやすい、って事でないのかな?
あとライブラリが切り離せるとかもあるかな。
0026デフォルトの名無しさん
NGNGwhile(1){
if(PeekMessage(&msg,(HWND)NULL,0,0,PM_REMOVE)){
if(msg.message == WM_QUIT) break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}else{
MainLoop();
}
}
というふうにループ構造を作って,
void StartInit()
{
printf("はじめ\n");
MainLoop=SecandInit;
}
というふうにしているのですが、危険でしょうか?
0027デフォルトの名無しさん
NGNGぜんぜん平気。
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNGガ━━Σ(゚д゚lll)━━ン
0030デフォルトの名無しさん
NGNGそう言う風にする危険性より、MainLoop と言うへんてこな変数名や
SecandInit とか言う Manoy に匹敵するスペルミスが、あなたの
プログラムを糞なものにする危険性のほうが高いでしょう。
0031デフォルトの名無しさん
NGNGガ━━Σ(゚д゚lll)━━ン
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄ ̄( ゚Д゚) ̄ ̄| < もう寝るよ。おやすみ。
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
0032デフォルトの名無しさん
NGNGリアクションに ワラタ
0033デフォルトの名無しさん
NGNGスレの流れを読んでよ。制御系の話でしょ。
制御系と言うことはOS上で走らせるプログラムじゃないんだから汎用的なコンパイラの
最適化は無意味じゃん。
22にわかりやすく言えばOS(組み込みにOSも何も無いんだけど)に当たる部分も書かなきゃ
いけないということ。
0035デフォルトの名無しさん
NGNG> 制御系と言うことはOS上で走らせるプログラムじゃないんだから汎用的な
> コンパイラの最適化は無意味じゃん。
ハァ ?
> 組み込みにOSも何も無いんだけど
ハァ ? (まあ、ない奴もあるけどさ...。)
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG(つまりソースがある程度低レベルな方が)組み込みのデバッグが楽」
といいたいのかも知れん。
0039デフォルトの名無しさん
NGNG最適化のこと分かった気になって、ついつい2chでかたりはじめちゃう連中、
ほのぼの。
0040デフォルトの名無しさん
NGNG> つまりソースがある程度低レベル
お前のプログラムみたいだな。(藁)
0042デフォルトの名無しさん
NGNG2ch の古参でうれしいの ?
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG新 参 者 必 死 だ な ( 藁
0045デフォルトの名無しさん
NGNG004642(騙り
NGNG004735
NGNGそんな変な取り方すんなよ。
別に制御系と言ったって、特殊なコンパイラ使ってるわけじゃない。まあ、
CPU が普通と違うとか、いろんな領域のアドレスがちゃんと指定できる
(どっちかってーと、リンカの仕事もあるけど) 等の機能はあるけど、
最適化に関しては、普通のコンパイラと同じだよ。
「組込に OS も何も無いんだけど」に至っては、何年前の話だ ? って感じが
する。まあ、俺もテレビのリモコンなんかは手がけたこと無いから、そのクラス
だとそう言うこともあるとは思うが、ちょっと大き目の LBP とか、銀行の端末
とかなら最近は、OS 乗せるのが普通。特に、GUI と Net (.NET では無いぞ。
TCP/IP とかのことだよ。) と ファイルシステムを備えるものなら、まず OS は
載っている。ちなみに、携帯電話用の OS もあるのは、知ってるよね。
0048綾ナムナム(´人`)
NGNGここがどんな場所だかわかってるの?
0049デフォルトの名無しさん
NGNG>する。まあ、俺もテレビのリモコンなんかは手がけたこと無いから、そのクラス
>だとそう言うこともあるとは思うが、
いやまさにそういうレベルの話だったんだけど自分の周りの方が特殊だったんだ、、。
おはずかしぃ。
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNG善意の方も悪意の方もネタの方もそのつもりでお願いします。
#いや善意にとってくれた人が自己弁護しているようにとられているから申し訳なくて、、。
0052デフォルトの名無しさん
NGNG仕事でブッちぎれたときはHello,world.
標準出力がある幸せ
0053デフォルトの名無しさん
NGNG005447
NGNGあらあら、言い訳にしか取れなかっただね。ごめんな、あんたにはちょっと
難しすぎたみたいね。
>>49
まあ、そう言う世界もあるらしいけど、制御系一般の話としてはちょっと
ね。ところで、OS 云々はいざ知らず、そう言うクラスの話だと、
「汎用的なコンパイラの最適化は無意味」なのか ? メモリーが少なそう
だからプログラムサイズを最優先にするとかのことを言ってるのか ?
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG相手の解釈がどうのこうの言わずに自分の表現を変えてみたら?
0057デフォルトの名無しさん
NGNG誰に言ってるんだ。誤爆か ?
0058デフォルトの名無しさん
NGNGstruct node {
int data;
struct node *next;
};
なる構造体を定義し、メモリを確保する際に、
struct node *p_new;
p_new=(struct node *)malloc(sizeof(struct node));
とC言語の本に載っています。しかしながら、別の本には、
p_new=(struct node *)malloc(sizeof(struct node)+4);
のように+4、あるいは+8などしているのですが、これは
なぜでしょうか?何のためでしょうか?教えていただけませんか?
いずれにしてもコンパイルは出来ますし、実行も正常にできます。
0059グリーン
NGNGWindowsプログラムで、エクスプローラでフォルダを選択して右クリックの[共有]で開く画面(フォルダ共有設定をする画面)を出したいのですが、方法はないものでしょうか。
0060デフォルトの名無しさん
NGNG一般的に言って足す必要なし。
+4してる本に特殊な状況であることについての説明があるんじゃないの?
もしなければその本がクソ。
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGC言語じゃ無理だね
0063デフォルトの名無しさん
NGNGワラタ
0064デフォルトの名無しさん
NGNGメモリー屋さんの陰謀かもしれん。その本の題名と著者をさらせ。
と言うのは、おいといて...
struct node {
struct node *next;
int data[1];
}
って定義して (next と data の順序に注意)、
p_new = (struct node *)malloc(sizeof(struct node) + 4);
なら、p_new->data[0〜1] が使えて
p_new = (struct node *)malloc(sizeof(struct node) + 8);
なら、p_new->data[0〜2] が使える。と言う方法は昔あったけど...。
ちなみにこれは、sizeof(int) == 4 を仮定してるから、普通は...
p_new = (struct node *)malloc(
sizeof(struct node) + (n - 1) * sizeof(int));
と言うようにやる。
0065デフォルトの名無しさん
NGNGコンパイラ(visual C++.NET)は
どうしてレジストリいじくっちゃうんですか?
仕組みわかる人教えて
0066デフォルトの名無しさん
NGNGAPI。アフォか。
0067伊集院光
NGNGゲームWAVE見てね。
0068デフォルトの名無しさん
NGNG前まで見てたけどお前アフォなので見なくなった
0069デフォルトの名無しさん
NGNGむかしむかし小さなメモリブロックをアロケートすると4だか8だかの倍数の
大きさにメモリブロックのサイズを調整しようとした時にバグになる処理系があった。
もしかしたらそれのトラウマが感染してるんじゃなかろうか?
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNGTurboC++っていうコンパイラソフトで、
複数のファイルからなるプログラムをコンパイルする時はどうすればいいのでしょうか?
初心者なので優しく教えてね。よろしくお願いします。
0074デフォルトの名無しさん
NGNGtcc file1 file2 file3...
もしくはmakeを使う。
0075デフォルトの名無しさん
NGNGIDEからやりたいのなら、プロジェクトにコンパイルしたいファイルを追加する。
しかし、Turbo-C++のIDEのプロジェクトにはバグがあって、よく泣かされたな・・・・
(遠い目)
0076デフォルトの名無しさん
NGNGレスありがとうございます!
出来ればtcc file1 file2 file3...、メイクの使い方を詳しく教えてください。
たびたびすいません。
0077デフォルトの名無しさん
NGNG例えばfile1.cとfile2.cとfile3.objをコンパイルしたければ
tcc file1.c file2.c file3.obj
file1をオブジェクトファイルにコンパイルしたければ
tcc -o file1.c
makeはmakefileに次のような内容を編集する。
file.exe: file1.obj file2.obj file3.obj
0078デフォルトの名無しさん
NGNGスマソ。tccのオブジェクトファイル作成は
tcc -c
だったです。
0079デフォルトの名無しさん
NGNG何回やってもエラーが出ちゃいます(泣
tcc -c file1.c←あんまり意味がわかりません。。。すません。
根本的にどう繋げればいいか教えてくれると嬉しいです!
0080デフォルトの名無しさん
NGNGレスありがとうございます!
それって単純に複数のプログラムを開いてコンパイルのボタン押すだけのことですよね?
0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNG0083sa
NGNG10 15
5 → 10
3 を 5
3
というふうにファイル(.txt)の先頭に書き込みしたいのですが、
fseekでストリームのファイルの位置をを先頭にもってきて書き込みすると、
15
5 と2行目が削除されてしまいます。
3
どうしたらうまくいくでしょうか?レス頂けるとありがたいです。
0084デフォルトの名無しさん
NGNG読み込んだ内容を戻してやったらだめなの?
0085デフォルトの名無しさん
NGNGいきなりファイルの上で挿入する手段は無い。
>>84のいうとおりメモリ上で挿入してからファイルに書くか、もう1つファイル使え。
0086デフォルトの名無しさん
NGNGVC6.0にてfopen()を発行するとerrnoが12(ENOMEM)でエラーになってしまいます。
また、この現象が起こるPC、起こらないPCがありまして、
エラーとなっていたPCでも電源を切って翌日になると成功し始めたりします。。。
対策方をご存知でしたらおしえてください。おねがいします。
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNGDLLかなんかがぶっ壊れてるか、マシンの日付が未来になってるとか。
新規インストールのOSと新規インストールのVCで動作確認しる!
再現性がないやつは特定が困難かもなぁ。
0089デフォルトの名無しさん
NGNGそれとも、ディスクが足りなくなってるとか、リソースが尽きてるとか、ファイルを開きすぎてるとか(閉じてないとか)、それ系のエラーかと。
0090デフォルトの名無しさん
NGNGコンパイル時ではなく、実行時のエラーです。
ちなみに、一度エラーが起こらなくなるともう大丈夫なようです。
0091デフォルトの名無しさん
NGNG同じスペックのマシンでも動く動かないがあるので、メモリは大丈夫なので、
リソースなのかなぁ。。。。?
0092デフォルトの名無しさん
NGNGCRTのソースのfopen関係のあたりでENOMEM検索してみれば
いいんでない?
0093デフォルトの名無しさん
NGNGfor(i=0;i<20;i++){
Num[i]=i;
}
を
for(i=0;i<10;i+=2){
Num[i]=i;
Num[i+1]=i+1;
}
としたほうが早くなるよ。
都かいてあったのですが,皆さん使ってますか?使ったほうがいい?
0094デフォルトの名無しさん
NGNGloop unrollingだな。
オプション付ければコンパイラがやってくれるよ。
0095デフォルトの名無しさん
NGNGこの程度はコンパイラが最適化するだろ。
バグを生みやすい意味不明のコーディングは逝ってよし!
0096デフォルトの名無しさん
NGNG実際の性能改善だと
そんな細かい小細工以前に
やる事がたくさんある。
0097デフォルトの名無しさん
NGNGchar *ReturnMoji(int i)
{
if(i==1)
return "1だよ"
if(i==2)
return "2だよ"
if(i==3)
return "3だよ"
}
というふうにして,char Text[256]; char mes[256];
Text=ReturnMoji(1);
sprintf(mes,"答えは%sです",Text);
DrawText(hdc,mes,-----);
としているのですが,%sの部分が変な文字で表されます。
どうしたらいいでしょうか?
0098デフォルトの名無しさん
NGNGそれでコンパイルが通るはずが無い。
ちゃんとコンパイル済のソースを賭。
0099デフォルトの名無しさん
NGNGその方法では無理なので
char *ReturnMoji(char *buf,int i)
{
〜
return *buf;
}
な感じで
0100デフォルトの名無しさん
NGNGchar Text[256];
Text=ReturnMoji(1);
constの配列にポインタは代入できまへん。
0102デフォルトの名無しさん
NGNG亀レスだが・・・・・・・
tlink.cfgとかtcc.cfgの設定はちゃんとできてる?パスが通ってない場合が
ほとんどだよ。
0103デフォルトの名無しさん
NGNG{
static char *ret_str[3] = {
"1だお","2だよ","3だよ"
};
return (i>0 && i<=3)?ret_str[i-1]:NULL;
}
char *txtp, mes[256];
txtp = ReturnMoji(1);
sprintf(mes,"答えは%sです",txtp);
DrawText(hdc,mes,-----);
0105デフォルトの名無しさん
NGNGあ、staticな領域は消えないか・・・ってまぁたトリッキーなw。
0106デフォルトの名無しさん
NGNG全部教えないと何も出来ないのか?
コンパイラが入ってるbinフォルダにあるだろ
0107デフォルトの名無しさん
NGNGオプションを記述するだけ
-Ic:\include_file_path\
-Lc:\library_path\
みたいに
懐かしいね
0108デフォルトの名無しさん
NGNGそんなことする必要はないだろ
文字列リテラルはスタック領域に書き込まれる物じゃないんだから
0109デフォルトの名無しさん
NGNG.NET SDKのコンパイラ群はなぜか%WINDIR%以下に展開されて死ぬほど悩みましたが?
0110デフォルトの名無しさん
NGNGハァ?
staticにしないとポインタがスタックにつまれて返せなくなるだろ。
0111デフォルトの名無しさん
NGNGエラーチェックしろ。
0112デフォルトの名無しさん
NGNG>>108さんの意見に同意。
char *ret_strは関数の終了と同時に破棄されるが、文字列リテラルの
アドレスは依然として有効。
0113デフォルトの名無しさん
NGNGret_str配列は無くなってしまうが、
ret_str[i-1]はただのポインタだから
普通に返せる。
0114110
NGNG0115110
NGNGああ、勘違いした。スマソ
0116デフォルトの名無しさん
NGNG{
char Moji[3]={"1だよ","2だよ","3だよ"};
if(i==1)
return Moji[0]
if(i==2)
return Moji[1]
if(i==3)
return Moji[2]
return NULL;
}
とすれば,文字列へのポインタがなくならないので,大丈夫ということでしょうか?
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNGchar *Moji[3]だろ。
普通は添え字は書かない。*Moji[]
ポインタはなくなるが、指していたものは残るので、そのアドレスを返して使っても問題ない。
0120デフォルトの名無しさん
NGNG*Moji[3]にデフォルト値入れると大変なことに。
0121デフォルトの名無しさん
NGNG{
char *Moji[] = {"1だよ", "2だよ", "3だよ"};
if (sizeof(Moji) / sizeof(Moji[0] > i)
return Moji[i - 1];
else
return NULL;
}
だけど、>>97でも問題はない。
>>97でおかしいのは、
Text=ReturnMoji(1);
これ
0122デフォルトの名無しさん
NGNG勝手に決めるな
0123デフォルトの名無しさん
NGNGなぜ?
0124デフォルトの名無しさん
NGNGHumanの第4ビットまでにage=10;を入れて
第5ビットから第8ビットまでtaijyuu=50;を入れて,
第9ビットから第12ビットまでseibetu=1;を入れて扱いたいのですが,
どのように実現したらいいでしょうか?
0125デフォルトの名無しさん
NGNGそれはダメダメ。自動変数に文字列が確保されてしまうので、
関数の終了と同時に文字列が破棄される。
0126デフォルトの名無しさん
NGNG構造体だったか共用体だったか忘れたが、それでできる。
ビットなんとかってやつ。
0127デフォルトの名無しさん
NGNGその前にコンパイルが通らない
0128デフォルトの名無しさん
NGNGそう言う共用体の書き方があった。。。
int a:3
int a:6
みたいな。詳しくはしらん。
(H8マイコンCコンパイラの知識。)
0129デフォルトの名無しさん
NGNGchar Text[256]; ---> char *Text;
または
Text=ReturnMoji(1); ---> strcpy(Text, ReturnMoji(1));
のどちらかで。下の場合は #include <string.h> を忘れずに。
0130113=98
NGNGいや108じゃないけどね(にが藁
>>116あのなあ。return文にセミコロンが無きゃエラーになるダロー。
本当に使ってるソースを書かずに間違いだらけのを書かれると、
どの間違いについて聞きたいか分からないから手間がかかって
しょうがないんだよ。
0131デフォルトの名無しさん
NGNGできない。
どう考えても3bitじゃ50を保持できない
0132126
NGNGそうだな(ワラ
考えなかった。
0133デフォルトの名無しさん
NGNG共用体じゃない。ビットフィールドだ
struct {
int x : 4;
int y : 4;
int z : 4;
int w : 4;
};
0134デフォルトの名無しさん
NGNGビットフィールドですね。
ttp://black.sakura.ne.jp/~third/c38.html
0135デフォルトの名無しさん
NGNG4bitだよね。それでも無理だけど。
0136デフォルトの名無しさん
NGNG10進コンピュータなら出来る。
と言ってみたい。
0137デフォルトの名無しさん
NGNGビットフィールドのことだろ。ビットの並びは実装依存なので、何ビット目に
確保されるかとかは保証されないよ。
union uni {
int Human;
struct bit {
unsigned age : 4;
unsigned taijyuu : 6;
unsigned seibetu : 4;
};
};
0138デフォルトの名無しさん
NGNGbit (<binary digit) n. 【コンピユータ】 ビット ((情報を数量的に表す基本単位)).
goo 英和辞典より。
つっこもうと思ったが1bitが10のステートをとっても良いんだね。
0139デフォルトの名無しさん
NGNGそう。
なんかそんなスレがあった。
実現するのかしら。
0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNGだいいち10ステートあったら最小単位じゃないじゃないか。
ってスレ違い。
0142デフォルトの名無しさん
NGNGああそうか。
10進だとditか
0143デフォルトの名無しさん
NGNG今なら現在の電圧を10分割するくらい・・・。
0144デフォルトの名無しさん
NGNG各種記憶装置との互換性がなくなりそう・・・
0145デフォルトの名無しさん
NGNGそれは無理。
アナログ情報を表すnatと言う単位では無限の状態を
取ることが可能。
0146デフォルトの名無しさん
NGNGFight!
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG別にいいけど…ってそれただの「10進ヒトケタ」やん。
わざわざ情報量の単位にする意味なし。
bitが単位になってるのはそれ以上細かい単位が無いからだよ。
0149デフォルトの名無しさん
NGNGint monao=20;
int a=mona;
a=monao<<4;
printf("mona=$d,monao=%d\n",mona,monao>>4);
こんな感じでできなかったっけ?
0150デフォルトの名無しさん
NGNGunary digit = ditを提唱することにするぞ!
0151デフォルトの名無しさん
NGNG0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNG能力がいくら増えても情報量はbitで表されると思われ
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNGそんなもん基本概念からして違うんだから
今のコンピュータとリプレースは出来ないだろ
0156デフォルトの名無しさん
NGNGまぁ、お前はDNAコンピュータの原料にでもなってろってこった。
0157デフォルトの名無しさん
NGNGint monao=20;
int a=mona;
a=monao<<4;
printf("mona=%d,monao=%d\n",mona,monao>>4);
こんな感じでできなかったっけ?
0158デフォルトの名無しさん
NGNGその話も10進コンピュータスレで外出
位どり記数法では0しか表せない
0159デフォルトの名無しさん
NGNGいや、2回も書かんでも・・・。
0160デフォルトの名無しさん
NGNG016179
NGNGすいません…BIN見たのですがどれがどのファイルかわかりません…
>>107
>>オプションを記述するだけ
>>-Ic:\include_file_path\
>>-Lc:\library_path\
具体的にどこに記述するものなのか教えて下さい。
0162デフォルトの名無しさん
NGNGおぃおぃ
tlink.cfgとかってファイル名書いてあるだろ?
0163デフォルトの名無しさん
NGNGワラタ
0164デフォルトの名無しさん
NGNGガイシュツだけど説明書はないの?
なければHELPの中を隅から隅まで目を皿のようにして探すこと。
0165デフォルトの名無しさん
NGNGint sex=1;
int human=age;
human=sex<<8;
として、ageを参照するときは,human&255とし,
sexを参照するときは,human>>8でどうでしょうか?
0166デフォルトの名無しさん
NGNGソレダ!!
0167デフォルトの名無しさん
NGNGくる。
あとCPUも。
0168デフォルトの名無しさん
NGNGhuman|=(sex<<8)だろ。つーか、
なぜビットフィールドじゃダメなのか小一時間樋冷たい。
0169デフォルトの名無しさん
NGNGクリックしちゃったじぇねーか!!
ビットをずらしていたのか・・・
0170デフォルトの名無しさん
NGNGおけつめたい
0172デフォルトの名無しさん
NGNGprintfで>>4を表示させても仕方ないだろう・・・w
0173デフォルトの名無しさん
NGNG8 :デフォルトの名無しさん :02/05/07 16:47
>>6
生ハムと生肉くらいの違いです
0174デフォルトの名無しさん
NGNGリンクがあるとついクリックするくせが(恥
0175デフォルトの名無しさん
NGNGturboc.cfg
だか
tcc.cfg
だかのファイルをカレントディレクトリに作る
0176デフォルトの名無しさん
NGNG128ビットのunsigned 型はint以外でどう表記するのですか。
unsigned lo--ng ・・・
0177デフォルトの名無しさん
NGNGhelpが無いみたいだし
0178デフォルトの名無しさん
NGNGいや、ないなら作ればよい。tcc.cfgもお忘れなく。もう少しだね。
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNGつぅかそろそろlong shortは終わらせた方が。。。
0181デフォルトの名無しさん
NGNGhuman|=(0<<8)
は可能ですか?
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG初期化したいときに限ってダメ。
0184デフォルトの名無しさん
NGNGlong long long int。C2003で対応予定。
0185初心者
NGNG#include<stdio.h>
int main(void)
{
int i;
char moji[100];
printf("文字列を入力");
gets(moji);
for(i=100;i<=0;i--)
{
if(moji[i]==NULL)
{
}
else
{
printf("%s",moji[i]);
}
}
}
問題
文字列を読み込んで逆から表示 例 iptep==>petpi
018679
NGNGだんだん理解できてきました。
tcc.cfgって名前のファイルをカレントディレクトリに作ったのですが、まだできません。
ちなみにtest1.c incre.cってファイルを繋げてコンパイルしたいのですが、
tcc.cfgの中身は、tcc-c test1.c incre.cだけでいいのでしょうか?
本当にたびたびすいません。
0187デフォルトの名無しさん
NGNGいや、それは・・・
0188デフォルトの名無しさん
NGNG配列って
int hoge[100]
って宣言すると
hoge[0];
から
hoge[99];
までしか使えないって知ってた?
0189デフォルトの名無しさん
NGNG教えてください。
0190デフォルトの名無しさん
NGNGもしかしたら>>175さんの言う通り、tcc.cfgでなくてturboc.cfgかもしれないので
両方作ってみて下さい。
中身はコマンドラインでなくて、
[turboc.cfg or tcc.cfg]
-IC:\TC\INCLUDE
-LC:\TC\LIB
[tlink.cfg]
-LC:\TC\LIB
のような感じになります。そして、
tcc test1.c incre.c[enter]です。-cは付けないで下さい。
うまく行けばtest1.exeが出来るはずです。
0191デフォルトの名無しさん
NGNG解説して。
0192デフォルトの名無しさん
NGNG俺も、いったいそのループ(になってない)が何をしたいのかサパーリ
0193デフォルトの名無しさん
NGNGつーか、一回もfor文の中身は実行されない罠。
0194デフォルトの名無しさん
NGNGfputs( kuni[i],country_fp);
i++;}
なにがだめなの?
0195デフォルトの名無しさん
NGNGとりあえずおまえは
前橋のポインタ完全制覇でも読んでろ
あとcountry_fpってなに?
0196デフォルトの名無しさん
NGNGいなかのフライドポテト。
0197デフォルトの名無しさん
NGNGなんで入力ストリームと出力ストリームが同じなの?
0198194
NGNGわからんぽ
おしえてぽ
0199194
NGNG0200デフォルトの名無しさん
NGNGどうやってオープンした?
0201デフォルトの名無しさん
NGNGこういう事する時は、"r+"で開いておいて、fseekなどで切り替えないと
動作の保証はない。
0202初心者
NGNGの間違えでした。
0203
NGNG020479
NGNG[turboc.cfg or tcc.cfg]
-IC:\TC\INCLUDE
-LC:\TC\LIB
ファイルの中身に記入。
[tlink.cfg]
-LC:\TC\LIB
ファイルの中身に記入。
tcc test1.c incre.c←これはどこのファイルに書けばよいのでしょうか?
0205デフォルトの名無しさん
NGNGまだ間違ってます。
0206194
NGNG教えてください。
0207446
NGNGcountry_fpをfopen()したやり方にも夜が、
wとかwbとしたなら、オープンした時にファイルの長さが0になる。
aとかabとかa+bとかしたなら、ファイルの最後に追加することしかできない。
ちゃんとr+とかr+bでオープンしたとしても、
入力した直後に出力してはいけない。間にfflush()かfseek()をはさめ。
0208初心者
NGNG0209デフォルトの名無しさん
NGNGtcc test1.c incre.cは、どこにも書かずにそのままコマンドラインから
打ち込むか、またはバッチファイルに書いて実行する。
0210デフォルトの名無しさん
NGNGsscanf()
0211デフォルトの名無しさん
NGNGもしくはmakefileというファイルをエディタで作成し、
test1.exe: test1.obj incre.obj
と書いて、make[enter]とやってもよい。だけど今はやめとけ。
0212デフォルトの名無しさん
NGNG俺の経験から言わせてもらうと、初心者に分類される人たちは、
プログラムを1行ずつ読むことが出来ていない気がする。
自分で書いたプログラムすら、その挙動が把握できてないというか。
0213デフォルトの名無しさん
NGNGつぅか丸写し以外でその質問している時点で努力も学力も才能も足りてない気がする。
021479
NGNG-IC:\TC\INCLUDE
-LC:\TC\LIBと書かれた[turboc.cfg or tcc.cfg] のファイルと、
-LC:\TC\LIB と書かれた[tlink.cfg] のファイルは、
test1.c incre.cの置かれたフォルダに入れればいいんですよね?
コマンドラインから打ち込んでもできなかったので、
バッチファイルに書く方法も教えてください。
よろしくおねがいします。
0215デフォルトの名無しさん
NGNGtcのbinフォルダに入れろ。
0216デフォルトの名無しさん
NGNGちょっと待って。今Turbo-Cはどのディレクトリに入ってるの?
そのディレクトリ名をturboc.cfgやtlink.cfgに書くんだよ。
コマンドラインから打ち込んでもだめだったら、バッチファイルに
書いたってだめだよ。
0217デフォルトの名無しさん
NGNG>-LC:\TC\LIBと書かれた[turboc.cfg or tcc.cfg] のファイルと、
>-LC:\TC\LIB と書かれた[tlink.cfg] のファイルは、
-IC:\TC5W\include
とかじゃないのか?
自分の環境に合わせろ
0218デフォルトの名無しさん
NGNGそれだったらパスを通せ
0220デフォルトの名無しさん
NGNGコンパイラの設定ファイルだから、
ソースがあるところに入れる意味がない
0221初心者
NGNGサーチングしかないのでしょうか?
サーチングだと処理に時間がかかっていやなのですが。
何か方法があれば教えてください。
0222デフォルトの名無しさん
NGNGソートでも良いけど?
0223デフォルトの名無しさん
NGNG-IC:\TCW5\INCLUDE
-LC:\TCW5\LIB
[tlink.cfg]
-LC:\TCW5\LIB
これらをC:\TCW5\BINに置いてやってみ。
0224初心者
NGNGサーチングでもソーティングでも処理には
時間がかかるので、一括して処理できるような
ものがあればと思ったのですが。
0225デフォルトの名無しさん
NGNGじゃあ、ただ配列に入れるんじゃなくて、もっと工夫しろ。
データ構造の本を読んで「半順序木」の勉強を汁
0226デフォルトの名無しさん
NGNG人間に出来ないものはプログラムでも出来ないと思われ(速度以外
0227デフォルトの名無しさん
NGNG2分探索ならxlogx
バカサーチならx
0228初心者
NGNGこの書き方って下手ですか?
#include<stdio.h>
int main(void)
{
int i;
char moji[100];
for(i=0;i<100;i++)
{
moji[i]=0;
}
printf("文字列を入力");
gets(moji);
for(i=99;0<=i;i--)
{
if(moji[i]==NULL)
{
}
else
{
printf("%c",moji[i]);
}
}
}
022979
NGNGわかりました!
>>223
やってみたのですけど、まだできません…。
コマンドはスクリプト→コマンドで入力ですよね?
単純にソースが間違ってるんですかね。。。
でも試食版コンパイラではできたのですが…。
0230デフォルトの名無しさん
NGNGif(moji[i]==NULL)
{
}
else
{
printf("%c",moji[i]);
}
まず、Cの薄い本でも読んでくれ。アイデアはおもしろい。
0231デフォルトの名無しさん
NGNGtcc test1.c incre.c
と入力して、その出力を一切改変せずに、
省略も一切しない状態ですべてここに貼り付けてみろ
0232デフォルトの名無しさん
NGNG40点
0233デフォルトの名無しさん
NGNGIDEからわざわざコマンドで実行させているんですか?まあいいけど。
一度、test1.cとincre1.cを別々にコンパイルして、エラーが出ないか
どうか確かめた方がいいですね。
多分incre.cにはmain()が無いというリンカエラーが出ると思うけど、
それは無視して下さい。
0234デフォルトの名無しさん
NGNG配列を逆さに読む意味は?
そもそも何がしたいんだ?
0235デフォルトの名無しさん
NGNG俺の所には古いBorland-C++5.02Jがあるけど、これから複数のプログラムを
コンパイルするには、ファイル→新規作成→プロジェクトでやると簡単だよ。
Turbo-C++も多分同じでしょう。
0236デフォルトの名無しさん
NGNG文字列を読み込んで逆から表示 例 iptep==>petpi
とかいてあるぞ。>>234よ
まぁ本来はもちっと難しい方法で解決するんだろうけど、
!=をつかってスリムにしない程の初心者なので良いんではないだろうか。
0237デフォルトの名無しさん
NGNGあれだと妙な空白が初めに出ない?
0238デフォルトの名無しさん
NGNGif(moji[i]==NULL)
{
}
だから出ないんじゃない?
0239デフォルトの名無しさん
NGNG宿題スレからコピペ
#include <stdio.h>
rev_put(ch)
{
if (ch != '\n') {
rev_put(getchar());
putchar(ch);
}
}
main()
{
rev_put(getchar());
}
0240初心者
NGNGどんな風にやるんですか?<232
ヒントをオクレ
0241デフォルトの名無しさん
NGNG{
if(moji[i]==NULL)
{
}
else
{
printf("%c",moji[i]);
}
}
ここを
for(i=99;0<=i;i--)
{
if(moji[i]!=NULL){
printf("%c",moji[i]);
}
}
とするのはどうかな。
0242デフォルトの名無しさん
NGNG>>239じゃだめなんか?
0243デフォルトの名無しさん
NGNG無駄に再帰使ってるね。。。
024479
NGNGやっとのことで成功しました!
…ここまできたので、ついでといっては何ですが、
[turboc.cfg or tcc.cfg]
-IC:\TCW5\INCLUDE
-LC:\TCW5\LIB
[tlink.cfg]
-LC:\TCW5\LIB
IC,LCなどの意味も教えてくれないでしょうか?
この分からず屋にも親切に教えてくださったみなさん、
ありがとうございました!
これで、ますますCの勉強がやりやすくなります!
0245デフォルトの名無しさん
NGNGおめっと。
でも分からず屋ってこういうときに使う言葉か?(汗
0246デフォルトの名無しさん
NGNGICじゃなくて
-Iがインクルードパス
-Lがライブラリのパス
C:\TC5W〜がディレクトリ
-Iと-Lでディレクトリを指定している。
しかし、水を差すようで悪いが、
bcc32を使った方がいいと思う
0247デフォルトの名無しさん
NGNG入力される文字列の長さが100文字限定というのはアレだからな
0248デフォルトの名無しさん
NGNGコマンドラインツールって含まれてるの?
コンソールアプリもEasyWindow(s?)でウインドウアプリにしちゃった気が・・。
エラーってさ、、、
「コマンドまたはファイル名が違います」
じゃないよね?
0250デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
char ch = getchar();
if ( ch!='\n' ) main();
putchar( ch );
}
0251デフォルトの名無しさん
NGNGreturnがありませんw。
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG湧くな。
0256デフォルトの名無しさん
NGNGreturnいるのか?
他のやつも省略してるし、コンパイラは警告もエラーもはかないし。
まぁ、戻り値無視してるからなんでも適当に付け足せば。
0257デフォルトの名無しさん
NGNG1のリンクくらいは見ようよ
0258デフォルトの名無しさん
NGNGmain()
ならreturn省略してもいいが(よくないけど)
intと書いたのならきっちり値を変えそうよ
0260デフォルトの名無しさん
NGNG関数の型がintだからいるだろ。
0261デフォルトの名無しさん
NGNG省略時もintだろ?
0262デフォルトの名無しさん
NGNGint main()のreturnを省略していいのはC++だよ。
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNG多分今日味わった苦労が、BCC32のセットアップの時に役立つはず。
0265デフォルトの名無しさん
NGNGん〜〜VC++でCとしてコンパイルしてるが、
まぁVC++の警告の出し漏れか。
0266デフォルトの名無しさん
NGNGおめでとさんついでに、もう一つ書いておいてあげます。
BCC32にはこれをペアで使うと楽だよ。
http://hp.vector.co.jp/authors/VA017148/pages/cpad.html
0267デフォルトの名無しさん
NGNGだから、よくないけどって書いてあるだろ。
心情的にはわかるってことだ
0268初心者
NGNG241さんのやだと見た人がわかりずらいので
やめました。はじめはそうしてたのですが・・
250
これは僕の実力をはるかに超えた解答でした。
1つの問題で多くの解答が出ることにプログラミング
に楽しさがあるのではと実感しています
0269デフォルトの名無しさん
NGNGVC++でCとしてコンパイルしたら、returnがなくても警告でないんだ。
0270デフォルトの名無しさん
NGNGどうやらmain関数だけはそうらしい。
0271デフォルトの名無しさん
NGNGC++みたいですね。でもC++としてコンパイルすると、return 0;がないと
警告出ません?
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNGどっちも0じゃん!
と、いつぞやの紛争をぶり返す俺。
0274デフォルトの名無しさん
NGNGC++でもmainだけは警告でなかった。
他の関数ではエラーになる。(VC.NET)
0275デフォルトの名無しさん
NGNGcppなら出るぞ(VC6SP4)。
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNGC++で出ないのは標準だからね。Cででないのは仕方ないかな。規格書の
中にreturn省略時のmainが何を返すかまでは書いてないから。
0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNGC始めて1ヶ月くらいまでしてた(w
0281デフォルトの名無しさん
NGNGNULLは ((void*)0) と定義されてあることもあるという
どうしようもないツッコミを入れてみる。
0282デフォルトの名無しさん
NGNGC++じゃNULLは0だよ
>>xxx
ここはCスレだ
0284デフォルトの名無しさん
NGNGここがC言語スレだと分かってるなら
な
ぜ
C++の話を無意味に持ち出す?
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG前橋和弥
0287sa
NGNGテキストファイルをオープンして、そのテキストファイルに何行のデータがあるか
知りたいんですが、どうすればいいんでしょう?
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNGfgetsでループしる。
029191
NGNG>CRTのソースのfopen関係のあたりでENOMEM検索してみれば
CRTってなんですか?
0292デフォルトの名無しさん
NGNG#include< iostream.h>
のcout<<
タイプか
stdio.h
printf"
のタイプあどっちがいいの?
どっちが初心者むきで、どっちが一般的?
0293デフォルトの名無しさん
NGNGマジレスするとケースバイケース
0294デフォルトの名無しさん
NGNGぶっちゃけた話、両方をやっておくべき。
0295デフォルトの名無しさん
NGNGディスプレイとかモニタとか画面とかとも言うね。
人によっては、TVとか言う人も(笑)。
0296デフォルトの名無しさん
NGNGCでは、前者は一切使わない。
無理して頑張って努力すれば出来ない事ない鴨しれないけど、ワシは知らん。
0297sage
NGNGってことは、ディスプレイが原因なのか?
0298デフォルトの名無しさん
NGNG前者はほとんど使ったこと無い。
C++のオーバーロードの(悪い)例程度に見てる。
0299299
NGNGscanf("%d",&c);
これで間違って文字を入力された場合の対処法はどうすればよいのでしょうか?
自分でも考えたんですが
chara a;
int c;
scanf("c",&a);
c = atoi(a);
という方法もやってみたんですが
数字と文字を入力された場合(12yとか)は、駄目なんですよね。
0300デフォルトの名無しさん
NGNGscanf()で%dとか使うのは入力されるデータにまず間違いがない
(ファイルからの入力とか……おっとこれはfscanf()か)とき
だけにしておいたほうが良い
>>291 C RunTimeルーチンのこと? crt0.sとかをGoogleで検索.
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG何も考えずに使わないようにしていました。 fgets() と sscanf()
を組み合わせて使う方法は今でも常道なんでしょうか。少し脱線すまそ。
0303デフォルトの名無しさん
NGNGatoi()はatoi("a")とatoi("0")も0を返すので
0が入力されたのか文字を入力されたのかの区別が付かない
0304デフォルトの名無しさん
NGNGfgetsとstrtodでどうでしょう?
0305デフォルトの名無しさん
NGNG駄目、一見よさそうに見えるが指数形式も扱えてしまう為、
strtod("1e", &p);が正常終了する。
isdigitで1文字づつチェックするのが一番安全
0306デフォルトの名無しさん
NGNGfgetsとstrtolでどうでしょう?
0307カス野郎
NGNGだけど、秋に基本情報技術者の試験控えてるんですけど
どちらにしろ、たしか基本情報ではcout<<タイプはないよね。
printfの方だよね。
さらにVC++やってても変数とか出すときにsprintf使うけど
coutなんてまったく使わないし、printfタイプの方がいいという
ことでいい?みんなこっちつかってるよね。
0308デフォルトの名無しさん
NGNG「cout<<」を使えるのはC++だからね…
0309デフォルトの名無しさん
NGNGstringstreamは便利だyo!
0310デフォルトの名無しさん
NGNGcout<<の存在意義って何?
0311デフォルトの名無しさん
NGNGというか文字列型自体すごいのだが。
0312デフォルトの名無しさん
NGNGcoutっちゅーか、streamに対する<<の意義は:
型に対する処理の選択が実行時ではなくコンパイル時に行われる。
operator <<(stream&, 〜)を実装しさえすれば後からどんなデータでも統一的に追加対応できる。
%dなどの書式文字についていちいち覚えなくても、<<で出るとだけ覚えれば使える。
しかし、こと書式の詳細指定に関しては冗長かつ結局実行時ステートなのがアレだ。
0313デフォルトの名無しさん
NGNGC++全然知らないんだけど、cout <<の<<はビットシフトの<<じゃないよね?
0314デフォルトの名無しさん
NGNG<<演算子はiostream等のクラスでオーバーロードされて、まるで出力用に
作られたかのように動きます。よくできすぎとるわ。
0315デフォルトの名無しさん
NGNG臨機応変に変えるんだ!?
すごいね。
でもコンパイラを作るのが大変そう・・・
0316デフォルトの名無しさん
NGNGそれは言語の機能として型に対する演算子の処理を自分で作れるように
なっていて、ライブラリがそれを利用して作られているからということ。
文字列型というものはC++の言語そのものにあるんじゃなくてライブラリの
中にある。
0317デフォルトの名無しさん
NGNGそそ。なるべく本体は小さく保とうという精神がC++になっても受け継がれている。
しかし、内部が小さくてもC++では外部がばかでかくなり、今まで一番言語仕様
が大きいと言われていたAdaをもしのいでしまった。
0318デフォルトの名無しさん
NGNGその結果として、現在(多分)標準C++準拠と銘打っていても実際はbuggyな
処理系だらけです。
0319デフォルトの名無しさん
NGNGうそつけ
あのクソ汚い文法のどこを見てそんなことがいえるんだ
0320デフォルトの名無しさん
NGNG出たな!「C++の文法は汚い」厨!
0321デフォルトの名無しさん
NGNG0322C++房
NGNG0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGCとC++が渾然一体となったスレもこうなると欲しいな。両者を切り離して
考えないスレを。
0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNGC++スレでCの話するとスレ違いだと叩かれる。
0327デフォルトの名無しさん
NGNGただad hocなだけなのに。
0328デフォルトの名無しさん
NGNG必要性を感じた人間が自ら実行するべき。
Cしかやらない私にはC++の話は邪魔なだけです。
0329デフォルトの名無しさん
NGNG了解。しばらく様子を見ます。
0330デフォルトの名無しさん
NGNG必要性を感じた人間が自ら実行するべき。
Cしかできない私にはC++の話は理解できなくていらいらするだけです。
0331デフォルトの名無しさん
NGNGとしているのですが,これではウィンドウ上の座標ではなく,
ディスプレイの画面上の座標を取るらしく困っています。
ウィンドウ上の座標をどうやったらえることができるのでしょうか?
0332デフォルトの名無しさん
NGNGScreenToClient
0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNGそれはクライアント座標しかとれないんですけど?
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNGグッジョブ
できました
ありがとうございました
api集とかこれから買いに行ってきます
0337デフォルトの名無しさん
NGNG色つきの文字を出力したいんです。ただし
OSはWindowsXP,コンパイラはLSI-C86(試食)。
(Win98の方は確認済)
実際にやってみると
printf("\x1b[34m hoge"); /* blue */
printf("\x1b[2J"); /* clear */
ESCの部分が改行記号(半角)になって
しまいますが、やはり不可でしょうか?
(どれかのWin Ver. 以降, DOSが変わったと
聞いたことがあるんですが。)
よろしくお願いします。
0338デフォルトの名無しさん
NGNG氏ねクソマルチ。
0340デフォルトの名無しさん
NGNGtextcolor(YELLOW);
cprintf("(・∀・)マンコー");
0341デフォルトの名無しさん
NGNG向こうで答えで照るのに。
0342初心者
NGNG三日前に突然思い立ってC言語を始めました。
Micro$oftのVS.netを買ってCから勉強中です。
文字列を入力させて一文字ずつずらすプログラムを作りました。
8文字以内で入力させるようにしたのですが、ビルドしてもエラーも警告も出ないのに、
もの凄く長い文字を入力するとデバッグエラーが発生します。
Run-Time check Failure #2 - Stack around the variable 'string" was corrupted.
どうすればいいのでしょう?
#include <stdio.h>
#include <string.h>
main()
{
unsigned char i;
char string[8];
for (;;) {
puts("1〜8文字入力してください。");
scanf("%s", string);
if (strlen(string) <= 8) {
break;
}
}
for (i = 0; i < strlen(string); i++) {
string[i] = string[i] + 1;
}
printf("%s\n", string);
}
0343デフォルトの名無しさん
NGNGstringが7文字分しか確保していないのに、
scanfは入力された文字(1000文字なら1000文字)全部詰め込もうとする。
0344初心者
NGNG即レスありがとうです。
>stringが7文字分しか確保していないのに、
>scanfは入力された文字(1000文字なら1000文字)全部詰め込もうとする。
ということはscanfがいけないということですね?
代わりに使うには何があるのでしょう?
教えてくれたらうれしいです。
0345デフォルトの名無しさん
NGNG取りあえず
char string[8];
を
char string[1000];
とか
0346デフォルトの名無しさん
NGNGを改行が来るまで最大7回ループ。
0347346
NGNG0349デフォルトの名無しさん
NGNGint i,c;
for(i = 0;i < 8 && (c=getchar()) != '\n';i++)
str[i] = c;
str[i] = '\0';
とか
0350初心者
NGNGあんな風にしたいのです。
0351349
NGNG0352デフォルトの名無しさん
NGNGifのあとにelseで警告出せばいいのではないだろうか・・・?
0353デフォルトの名無しさん
NGNGプログラム始めて三日ならそれでいいと思う。
一週間たてば動的に確保する方法も理解できるはず。
0354初心者
NGNG8文字目でもエラー発生がしますね…(T-T)
やはり配列を長くしておくのが一番なんでしょうか…
でも1万字コピペして貼り付ける輩がいないとも限らないし。
0355初心者
NGNGその方法なら一応わかるんです。
あ、でも2chのスレタイに一万字貼り付けた事がないからどうなるかは分かりませんが。
>>353
それはどんな方法なのですか?
といっても今の私には理解できなさそうな気がしますが。
0356デフォルトの名無しさん
NGNGなんで8文字だとダメなのか、よーく調べてみよう。
0357デフォルトの名無しさん
NGNG細かいところにこだわりたいなら、自力で349を改造するのがいいと思う。
それが無理なら、今はそんなことにはこだわらないほうがいいと思う。
0358初心者
NGNGはい、調べてみる事にします。
>>357
>349に未知のモノがあってまだ改造どころではなさそうです。
これからも独学で逝くつもりなので頑張ってみます。
お騒がせしますた。
また来るかも知れませんが。
0359デフォルトの名無しさん
NGNG最近寂れてるし。
独学もいいけど、コンピュータの基礎(プログラミング意外のね)の本も
併読するといいよ。
0360デフォルトの名無しさん
NGNGfgets後sscanf
0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNG8文字以内に改行が入ると出力されてしまうようになるので
削ってふ。
#include <stdio.h>
#include <string.h>
int main()
{
unsigned char i;
char string[8 + 1];
puts("1〜8文字入力してください。");
fgets(string, sizeof(string), stdin);
for (i = 0; i < strlen(string); i++) {
if (string[i] == '\n')
string[i] = '\0';
string[i] = string[i] + 1;
}
printf("%s\n", string);
return 0;
}
0363デフォルトの名無しさん
NGNG表示だけ。表示だけじゃいやーんなら、>>353の言っている
メモリの動的確保について勉強して。変数名はstringよか
bufか何かのほうが意味的に適切かも。
*/
while (fgets(string, sizeof(string), stdin)!=NULL) {
for (i=0;i<sizeof(string)&&string[i]!='\n';i++) {/*条件式の順に注意*/
if (string[i]=='\0') {/*念のため*/
string[i]='\n';
break;
}
else
string[i]=string[i]+1;
}
fputs(string, stdout);
}
メモリの動的な確保のかわりにファイルをバッファ的に使う
キタナイ方法もあるにはあるけど。。
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNG'\0'の他に'\n'の分が必要なわけですね。
0366デフォルトの名無しさん
NGNG#include <stdio.h>
#define LINEMAX 1024
int main(void){
char line[LINEMAX];
int len;
int i;
while(0 < printf("1 - 8 文字入力してください : ") && fgets(line, sizeof(line), stdin) != NULL){
if(9 < (len = strlen(line))){
printf("文字が多すぎます。\n");
continue;
}
for(i = 0; i < len; ++i)
line[i] = line[i + 1];
fputs(line, stdout);
}
return 0;
}
0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNGここは逆にしないほうがいぃ
0369366
NGNG一般的でないのはわかってるけど、対象固定だと気持ち悪くて。
0370370
NGNGこの問題!!!
配列の領域以上に文字をぶち込まれた場合の処理どうやるんですか?
C言語初めて1ヶ月だけど、未だに出来ない・・・.
0371デフォルトの名無しさん
NGNGfgets()で一度に読み込める文字数を制限してしまえばよい。
0372デフォルトの名無しさん
NGNGスレ読めばわかると思うけど、ぶち込まれた場合のことを考えるんじゃなくて、ぶち込まれないようにがんばるんだよ。
0373370
NGNGfgets()はファイル読み込みじゃないの?
stdinからもOK?
>>372
頑張ってるんだけどさ・・・.
上司が「じゃあこれは?」とか言ってぶち込みやがるんだよ〜
0374デフォルトの名無しさん
NGNG>上司が・・・〜
当然だ。
0375デフォルトの名無しさん
NGNG「入力される」のと「配列に入れられる」のはぜんぜん違うよ。
入力されたときのことを考えて、
配列からはみ出ないようににがんばるんだよ。
0376デフォルトの名無しさん
NGNGもちろんstdinでもOKだよ。openされてるFILE*型なら大丈夫。
0377デフォルトの名無しさん
NGNGとかにしちゃえば?
さすがに1万文字も入れられることはないし、
スタックの無駄遣いではあるけど。10KB程度全体から見たら微々たる物じゃないかと。
0378370
NGNGつまりこういうこと?
char str[100];
char a[8];
int i;
scanf("%s",str);
for(i=0;i<9;i++)
{
a = str[i];
}
・・自信ないなあ
0379デフォルトの名無しさん
NGNGfor(i = 0; i < 7; i++) a[i] = str[i];
str[i] = '\0';
0380デフォルトの名無しさん
NGNGfor(i = 0; i < 7; i++) a[i] = str[i];
a[i] = '\0';
0381デフォルトの名無しさん
NGNGバグ取りに追われるのでした・・・(>>377は既に転職)
0382デフォルトの名無しさん
NGNG#define MAX 15
int main(){
char str[MAX];
int len;
fgets(str,MAX,stdin);
len = strlen(str);
str[len-1]='\0'
return 0;
}
これなら改行もカンマも大丈夫かな?
0383デフォルトの名無しさん
NGNGその操作を繰り返すのが面倒なのでテキストファイルに引数の一覧書き込んで
そこから読み込むという形で自動化したいんですけど出来るでしょうか?
0384デフォルトの名無しさん
NGNGstdinからの入力なら、単にテキストファイルをリダイレクトするだけの
話では。
0386デフォルトの名無しさん
NGNG> 私の使っているOSはリダイレクトをサポートしていません。
えっ?リダイレクトってOSがサポートするものなの?
シェルがサポートするもんだと思ってた。
0388デフォルトの名無しさん
NGNGえーと、そのプログラムを実行した後に
何度か対話式に引数の入力が求められるんですけど、
それら全ての引数をファイルから入力したいんです。
例えばdos窓とかでだと、
実行後に
実行しますか?
y/n:y
本当に実行しますか?
y/n:
こんな感じの入力画面になりますよね?
これはリダイレクトするだけで、出来るものなのですか?
勉強不足なら本当に済みません。
0389デフォルトの名無しさん
NGNGいちいち「本当に実行しますか?」と聞いてこないようにプログラムすればよい。
0390383
NGNGほんとにすいません、もうちょっと調べてきます。
0393デフォルトの名無しさん
NGNGコマンドライン引数を使って計算するプログラムじゃないの?
0394393
NGNG0395デフォルトの名無しさん
NGNGこれが「プログラマは楽をするためならどんな努力でもする。」って奴ですか?
#include<stdio.h>
#include<math.h>
#define haikei BLACK
#define L 1000 //x方向の総分割数
const int TOTALTIME=1500; //総時間ステップ数
const double MAXamplitude=1; //波の最大振幅
main(void)
{
int M=TOTALTIME;
double u[L+2],preu[L+2],nextu[L+2],
dt=0.01, dx=0.01, v=1.0, max=MAXamplitude;
ginit(600,200,haikei);
GRAPH gra; gra.view(0,0,600,200);
gra.window(-dx*L/2,-max,dx*L/2,max);
///////初期条件の設定////////////////////////////
//
for(int l=0;l<=L+1;l++)
{
u[l]=exp(-pow((l-L/2)*dx,2));
preu[l]=u[l-v*dt/dx];
}
/////////数値シュミレーション/////////////////////
//
for(int i=1;i<=M;i++)
{
for(int l=1;l<=L;l++)//時間発展
nextu[l]=pow(v*dt/dx,2)*(u[l+1]-2*u[l]+u[l-1])+2*u[l]-preu[l];
nextu[0]=nextu[L]; nextu[L+1]=nextu[1]; //周期境界条件
//
/////////描画部//////////////////////////////
if(i%3==0)
{
gra.frectangle(-dx*L/2,-max,dx*L/2,max,haikei);//消去
gra.moveto(0,-max); gra.lineto(0,max); //縦軸
gra.moveto(-dx*L/2,0);gra.lineto(dx*L/2,0); //横軸
}
gra.moveto(-dx*L/2,u[0]);
for(int l=1;l<=L+1;l+=3)
{
gra.lineto(dx*(l-L/2),u[l],GREEN);
}
gra.moveto(-dx*L/2,u[0]);
/////////////入れ替え preu <- u, u <- nextu ///////////////
for(int l=0;l<L+2;l++)
{
preu[l]=u[l];u[l]=nextu[l];
}
}
gend();
}
0397 ◆GpSwX8mo
NGNG0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNGその前の質問しろ
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNGグヒヒ
0402 ◆GpSwX8mo
NGNG396で
(1)形の違う波が衝突してすり抜けるようにする方法
(2)固定端や自由端にする方法
はどうすればいいんでしょうか。
これはコンパイルしても浮動小数点のエラーは出ますが問題なく実行できます。
いろいろ考えてみたのですが、
(1)は初期条件をうまいこといじればできそうな気がしますが、どうも
すり抜けるというか干渉しあいながらすれ違うみたいな図ができてしまいます。
(2)は周期条件をいじればできそうな気がしますが、もとの図と同じように
ただ往復する波の図ができてしまいます。
どなたか心当たりのある方、レスお願いします。
自分も新たなことがわかり次第、書き込んでいこうと思います。
0403 ◆reqfwMkc
NGNGちなみに#1でした。
0404デフォルトの名無しさん
NGNG0405383
NGNGそうなのかもしれませんけど、そのプログラムのソースが手に入らないんですよ。
厚かましい事この上ないですけど、実際に僕が質問した事は初心者レベルで実行可能かどうかだけdめお教えて下さい。
>>391
前のレスを見逃していました、申し訳ないです。
それと勉強不足はやはり違いなく僕の方だと思います。
シェルが何なのかさえ明確には分からないんですから。
>>393
で、出来そうでしょうか?
0406デフォルトの名無しさん
NGNG> これはリダイレクトするだけで、出来るものなのですか?
できる。
0408ふぁるこん
NGNGBorlandのHPより無料でTurboDebuggerをダウンロードしてきました。
小規模なC++ソースのデバッグをしたいのに以下のエラーがでます。
「not enough memory to load symbol table」
他のアプリも全部終わらせています。
メモリはそれなりに空いていると思うのですがどうすれば良いのでしょうか。
0409デフォルトの名無しさん
NGNGC言語のプログラム書くのに便利なソフトって何がありますか?
コンパイラするソフトではなく、プログラムを書くソフトでお願いします
0410デフォルトの名無しさん
NGNGvi
0411デフォルトの名無しさん
NGNG須れ違いの鼬買い
0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNGnotepad
edlin
0414デフォルトの名無しさん
NGNGありがとうございます
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNG他にどんなのがいいでしょうか?
0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNG根っからのWinnerと限定してvi,emacsはじゃ排除
秀丸
vivi
SAKURA
cpad等の簡易統合環境
SAKURAはフリー
統合環境はそれ以外ではほとんど使い物にならないから特殊用途
viviと秀丸はシェア
0419デフォルトの名無しさん
NGNGtype con >source.txt
0420デフォルトの名無しさん
NGNG立派なエディタだねw
0421デフォルトの名無しさん
NGNGつーか、ここで聞かないでシミュレーション板で聞けば?
あと、その近似法だと波が干渉するのは当然だ。
0422デフォルトの名無しさん
NGNGDOS時は、数行で終わるファイルはそれで作ってた。
なつかしぃ。
レスどもです。m(_ _)m
板移ることにします。
0424デフォルトの名無しさん
NGNGだべ?
つーか、ソースなんか
#include <con>
の一行で済ませろ
0425デフォルトの名無しさん
NGNG冷静に考えると可能なのよね・・・。
0426342の初心者
NGNGいろいろと調べた結果、根本的解決にはなっていませんが以下のようにする事で解決しました。
char string[8];
scanf("%s", string);
↓
char string[9];
scanf("%8s", string);
ただ、調べていくうちに、解決策としてポインタとやらが有効なのではないかと考えています。
>353様のおっしゃられたメモリの動的確保を勉強中です。
入力された分だけメモリを確保するようにしようと思っています。
0427デフォルトの名無しさん
NGNGにしといた方がいいよ。
0428scanf推進派
NGNG>根本的解決にはなっていませんが・・・
もしかして2バイト文字も一文字としてずらすからでしょうか?
文字コードレベルでずらしていいのでしたら
#include "stdio.h"
#include "stdlib.h"
#define uchar unsigned char
#define num 8
/* ↓MS系コンパイラは定義されていないので↓ */
#define iskanji(_c) ((0x81<=((uchar)_c)&&((uchar)_c)<=0x9f)||(0xe0<=((uchar)_c)&&((uchar)_c)<=0xfc))
int main(void)
{
int i, n;
uchar string[(num*2)+1] = {0x00};
printf( " 1 〜 %d 文字入力してください。\n", num );
scanf("%s", string);
for(i=0, n=0; *(string+i)!=0x00; i++, n++){
if(iskanji(*(string+i)))
i++;
}
if(n > num){
puts( "多すぎ..." );
exit(30);
}
for (i=0; *(string+i)!=0x00; i++){
if(iskanji(*(string+i)))
i++;
*(string+i) += 0x01;
}
printf( "%s\n", string );
return (0);
}
は、どうでしょうか?コンパイルしてないのでうまく動作するかはわかりませんが...
また、質問の内容とずれていたらスマソ
0429デフォルトの名無しさん
NGNGウィンドウのサイズ(文字数)を調べる方法知ってる人教えてくれ。
0430デフォルトの名無しさん
NGNG取りあえず寝ろ。
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNGUNIXコマンドを作るんスよ!
実行されてるウィンドウサイズがわからなきゃ作りようがない!
んじゃなけりゃLinxコマンドとかのソースって何処にあるかだけでも!
0433デフォルトの名無しさん
NGNG16bitの整数の上8ビットと下8ビットを入れ替えたいんですが、例えば
short int data[100];
:
:
for(i=0;i<100;i++){
data[i]=(data[i]>>8 & 0xff)|(data[i]<<8 & 0xff00);
}
こんな事してるんですが、もっと早い方法ってありますか?
0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNGそのscanf()の使い方だと振り出しに戻ってるような…
0436デフォルトの名無しさん
NGNGあと、unsigned shortとしておけば、
&は要らないとおもう。
0437デフォルトの名無しさん
NGNGありがとう。
0438デフォルトの名無しさん
NGNGってさ"かーしぃす"って読んだらいいの?
0439デフォルトの名無しさん
NGNG激しく機種依存だけど、union使ったら?
0440デフォルトの名無しさん
NGNGどんな感じに?
0441デフォルトの名無しさん
NGNG環境を特定しないような一般的なレベルでは、それがいいのでは?
それ以上気にするなら、メモリアクセスのスループットを最大化するこ
とを重視して最適化するのがよいと思う。組み込みプロセッサとかは知
らんけど。
0442デフォルトの名無しさん
NGNG最後は ず の方がかっこいい。
0443433
NGNGところで、どのように共有体を使ったらいいのでしょうか>>439
興味あります。
0444名無しさん
NGNGそう考えて、どんどん根底まで突き詰めていくと(つまり、printf関数を作成した人はその関数内で別の関数を利用していたと考えられます。
が、その関数を定義した人は?というループ)、C言語のライブラリにある関数をプログラミングしている人は、こちらから見れば作成環境がどんどん悪くなっていきます。
どのような方法でプログラミングをしていたのでしょうか?
それとも、C言語というプログラミング言語は、ほかのプログラミング言語で定義されたものなのでしょうか?
0445デフォルトの名無しさん
NGNG?
0446デフォルトの名無しさん
NGNGunion
{
struct
{
char a;
char b;
} c;
short s;
} r;
r.s = 数字;
swap(r.c.a,r.c.b);
アバウトにこんな感じ
0447439じゃないけど
NGNGtypedef union{
short s;
struct { char c1; char c2; };
} utype;
...
short int data[100];
utype *ptr = (utype*) data;
for(i=0;i<100;i++){
swap( ptr->c1 , ptr->c2 );
ptr++;
}
つーよーな感じでわ。
0448デフォルトの名無しさん
NGNG一度、printfのソースを眺めてみればいいと思う。
0449デフォルトの名無しさん
NGNG実行時間計ってみれ。
コンパイラが最適化してビット操作に置き換えちゃったりすることがあ
るので、コードを確認してみても面白い。
0450デフォルトの名無しさん
NGNG0451433
NGNGなるほど。共有体なんて使った事がなかったからそんな発想はありませんでした。
さんきゅうです。
0452デフォルトの名無しさん
NGNG構造体のパッキング・・・
0453デフォルトの名無しさん
NGNGわかりませんか?おかしいですね。
特に、初心者の方はよくわかると思うのですが・・・
たとえば、文字列の長さを調べるのに
int i;
char *s = ...
for (i = 0; s[i] != '\0'; i++)
;
i += 1;
とかやってませんか?
それがアレですよ、ええと、そうそうstrlen()
こんな調子であなたがやってることをライブラリ制作者はやっているんです
0454デフォルトの名無しさん
NGNGだいたいそんな感じですが、最終的には OS の機能を呼び出して文字を出力するわけですな。
0455デフォルトの名無しさん
NGNGもしくはVGAとかBIOS叩く〜
0456デフォルトの名無しさん
NGNG飛躍しすぎ
0457デフォルトの名無しさん
NGNG>>455宛て
0458433
NGNGそれつおいの?
0459デフォルトの名無しさん
NGNG基本的にはアセンブラ
まぁ、機械語を書ける兵もいるかも知れんが…
0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNG0464C勉強中
NGNGp22の演習1-6で getchar() !=EOF という式の値が0か1であることを
確認せよっていうのがどうすれば確認できるか分かりません。
アドバイスお願いします。
0465デフォルトの名無しさん
NGNGprintf("%d\n", getchar() != EOF);
0466デフォルトの名無しさん
NGNGそれはアドヴァイスではなく答えだ
0467C勉強中
NGNGint c;
while ((c = getchar()) != EOF){
putchar(c);
printf("%d\n", getchar() != EOF);
}
}
で、testと入力して実行すると
t1
s1
って結果になるんですがこれでOKです?結果が理解できないです。
0468デフォルトの名無しさん
NGNGそれでOKです。"test"のうち2文字目の'e'と4文字目の't'がprintf内のgetchar()
によって食われ、1になっているからです。
0469デフォルトの名無しさん
NGNGwhile (blean = (c = getchar()) != EOF){
if(c == '\n') continue;
printf("%c\t%d\n", c, blean);
}
printf("EOF\t%d\n", blean);
0470C勉強中
NGNG食われて?w;
まず拾ってきた1文字めがEOFじゃないからtをプットしますよね?
プットした=真だから次に1プリントアウトさるのは分かるのですが
eはいずこえ?つぎにeを拾ってこないの?
>>469
理解するにしばし時間を。
0471デフォルトの名無しさん
NGNGputchar(c);
printf("%d\n", getchar() != EOF); //eをゲト
}
getchar()使う、読み出す位置、次へ移る
これプログラムの定説ある(´A`)
0472デフォルトの名無しさん
NGNGprintf内のgetcharで拾ったよ。出力してないだけで。
0473デフォルトの名無しさん
NGNG食われてという表現はまずかったかもしれないけど、'e'がEOFではない
もんだから、getchar() != EOFの式が1になって、それがprintfで表示
される罠。
その後またwhileの条件文に戻って、's'をgetchar()してputchar()し、
最後の't'もまた例によって1になる罠。
0474デフォルトの名無しさん
NGNGああわかった。どこで悩んでおられるのか。
getchar() != EOFという式が、char型を返すと思いこんでおられるようだ。
この式は1か0しか返さんよ。
0475C勉強中
NGNG二つ目のgetchar() != EOFを一つ目のときの数字の1とだけしか見てませんでした。
やっと理解できました。ありがとうございますた。
0476デフォルトの名無しさん
NGNGハァ?
標準入力から一文字読んでその文字を返す関数ですが。
0477476
NGNG起きたばかりでねぼけてしまった。
0478383
NGNG手持ちの参考書調べてみましたが、やっぱり分かりません。
なんか、一個目の入力で止まってしまって、目的のプログラムが終了するまで
残りの引数が入力されないような状態になってしまうんですけど。。。
なんか、ヒントとか参考になる書籍とかだけで良いので教えてくださいませんかね?
0479デフォルトの名無しさん
NGNGfgets(...);
fgets(...);
としてユーザの入力を得るなら、
y
y
n
と記述したテキストを用意して、
executable < commands.txt
これで出来る
0480デフォルトの名無しさん
NGNG規格のこの部分で「〜」と定義されている。
よって、getchar() != EOF という式の値は0か1になる。
という記述の方がふさわしいような気がする。
printf("%d\n", getchar() != EOF);
これだとあらゆる入力を試さないと確認したことにならないし。
0481デフォルトの名無しさん
NGNG何でもいいから次の参考書を買え。参考書はいっぱいあるから尽きるこ
とはない。安心しろ。
0482デフォルトの名無しさん
NGNG時間が尽きると思われ
0483デフォルトの名無しさん
NGNGキーワードが幾つか出てるけど、それで検索掛けてみた?
0484デフォルトの名無しさん
NGNG>>405でソースが入らないと言ってるのに
fgetsならと言いきってしまう所が素敵
>>383
一通り、試してみて駄目だったら諦めた方が良いよ
0485デフォルトの名無しさん
NGNG482さんの仰る通りそんな事してたら時間が幾らあっても足りません。
意地悪な事は言わないで良書(出きればソース付きの)を教えてくださいませんか?
>>483
リダイレクト以外で何かキーワードが出てきたでしょうか?
リダイレクトでは検索かけてみたんですけど、
どうも参考書に書いてあることと変わらない内容ばかりで…
僕は応用が利かないんでしょうね。。。
けど、もう少し頑張ってみます。
0486デフォルトの名無しさん
NGNG>一通り、試してみて駄目だったら諦めた方が良いよ
とは一体どういう意味なのでしょうか?
出来るには出来るけど、僕には無理という事なのか、
実質的に無理なのか、どっちなんでしょうか?
多分前者だと思うんですけど。。。忌憚無き意見をお願いします。
0487デフォルトの名無しさん
NGNGそもそも板違いだろ?
0488デフォルトの名無しさん
NGNGそれによって解答も違うだろ
0489デフォルトの名無しさん
NGNGfgets(str,sizeof str,stdin);
としたとき、改行文字も入れて20文字以上書き込むと標準入力に何文字か残ってしまいますよね?
これを消し去るにはどうしたらいいのでしょうか。
調べてみたところfflush(stdin)とすればできると書いてあったのですが、Linux+gccの環境ではできないようなんです。
0490デフォルトの名無しさん
NGNG規格ではfflush()は出力用にしか定義されてない。
0491デフォルトの名無しさん
NGNG環境依存でも構わないので、何かよい方法はないでしょうか。
0492デフォルトの名無しさん
NGNGscanf("%*s");
0493デフォルトの名無しさん
NGNGどういう組み方をしたいのかは知らないが、普通fgetsに標準入力は使わないと思うが・・・
0494デフォルトの名無しさん
NGNGよく使ってますが何か?
0495デフォルトの名無しさん
NGNGgetsじゃダメダメ?
単にwarning回避したいだけ?
0496デフォルトの名無しさん
NGNGgets() がバッファサイズ指定できるならそっちを使うだが、
現状では fgets() するしかないような。
0497デフォルトの名無しさん
NGNG常道じゃないの?
0498デフォルトの名無しさん
NGNGああ、fgetsってバッファサイズ渡せるのね。
freadしか使ったこと無いよ。。。たしか。
0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNGいや、意味わからんて。
0501デフォルトの名無しさん
NGNGやっぱり直接FILE構造体の中身をいじるしかないみたい。
0502デフォルトの名無しさん
NGNGこれはまずいよな・・・・一応VC++ではできるみたいだけど。
0503502
NGNG0504デフォルトの名無しさん
NGNGユーザがキーを先行入力している可能性があるので、何でもかんでもstdinを
フラッシュするのはいかがなものか。
バッファから溢れた行末部分を捨て去りたいなら
char str[20];
int c;
fgets (str, sizeof str, stdin);
if (str[0] && (str[strlen (str) - 1] != '\n'))
while (((c = getc (stdin)) != EOF) && (c != '\n'))
;
こんな感じか。
0505デフォルトの名無しさん
NGNG君はどんな参考書でも役に立つレベルかと思われ。たくさん読め。
つーか問題も分かっててソースも必要と、具体的な要求があるんだから本屋で
探せばいいじゃん。できないなら読解能力不足だ。たくさん読んで読解能力を
身につけよう。
0506デフォルトの名無しさん
NGNG{
size_t n = 0;
int c;
whilie ((c = fgetc(fp)) != EOF)
{
if (c == '\n')
break;
if (n < bufsize)
buf[n] = c;
++n;
}
buf[n] = '\0';
return c;
}
こんなんいっこつくればいいやん。
0507デフォルトの名無しさん
NGNGじゃないとまずいね。
0508デフォルトの名無しさん
NGNGbuf[n++] = c;
じゃないとまずいね。
0509デフォルトの名無しさん
NGNGuint8_t とかはどのように定義されるのだろう???
0510デフォルトの名無しさん
NGNGんな事は分かってる。
レベルの低さからしても確かにどんな参考書でも多少は役に立つだろうよ。
でも、どんな本にも良い者と悪い物があるだろう、目的の技術が載っていない本だってあるだろう。
俺は何冊も本が買えるほど裕福じゃないし全部読めるほど暇でもないんだ。
また本屋でぱっと見たくらいじゃ分からないレベルだから、ここでお薦めの本がないか聞いているんだ。
昨日からの話の流れで、そのくらい判断できるだろう。
出来なかったんなら君こそ読解力を身につけた方が良いんじゃないか?それとも初めから答える気なんてないのか?
どんな本でも沢山読めっつうようなアドバイスなんて、別にC言語知らなくても出来るだろう。
もしも、一冊か二冊読んだくらいでどうこうなるような問題じゃないのなら謝罪するよ。
だが、もしそうなら君は一体何冊くらいの本を読んだんだ?そのくらいの情報はあっても良いと思うんだが。
質問しといてこういう事を言うのは非常に大人気無いが、君の発言にはちょっとカチンときたよ。
>488
OSはレッドハットです、バージョンは忘れましたけど。
>487
ソースは二種類あります。
繰り返し引数を入力して実行するプログラムと、引数の入力を自動化するプログラムです。
前者は手に入りました、後者を自作したいんです。
後者のプログラムを作るために参考になるソースがれば良いという意味で書いたのですが。
0511デフォルトの名無しさん
NGNGcharが1バイトは仕様で定義されてた気がする・・・
>>510
俺はCの本は1冊読んだだけだけど、何を読むべきかなんて他人にはわからない問題かもしれない。
K&Rを激しく勧めるやつもいればK&Rは糞だと言うやつもいる。
0512デフォルトの名無しさん
NGNGネットで調べれば?俺はそうしたよ
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNGcharは1byte。
でも1byteが8bitという決まりはない。
0516デフォルトの名無しさん
NGNG使いにくそう・・・・
0517デフォルトの名無しさん
NGNG相手が自分の期待したとおりの回答を出さなかったからといって切れるのはどうかと思うが。
ちなみに俺の場合は買ったのは二十冊ぐらいにもなったかな。
ほとんど500円以内で買った中古本。
読み終わったらフリーマーケット行き。
1冊だけと言うなら K&R を勧める。
続けるなら推薦図書スレでどうぞ。
0518デフォルトの名無しさん
NGNGアフォは放置。それがベスト。
0519デフォルトの名無しさん
NGNGアフォ3級に認定されました おめでとう!!
次は2級をめざしてがんばってね
0520デフォルトの名無しさん
NGNGアフォ2段の方は言うことが違うわ。
>>571の人!がんばってくれ!!
0521デフォルトの名無しさん
NGNG0522_
NGNGa[1] = 1;
と
*a++ = 0;
*a = 1;
って基本的にどっちが速いの?
gccではほとんど変わらないみたいだけど・・・(最適化激しすぎ)
変わらないなら上のほうが分かりやすいな。
0523デフォルトの名無しさん
NGNGどんなふうにボケようか困るだろ。
あと約50か……(ドキドキ
0524デフォルトの名無しさん
NGNG>>519はその辺どう思う?
0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNGケースバイケースで使い分ける。速度と可読性を秤にかけること。大抵の
場合は可読性を取った方がよい。
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNG前者じゃねぇのかなぁ。なんとなく。
サイズってどっちが小さいのかね。
0530デフォルトの名無しさん
NGNGたまたまprintfが標準出力に出力する仕様で
たまたま標準出力がコンソール(DOS窓)を指しているだけです。
0531デフォルトの名無しさん
NGNGEXEを作る際にリンカの設定でそうしているだけです。
0532デフォルトの名無しさん
NGNGその程度だと、どんな環境でも差が出にくいんじゃないか?
aが構造体へのポインタで、更に同様の記述が多くなると
差が出そうだが(後者が速くなりそうだ)、それさえも大抵は
最適化でほぼ同じになってしまう。基本的に読みやすい方で
いいだろうな。
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNG水道の蛇口んところとかで水漏れ防ぐやつ?
0535デフォルトの名無しさん
NGNGハッキング?
0536デフォルトの名無しさん
NGNG中途半端な大きさだとCPUが取得できなかったり非常に効率が悪くなったりする。
それを防ぐために構造体はある境界までサイズを増大させる。
それが嫌ならpackedさせる。
0537デフォルトの名無しさん
NGNGpackedはpascalだね。
0538デフォルトの名無しさん
NGNGえーと、手元にある参考書(独習C)には特に何も書いていないんですけどどういうことなんですか?
0539デフォルトの名無しさん
NGNGごめんなさい、ほんとはDel厨です。
>>538
Cでpackedに対応するキーワードを付ければ構造体のサイズはメンバの合計サイズとなる。
0540デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNGC言語自体にはないけど、#pragma packで構造体をパックする処理系も
あるよ。説明書をよく読んでみそ。
0543デフォルトの名無しさん
NGNGああいう反応をしたのは大人気無かったと自覚している。
言い訳になるけど、あれ以上ループを繰り返したくなかったんだよ。
昨日は肝心の質問内容には殆ど触れられずに終わっていまっていたから。
なにも言わずに諦めて去るという選択あったんだろうけど。
なんにせよ、ご回答には感謝する、ありがとう。
参考にさせてもらいます。
>511
そりゃ、一般的な技術を学ぶんだったら人それぞれかもしれないけど
今はこちらが問題点をここに書いて、それに合った技術が詳しく解説されている本を求めているわけで。
自分に合う合わないは二の次なんですよ、今回は。
0544デフォルトの名無しさん
NGNGおこちゃまは背伸びしてみなくてもよいですよ
0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNGredhatつかってんだろ?
なんでリダイレクトしないんだよ?
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNGあげくにソース付きの本紹介しろとか言っちゃったら、
なに言われても文句言えないだr(略
0549HHH
NGNG0〜4次の五つの係数を代入するヤシです
検索でアプリケーションは見つかったのですがソースが見れませんでしたッp
0550デフォルトの名無しさん
NGNG解の公式があればそれをコーディングするだけで終わると思うんだけどいかが?
0551デフォルトの名無しさん
NGNGKOU *Kou;
ReadFile(hFile,&Kou,sizeof(KOU)*17,&byteCount,NULL);
0552デフォルトの名無しさん
NGNG数行抜けてました
KOU *Kou;
if( ( Kou = (KOU *)calloc(17,sizeof(KOU)) ) == NULL )
exit(1);
}
ReadFile(hFile,&Kou,sizeof(KOU)*17,&byteCount,NULL);
0553デフォルトの名無しさん
NGNG可笑しいです。たぶん
>ReadFile(hFile,&Kou,sizeof(KOU)*17,&byteCount,NULL);
ここを
ReadFile(hFile,Kou,sizeof(KOU)*17,&byteCount,NULL);
こうしたいんだと思う。
0554デフォルトの名無しさん
NGNG○ReadFile(hFile,Kou,sizeof(KOU)*17,&byteCount,NULL);
0555554
NGNG0557デフォルトの名無しさん
NGNG説法ありがとうです
5時間悩んでいましたが,やっとうまくいきました
0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNGBASICか・・・。
ANSI.sys入れてエスケープシーケンスとか。
0561デフォルトの名無しさん
NGNGMacOS X を識別できる定義済みマクロってなんか無いでしょうか??
X で定義されて 9 以下では定義されないようなやつ。
0562デフォルトの名無しさん
NGNG>>1 C FAQ 10.19
9以下の環境とXの両方で試して比較すれ。
0563デフォルトの名無しさん
NGNGいまやってるんですが、1問につき1日費すこともあります。
これって遅いですか?
0564デフォルトの名無しさん
NGNGまあ焦らずゆっくりやれや。ペースはひとそれぞれだし。
0565デフォルトの名無しさん
NGNG心配するな。
俺の場合、5章、6章当たりは3日で1問とかだった。
0566デフォルトの名無しさん
NGNG確かにそうなんですどね
>>565
5、6章で1問につき3日ですか、私なら1週間掛りそうですね。
0567デフォルトの名無しさん
NGNGCコンパイラ自作しようと思ったが、初めにマクロの解釈でつまずいた。
int a = 1;
int b = 2;
#define b a + b
#define a a + b
printf("%d", a);
例えばこれで何が出力されるか実際に試さないとなかなかわからないと思うが。
あと関数内にマクロを書いた場合、ソース上のどの範囲で有効になるかとか。
マクロの解釈アルゴリズム具体的にわかる人いる?
0568デフォルトの名無しさん
NGNGprintf("%d", a + b);
に展開されるし、定義した位置から#undefするまでスコープ外でも有効
0569567
NGNGスコープについてはありがとう。
実際にやってみたら意外と4になった。
実際作るとしたらどういうアルゴリズムで展開したらよいのだろうか?
0570デフォルトの名無しさん
NGNGマクロ a の展開中にマクロ a は展開されない。
マクロ b の展開中にマクロ b は展開されない。
だから
a → a + b → a + a + b
で終わり。・・・のはず。
0571デフォルトの名無しさん
NGNGこれ #define a a + b はすなわち #define a a + a + b 。
ゆえに printf("%d", a); は printf("%d", a + a + b); と展開される。
なので出力結果は1+1+2の4。
ファイルの上から順に、単純に文字列置換していくだけでいいのでは?>>569
0572デフォルトの名無しさん
NGNGint b = 2;
#define a a+b
#define b 100
printf("%d", a);
は 101 になる。 bccでは、なった。 やってみれ。
0573お願いします
NGNGいま研修中でwin32 console applicatison(DOS風の黒い画面上で動くソフト)
を作っています。初歩的な質問かもしれないですが参ってます。
printf("数値aを入力\n");
printf("必要なければそのまま[enter]を押してください。\n");
if(scanf("%d",&a)!='\n')/*この行の式がわかりません*/
printf("%d",a);
printf("入力無し");
というような感じで、エンターキーを押すと次の処理に移行
できるような、判別式を探しています。(\nでは無理でした。)
なにか方法はないでしょうか?よろしくおねがいします。
0574デフォルトの名無しさん
NGNG改めて考えると結構無茶苦茶な言語だな C って(w
最初のプリプロセッサの実装の都合に仕様が引きづられてそうだ。
>>573
scanf の返り値が何かくらい調べろ。
0575デフォルトの名無しさん
NGNG0576567
NGNGint a = 1;
#define a b
#define b a
printf("%d", b);
では、これは?
ちなみに、
#define a b
#define a a
だったらaが再定義されているというエラーが出る。
だから#define b a → #define a a に展開されているとしたら、
aが再定義されているとエラーが出るはず。
もし左側の字句は展開されないのだったら、
上から順に展開されると b→a
で問題無く終わりのはずなんだが。
実際はbが定義されていないと出た。この場合どういう展開したかわかる?
0577567
NGNG0578567
NGNG0579デフォルトの名無しさん
NGNG#define b a
の時点でaは展開されるんじゃないの?
#define b b
の意味になるから、bはそれ以上展開されないで未定義。
ってゆうかcppすれ。
0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG>>572を眺めてみよう。
0582573
NGNGすいません、頭があんまりいいほうではないので
もう少しヒントが欲しいんですが・・。
読み込みをgetsでやって、その後scanfするというのは
エンターの入力をgetsなら文字として判定できるということですか??
0583デフォルトの名無しさん
NGNGあなたアフォ3級だって。
真面目に答えたのにご愁傷様。
0584デフォルトの名無しさん
NGNG*scanfの戻り値は実際に代入できた数でしょ?
char str1[]="333";
char str2[]="aaa";
int i;
sscanf(str1,"%d",&i); /* ここでは1が */
sscanf(str2,"%d",&i); /* ここでは0が */
返るはず。
0585デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNGKOU Kou[6];
hFile = CreateFile("Kou.dat",GENERIC_READ,0,NULL,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,NULL);
//読みこみを失敗したら終了
if(hFile == INVALID_HANDLE_VALUE){
ErrorRead();
GameExit();
}
ReadFile(hFile,&Player,sizeof(PLAYER)*6,&byteCount,NULL);
CloseHandle(hFile);
ReadFileの中は,あっているんでしょうか?
0588デフォルトの名無しさん
NGNGKOU Kou[6];
hFile = CreateFile("Kou.dat",GENERIC_READ,0,NULL,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,NULL);
//読みこみを失敗したら終了
if(hFile == INVALID_HANDLE_VALUE){
ErrorRead();
GameExit();
}
ReadFile(hFile,&Kou,sizeof(KOU)*6,&byteCount,NULL);
CloseHandle(hFile);
ReadFileの中は,あっているんでしょうか?
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNGそれは〜〜だよ。
すれ違いだから、今後は〜スレで聞けよ。
ぐらいできないのが多いの?
分からないから他にまわすってこと?
0591デフォルトの名無しさん
NGNG0592588
NGNG板違いすんませんでした
0593デフォルトの名無しさん
NGNG板違いとスレ違いの違いがわからないならもう来んな
0594デフォルトの名無しさん
NGNG>改めて考えると結構無茶苦茶な言語だな C って(w
>最初のプリプロセッサの実装の都合に仕様が引きづられてそうだ。
プリプロセッサの動作は旧いCとANSI-Cではかなり違う。
旧いCの方は小技がかなり効きそうだけど、頑張った他人のソースを読むのは
嫌になるに違いない。
0595デフォルトの名無しさん
NGNG>>551と
http://pc.2ch.net/test/read.cgi/tech/1017072275/685
参照
0596567
NGNG576は勘違いでした。お騒がせしました。
>>571
> ファイルの上から順に、単純に文字列置換していくだけでいいのでは?
とりあえずいろいろ試して#defineの仕組みがだいたいわかってきたので参考までに。
どうやら上から順番に置換していくわけではないようです。
ちなみに#defineの行の自体は他の#defineにより置換されることはないようです。
例えば次の例を使うと
int a = 1;
int b = 2;
#define b a + b
#define a a + b
printf("%d", a);
まず、#defineの第1字句がaと一致するものを検索して置換します。
a → a + b
そしてこの#defineにフラグを立てます。一度使った#defineは置換完了まで再び使われません
次にこのaとbに対して再び置換を試みます。
a の#defineはさっき使ったのでもう使用不可です。そこで b に対してのみ置換が行われます。
a + b → a + a + b
そしてこの#defineにもフラグを立てます。
次にこのaとbに対して置換が試みられます。もう使用できる#defineはないのでここで終了です。
こうやって使用できる#defineがなくなるか、もしくは
どの字句も全ての#defineの1字句目と一致しなくなれば終了です。
この方法だと#defineする順番を入れ替えても同じ結果が出ます。
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNG「一度使った#defineは置換完了まで再び使われません」というのが多少気になる。余計なお世話かもしれんけど、こんなの考えてみた。
int a = 1;
int b = 2;
int c = 3;
#define a a + b
#define b a + c
#define c b
#define d a + b + c
printf("%d", d);
意味判らん気味だけど、最終的に a + a + b + a + b + b + a + b + c = 15 になります。たぶんこれくらいややこしいのが正常に展開できたら問題ないんじゃないかと。>>596だと、
d (dを展開)→ a + b + c (aを展開)→ a + b + b + c (bを展開)→ a + a + b + a + b + c (cを展開)→ a + a + b + a + b + b (終わり)
になりそうな気がして。
0599デフォルトの名無しさん
NGNGうぃ。 %lu は ANSI 準拠です。 unsigned long で使えます。
0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNGあなたもさっさとプログラマやめましょう。
0602デフォルトの名無しさん
NGNGやめるも何も>>600はプログラマじゃないよ。
Cを使えないがためにプログラマになれなかったの。
0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNGint c;
while((c=getchar())!=EOF)
とありますが、何を入力してEOFなのでしょうか?
EOFの値は-1と表示されますが、駄目元で-1と入力しましたが
やはり駄目でした。
申し訳ありませんが教えていただけると嬉しいです。
0605デフォルトの名無しさん
NGNG従って、直接EOFを入力することは不可能
0606デフォルトの名無しさん
NGNG>>604
キーボードのCtrl + Zよ
Windows系ならね
0607デフォルトの名無しさん
NGNGWindowsのコンソールならばCtrl+Z
UNIX、もしくはWindowsでもcygwinならばCtrl+D
0608604
NGNGできました〜!!
ありがとうございます。
0609デフォルトの名無しさん
NGNG(TДT)
0611デフォルトの名無しさん
NGNGOSは何使っているの?
0612デフォルトの名無しさん
NGNG私はプログラミング知識ゼロの超ド素人です。
最近C言語でゲームを作りたいと思いまして、C言語を覚えようと思ってます。
覚えながら作る(作りながら覚える?)ようにしたいんですが、
必要なモノ、あると良いモノがあったらお教え下さい。
あとわかりやすい書籍なんかも教えていただけると幸いです。
0613デフォルトの名無しさん
NGNGコンパイラは>>2-3をみて。
エディタはなんでもいい・・・・と思う。強調表示できれば尚よいけど。
0614デフォルトの名無しさん
NGNG気のせいだかわからんがこういう台詞を聞くのは50回目くらいだな
いや、別にいんだけどね。
0615613
NGNG0616デフォルトの名無しさん
NGNG50回か・・・年季が入ってるね。
俺はまだ10回くらいかな。
0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNG進むにつれて挫折すること請け合いだ。
0620デフォルトの名無しさん
NGNG> float 32ビット (IEEE754)浮動小数点数
> ±3.40282347E+38 〜 ±1.4E-45と0, ±無限大Infinity、非数NaN
つまり float の最大値最小値て幾らなんですか?
C言語勉強しててふと疑問に思ったんですが・・・
上に引用した説明がつまりよくわかりません。
0621デフォルトの名無しさん
NGNG表現したい値による
0622デフォルトの名無しさん
NGNGfloatに最大値、最小値はあまり意味がない。
有効桁数のほうが重要。
0623わーい
NGNGC言語を独学でやるつもりなら、
大きな本屋に行って「〜入門」系の本を立ち読みでもして、
自分でこれなら良いかもって思うくらいのやつが見つかるまで買わない
っていうのが良いと思うけど。最初は本屋で勉強するつもりで。高いしね。
このスレの最初の方に良いのが書いてあるのかもしれないけど…
0624デフォルトの名無しさん
NGNGなにが知りたいのかよくわからないが、IEEE754のはそのとおり。
あなたの処理系がIEEE754を採用しているかは知らん。
そのC処理系での値なら、採用している表現に関わらずfloat.hに
いろいろ書いてある。limits.hの実数版ですな。引用したのがよくわからないとのことだが、旧2種(なんていうんだか
いまだに覚えられない)についてのページをあたってくれたまい。
0625デフォルトの名無しさん
NGNG>±無限大
などといまさら言ってみる。
0626デフォルトの名無しさん
NGNG#define B(s) X##s
#define E C + D
A(E) ;
B(E) ;
でコプリセッサに通すと
XC + D ;
XE ;
になったりする謎の多いbccでした
ちなみに、bccを持ってる人は、これに
#define XC 10
を追加して試した後
#define C 2
を追加して試すと更に謎が深まりますので
暇な方はレッツチャレンジ♪
#define XE A(E)
を追加するのもお勧め♪
0627626
NGNGは、ちょっとした勘違いで、そこに至るまでの
過程を別にすれば不思議はありませんでした(汗)
0628デフォルトの名無しさん
NGNGうまく使えない。
俺はDQNだ、鬱。
どうやったら
Cが書けるのか。
0629デフォルトの名無しさん
NGNG簡単だ
0630デフォルトの名無しさん
NGNGコプリセッサって何?
0631デフォルトの名無しさん
NGNG地球連邦軍が開発したと言われる幻のガンダムのことだ。
0632デフォルトの名無しさん
NGNGなるほど。
0633デフォルトの名無しさん
NGNG"浮動"小数点というくらいだから最大値、最小値ともに表現次第で不定なんだろうな。
よく分からないけど。
0634デフォルトの名無しさん
NGNGけど、ビット数的な制約はあるよね。
0635デフォルトの名無しさん
NGNGうん。
無限ということは絶対にありえない。でもdoubleなら滅多に桁数が足りなくなるという事態は訪れないよな。
long doubleなんて実際に使うのかしら。
0636デフォルトの名無しさん
NGNGsprintf(buf, "%s%s%s", str0, str1, str2);
とした場合、str0〜str2の中に漢字が含まれ、その漢字に%を表すバイトが
含まれていると期待した結果にはならないと聞きました。
漢字を含む文字列を連結する定石を教えてください。
一つずつstrcatするのでしょうか…
0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNG>一つずつstrcatするのでしょうか…
取りあえずこっちの方が絶対安全だね。
こっちの方が早いだろうし
0639デフォルトの名無しさん
NGNGまあ確かに%と同じ文字コードが含まれていたらだめだねぇ・・・・
ひとつずつstrcatするしかないんじゃない?
0640639
NGNG0641デフォルトの名無しさん
NGNG>>607の補足
Ctrl+Z または Ctrl+D を入力することにより、OSがそれ以上の入力を受け付けなくなる。
入力が無くなったため、getchar が EOF を返す。
決して、Ctrl+Z または Ctrl+D そのものが C言語の EOF というわけではない。
0642639
NGNG%が含まれているとまずいのはフォーマット文字列だけだよね?
0643デフォルトの名無しさん
NGNG俺もそう思ったけど取りあえずstrcatは確実だから奨めた。
確認するの面倒かつコンパイラ無い。
0644デフォルトの名無しさん
NGNGキミは嘘を教えられています!要注意!
str0〜2の中に % が含まれていても全然普通に動作します。
それはそれとして、連結後の文字列が buf のサイズより長くならないように注意すれ。
0646637
NGNG0647デフォルトの名無しさん
NGNGそういうときはどうするのが最も良いのでしょうか。
私は、tmpfileしてからそれにfprintfで書き込み、返ってきた値に1足した数分、mallocするという方法を
考えたのですが、はっきり言って無駄が多すぎると思うんです。
0648デフォルトの名無しさん
NGNGstrncat()
0649デフォルトの名無しさん
NGNGそれは単に連結するだけですよね・・・?
0650636
NGNGsprintf(buf, "%s%s%s", "hoge", "%%", "hoge");
すいません、お騒がせしました。
(聞いたというのはたしかC系のスレで見たということなんですが、
どこだったかな…この過去スレか、Win32APIスレあたりだと思うんですが。)
0651デフォルトの名無しさん
NGNGそりゃまずい。例えば%18.16fなどで桁数がどばっと増える時のことを
>>647さんは言っているんじゃない?
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNG> 私は、tmpfileしてからそれにfprintfで書き込み、返ってきた値に1足した数分、mallocする
の部分を、ファイルに書き込まずに初めからmallocすれば・・・?
0654デフォルトの名無しさん
NGNGmallocでいくら確保すればいいかわからないってことでしょ?
文字列だけなら簡単なんだけどね。
0655デフォルトの名無しさん
NGNGサイズくらい分かるだろう
0656652
NGNG確か前にも同じような話してたし、
もし_scprintfが移植性無いんなら使わないようにしなきゃジャン。
0657デフォルトの名無しさん
NGNGWindows95じゃダメみたいだけど
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/vclrf_scprintf_scwprintf.asp
0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNGわぉ!マジでWin95が入ってない!
>>658
たとえば>>657のリンク先の互換性にANSIとあっても、
動かないことはありうるってことですね。
どちらもサンクス。
0660デフォルトの名無しさん
NGNGANSI準拠の関数には_から始まるものはないだろ?
POSIX準拠の関数にもなさそう。
0661デフォルトの名無しさん
NGNGなんだよ_scprintfって。思い切りVC++専用じゃねえかよぅ。
0662デフォルトの名無しさん
NGNG正直言って_scprintfは初めて聞いた。
なんだそりゃ
0663デフォルトの名無しさん
NGNGint size = snprintf(NULL, 0, "%d", i);
char* buf = malloc(size+1);
sprintf(buf, "%d", i);
free(buf);
0664デフォルトの名無しさん
NGNGよってANSIに対する互換性アリ、ってことか?(w
0665デフォルトの名無しさん
NGNGANSI互換と書いてないものもある。
何を基準に決めてるのかはM$に聞いておくれ。
0666デフォルトの名無しさん
NGNG.NETのunmanageみたいなもんかね。
0667デフォルトの名無しさん
NGNGsnprintfもANSI規格ではないが、Windows系では標準のようだ。でも
UNIXではどうなの?
0668デフォルトの名無しさん
NGNGISOなんとかに準拠でしょ?
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNGC99・・・・・時期早々だな
0672デフォルトの名無しさん
NGNGC FAQでも取り上げられていましたね。
あと、かんけいないが、すべからくの意味は
すべて*ではない*です>>658
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNGいいのだ!自分はそんなこと気にしないのだ!
snprintf も uint32_t も __func__ も使いまくり!
可変長配列も使いたいところだが、gccにしか実装されてなくて・・・
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG正常にmain関数を終了した事と同じになると思われ。
0680デフォルトの名無しさん
NGNG>>672
すべからくは*すべて*という意味で、
その後ろに否定の言葉を欲しがるだけでは?
0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNG全てという字ではないよ。
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNG「唯幻論」そのものという感じであるがもっとズサンな所は他にもある。
岸田はケンカについて、こう言う。
「日本人のけんかというのは、すべからく『怨みを晴らす』という形」。
意味不明の日本語だ。
岸田は「すべからく」を「すべて」の高級表現だと思っているのである。
「すべからく」は漢字で書けば「須らく」で、意味は「ぜひ(〜をせよ)」であり、
つまり「すべからず」の反対語である。
早大文学部卒、和光大数授(「教授」の誤植だろうな、単なる)の岸田センセは、
本書の中で日本語の動詞の語尾変化についても論じていらっしやるが、
「ク語法」(高校古文で習う)については御存知ないらしい。
否、センセだけを非難してはいけない。
管見の範囲では、評論家・上野昂志、同・川本三郎、演劇家・唐十郎、
詩人・鈴木志郎康などが「須らく」を「全て」の高級表現と思い込んで使っている。
この四人に共通することは、いわば反権威・反規範主義である。
そういった人たちが文法規範に無知であること自体はかまわないとしても、
「全て」と平易に言えばすむものを、高級表現だと思って誤用する心は
皇室と縁組したがる成金のようで、卑しい。
その卑しさがファシズムを生んだとするのが、単純化して言えば、
心理学者・フロムの説である。
そこまで見すえた時、初めて、個別科学である心理学が、説明原理を支える一柱となりうるのだ。
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNG意味わからんぞ、ゴルァ!
0688デフォルトの名無しさん
NGNGと、スレ違いを受け入れてみるテスト。
0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG国語辞書を引く癖はついてないのかな?
0691デフォルトの名無しさん
NGNGなまじわかってるつもりなだけにはまると痛いよねぇ。
0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNGって配列にしか使えないんですよね。
ポインタだと確か駄目ですよね。
どうも好きになれないんですが良く使われている物なんでしょうか。
0694デフォルトの名無しさん
NGNGという形で使ってるけど、わりとよく使われるのでは?
0695デフォルトの名無しさん
NGNGgetpwnam()とかで確保されたstruct passwdの領域って解放しなくていいの?
0696695
NGNG領域なので、使わなくなっても確保されたままになってしまいますよね。
これがメモリリークというか無駄使いになってしまうように思うんですが。
どうなんでしょう。
0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNGポインタでも使えるけど・・・・?
ところで、括弧をつけるのは型の大きさを得る時だけだよ。
0699デフォルトの名無しさん
NGNGメモリリークとは、動的に確保した領域を指すポインタが失われる事を指すから、
静的な領域ならメモリリークとはならないと思うよ。
0700デフォルトの名無しさん
NGNG領域なので、使わなくなっても確保されたままになってしまいますよね。
これがメモリリークというか無駄使いになってしまうように思うんですが。
どうなんでしょう。
0701デフォルトの名無しさん
NGNGint *p;とあって、
sizeof(p);
sizeof(*p);
の意味は違うよ。注意。
0702デフォルトの名無しさん
NGNGをいをい、それがメモリリークだとしたら、実際のプログラムのほとんどが
メモリリークだらけになってしまうじゃないか。
0703デフォルトの名無しさん
NGNGメモリリークは開放できなくなった領域のことでしょ?
mallocで得た領域へのポインタをfreeする前に見失うとか。
0704デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNGそれがどうしても無駄に感じるのなら、文字列はすべてファイルに入れておき、
必要になったらmallocした領域に読み込み、不要になったらすぐfreeするしか
ないぞ。それこそ時間の無駄。
0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNGああ、答える代わりに、揶揄していたのか。
0709デフォルトの名無しさん
NGNG質問してる人にその内容で質問返しするともっとわかりやすかったかも。
0710695
NGNGstaticな領域の解放なんて考えなくていいんですね。
0711デフォルトの名無しさん
NGNGそうそう。でも一度も使わなかったら警告を出すコンパイラがあるから、
一度は使うようにね。
0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNGげっち
0714デフォルトの名無しさん
NGNGゲットチ(藁
0715デフォルトの名無しさん
NGNG0716デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNG{
char temp[MAX];
int i=0;
while((fscanf(fp,"%s",temp))!=EOF)
{
data[i]=malloc(strlen(temp)+1);
if(data[i])
{
strcpy(data[i],temp);
}
i++;
}
}
なぜmallocでエラー?
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGcollect2: ld returned 1 exit status
gcc でコンパイラオプションを
-O2
にするとリンクで上のエラーが出て、
-O3
だと成功します。理由はなんでしょうか?
0725デフォルトの名無しさん
NGNG一文字だけ。
0726デフォルトの名無しさん
NGNGだとすると、
*data[i] = malloc();//つぅかキャストしてやれよ。
なのかなぁ?
0727デフォルトの名無しさん
NGNG>>724
sqrt()の返り値を使っていない、とか。
あるいはgcc -O3だとsqrt()が定数の場合はコンパイル時に
解の定数に置き換えている、とか。
0728デフォルトの名無しさん
NGNG計算部分は
bunsan = sum / (term -1);
hensa = sqrt(bunsan);
こんな感じなので定数に最適化はされないはずなのですが。
もう少し色々実験してみます。
0729デフォルトの名無しさん
NGNG{
char a[10]="ohayou";
char *pa;
pa="oha";
printf("%s",a);
printf("%s",pa);
}
はできるのに
main()
{
char b[10];
b="ohayou";
printf("%s",b);
}
はできないのはなんでですか?
0730デフォルトの名無しさん
NGNGだってアレ初期化時のみに有効だし。
初期化終わればただのBYTE型の配列と等価。
0731
NGNG0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNGぷりんとふ
いんと
口に出すときは
ぷりんとえふ
いんと
0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNG0736デフォルトの名無しさん
NGNG一文字だけ。
0737デフォルトの名無しさん
NGNG>>731の周り(もしくは本人)に
「ここのアイエヌティー変数が変なんだよ。ここをアイエヌティーのポインタ変数にしなくちゃ。」
と調子こいているバカがいるのでしょう。
0738デフォルトの名無しさん
NGNGchar a[]="oha";は、char a[]={'o','h','a','\0'};を手っ取り早く書くための特例。
0739デフォルトの名無しさん
NGNGインテジャー
0740デフォルトの名無しさん
NGNGインテジャーと読む人がいると思うけど・・・
俺もたまにそう言う。
0741デフォルトの名無しさん
NGNGputchar('\b');
できるとは限らないけど。
0742デフォルトの名無しさん
NGNG0743729
NGNG>>738
ええと、char a[10]="ohayou"; ていうのが特例であって
pa="oha"; やb="ohayou"; は
配列の先頭アドレスを代入しているという事ですか?
bはポインタじゃないからできないと。
""を使うと配列の宣言なしに配列が使えるわけですか?
0744デフォルトの名無しさん
NGNGchar型の配列は主として文字列を表すのに使うから、配列宣言時の初期化のみ、
="aaa"が={'a','a','a','\0'}と同じものだと見なされるの。あくまでも特例。
それ以外の時は文字列リテラルの先頭アドレスを代入することになるので、
配列名には代入できない。
0745729
NGNGありがとうございました。
もっと勉強します。
0746744
NGNG0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNG一行の文字数がMAX - 1文字を超えているとか。その場合は
fgets(temp, MAX, fp);で。
0749デフォルトの名無しさん
NGNG改行してなかったら、printf("\b \b");
でいけると思う。
0750デフォルトの名無しさん
NGNG0751750
NGNG0752デフォルトの名無しさん
NGNGi = i;
i = i + 1;
って解釈されないの?それ。
0753デフォルトの名無しさん
NGNGそうとは限らない。=演算子の右辺と左辺はどちらを先に評価しても構わない
から、i = i;となってもよい。
0754デフォルトの名無しさん
NGNGprintf("\t\b\b");
0755デフォルトの名無しさん
NGNGOSが壊れたりHDDから煙が吹いたりする処理系を出したとしても
とりあえずANSI準拠、K&R準拠をうたうことはできます。
0756デフォルトの名無しさん
NGNG書かれた書籍や、Webサイトありませんか?
0757デフォルトの名無しさん
NGNGなんでここで聞くんじゃーー!!
0758デフォルトの名無しさん
NGNG>Regetなどの最近のダウンローダーのように、レジュームや、ファイルの分割ダウンロードによる高速化について
曲がりなりにもプログラマなら推測できるだろ。
0759デフォルトの名無しさん
NGNGウェブサイトでも時々無意味に画像をスライスしているところをみかけるが。
0760デフォルトの名無しさん
NGNGメリット・デメリットなどがありましたら教えてください。
0761デフォルトの名無しさん
NGNGメリット:高速。
デメリット:文字列操作が大変。可変長文字列対応してないし。
0762デフォルトの名無しさん
NGNGスクリプト言語に比べてインタープリタを起動しないのでその分の負荷は減る。
0763デフォルトの名無しさん
NGNGサーバがこちらの通信速度未満に帯域制限している
場合有利。
0764デフォルトの名無しさん
NGNGああ、なるほどね。
0765デフォルトの名無しさん
NGNGでもそれは機能が少ないからのような気がする・・・・
0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNG無料ならほとんど使えない。
0768767
NGNG0769デフォルトの名無しさん
NGNGとくとくはtelnetでcc使えたはず。
0770デフォルトの名無しさん
NGNGCだとシステムの弱点をついたウィルスを簡単に作れるので、鯖会社も
嫌がる罠。
0771デフォルトの名無しさん
NGNGというか、コマンドを実行できるようにするのが嫌なんでしょ。
コンパイルにはコマンド実行が必須だからねぇ。。
0772デフォルトの名無しさん
NGNGadminの権限を乗っ取ったらやりたい放題だもんね。
0773デフォルトの名無しさん
NGNG頼む、rootと言ってくれ。。。
0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNGUNIX鯖とは限らないし〜と言ってみるテスト。
Win鯖なんか使いたくないけどな。
0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNGバイナリファイルにデータを入力する際に
ソートして入れたいんですが(比較するのは入っているデータ
バイナリファイル上でひとつずつ比較していくのと
比較するデータとされるデータをメモリに格納してから
計算するのではどちらが効率的なのでしょうか?
0780デフォルトの名無しさん
NGNGファイル + に
だと出力するものだと思う。
0781デフォルトの名無しさん
NGNG0782やばいっすよ!!
NGNGこれはif文を使って作るものなんですか??
0783デフォルトの名無しさん
NGNGつぅかお前は誰だ?
0785デフォルトの名無しさん
NGNG0786デフォルトの名無しさん
NGNGそんなお前に大ヒントだ。
クイックソートと言うキーワードで検索だ!
これで友達よりlogx分速いプログラムが書けるぞ!
0787デフォルトの名無しさん
NGNGメモリ領域があまりとれないなら、データを順方向に探索するだけでソート
できる、マージソート法というのがあります。一時的にランファイルという
作業ファイルを作成する必要がありますが、ほとんどメモリを食わずに
クイックソートと同じオーダーでソートできます。
ただし、ファイルの入出力を伴うので、ファイルキャッシュが効かないと激遅
になりますが。
0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNGそれから、平均的にクイックソートより遅いです
唯一の利点は安定である事だけ。
0790デフォルトの名無しさん
NGNG入力時に並び換えろ
0793デフォルトの名無しさん
NGNGアホか。基本的な事だぞ。
0794デフォルトの名無しさん
NGNGもちろんメモリに全部読み込んでqsortかけるのが多分一番速いですね。
0796COMPILER
NGNG0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNG0799やばいっすよ!!
NGNGプログラムは高得点あきらめて英語じゃ。
ということで世話になりました。テスト終わったらまた来ます。
0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNG当時はテストの点につながらなかったからなぁ。
あーでもあれか。今はテストの点につながるから
逆にプログラミングが苦痛になってたかも。
0802COMPILER
NGNGMicosoft C コンパイラの入手方法があれば教えてください。
0803デフォルトの名無しさん
NGNGそんな3つでクイックソートなんてしても得られるのはオーバーヘッドだけ・・・。
0804デフォルトの名無しさん
NGNG夢の島をひたすら探索するとか
0805デフォルトの名無しさん
NGNGMS-C7.0('94)あたりで終わってたような。
0806デフォルトの名無しさん
NGNG持ってるけど君とは連絡手段が無いので無理だな。
開き直ってMXとかで探せや。
0807デフォルトの名無しさん
NGNGしかし、こんな骨董品エムエクースでも落ちてないと思われ
0808デフォルトの名無しさん
NGNGM$は諦めてBC++Suiteでも拾いなされ。BC++5.02Jは16ビット対応だぞよ。
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNGCでRDBのプログラム作ってます。
そこで、射影はできたんですけど選択、結合が作れません。
助言ください!よろしくおねがいします。
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNGWinME DDK を落としてくれば 16bit な MS-C が手に入る。
というか Micosoft って何よ。
0813デフォルトの名無しさん
NGNG0814612
NGNG今のところ最高の目標としては「P/ECE」のソフトを作りたいと思ってます。
皆さんの助言をもとに頑張ります。
0815デフォルトの名無しさん
NGNGDigital Mars
Watcom
も16bitのコンパイラあるし。
それから米BorlandのサイトにTurboC 2.01が落ちてるよ
ファイル名はTC201.zipかな
0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNGなんかコツのようなものってあるんですか?
0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNG呼び出し側にポインタを返すときつかう。
(関数へのポインタとかstaticな領域とかOSが割り当てた領域など
アドレス不変なポインタを返す)
0821_
NGNGこれらの言葉意味って人によってまちまちですよね。
0822デフォルトの名無しさん
NGNGぼんようじゃない。汎用。は・ん・よ・う
0823_
NGNG汎用系でしたね。
特定のプログラムを組み込んで、ソフトを作ることですか?
0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNGじゃあどこで聞けばいいんだよ!
個簿留スレか?
0826デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNGム板なら初心者質問スレぐらいか
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNGオープン系→UNIX、Linux、Windows
0831デフォルトの名無しさん
NGNG逆ギレ?
0832デフォルトの名無しさん
NGNGint num=100;
このnumをmesに文字列としていれたいのですが,一番適切な方法とはどういうのでしょうか?
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNG833ヲイヲイ
0835デフォルトの名無しさん
NGNG#include <stdio.h>
sprintf(mes,"%d",num);
Hyouji( 3, Onigiri.irura, 62, 21 );
Hyouji( 3, Onigiri.kaiware, 12, 21 );
Hyouji( 3, Onigiri.ninnniku, 1, 21 );
こういう場合
Hyouji( 3, Onigiri.uni, 26, 21 );
Hyouji( 3, Onigiri.irura, 62, 21 );
Hyouji( 3, Onigiri.kaiware, 12, 21 );
Hyouji( 3, Onigiri.ninnniku, 1, 21 );
こうしますか?
0837デフォルトの名無しさん
NGNGウニおにぎりとは贅沢な!!!
0838デフォルトの名無しさん
NGNGどう違うの?(^_^;)
Hyouji( 3, Onigiri.irura, 62, 21 );
Hyouji( 3, Onigiri.kaiware, 12, 21 );
Hyouji( 3, Onigiri.ninnniku, 1, 21 );
こういう場合
Hyouji( 3, Onigiri.uni, 26, 21 );
Hyouji( 3, Onigiri.irura, 62, 21 );
Hyouji( 3, Onigiri.kaiware, 12, 21 );
Hyouji( 3, Onigiri.ninnniku, 1, 21 );
こうしますか?
0840デフォルトの名無しさん
NGNGワラタ
0841デフォルトの名無しさん
NGNG0842838
NGNG私はしないな。
0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNG名前つけるかtypedefしろよ(ワラ
なんで名前をつけないんだよ(ワラ
0845デフォルトの名無しさん
NGNGなんとなくわかった。
引数の列をそろえたいのね
0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNG構造体がイパーイあるからです
よろしくおねがいします
0848デフォルトの名無しさん
NGNGいかに無駄な努力かということがよくわかるな。
>843
名前くらいつけてやれ。減るものじゃないし。
0849デフォルトの名無しさん
NGNGんで、名前が無い。そうなんだろ?
ネタは読めてるっつーの。
0850デフォルトの名無しさん
NGNGunion NAMAE{
struct{
int i;
char str[2222];
} hensu;
};
これでどうだ。
共用体の中に入れているから関数に渡せるぞ。
0851デフォルトの名無しさん
NGNGvoid *で渡して、型キャストさせる。
0852デフォルトの名無しさん
NGNG型名は?
0853デフォルトの名無しさん
NGNGstruct {
char type_name[0xffffffff];
void* p_struct;
} Type;
これでどうだ?
0854デフォルトの名無しさん
NGNG俺もさ、関数が1000個とか2000個とかあると、こいつらにいちいち名前つけずに
すめばなーと思うことはあるよ。でもな、世の中そんなにうまくできてねーんだ。
名前つけなきゃ関数を区別する手段がないんだよ。
構造体だって同じことだ。
名前自動生成ツールでも作るなり、連番で名前付けるなりしてがんがれ。
なお、英和辞典の見出し語を頭から順番に使ってゆくという方法は、
予約語等とぶつかる可能性があるのでおすすめできない。
0855デフォルトの名無しさん
NGNG0856デフォルトの名無しさん
NGNG関数ならかんすうポインタでいいじゃん。
(*func[2000])();
0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNG「xより大きいなら非ゼロを返す関数」
(xは実行時に決まる)とか、
「行のn番目のフィールドを比較する関数」
(nは実行時に決まる)とか、動的に関数を
作りたいことがあるけど、Cなら名前つけざ
るを得ないなー。
関数型言語なら無名関数が作れるし、
オブジェクト指向言語ならインスタン
スを使えば良いけど。
0860デフォルトの名無しさん
NGNG「Cでは NULL == (void *)0 とは限らない」だそうですが、そうなんですか?
0861843
NGNGじつは僕もハナからそれがいちばん強力な解だとは思いますが移植性が限り無くゼロなのでためらいます。ふと、みんなはどう考えるかと思って。
すみませんヒマつぶしノ質問だとおもって忘れてください>答えてくれたひとたち
0862デフォルトの名無しさん
NGNGvtblっぽいのもたせて全部オブジェクトにするって手もある。
メンバを動的に追加する(この場合メンバに名前かIDをつける必要があるが)とか、
DBにデータを全部もたせてアクセスメソッドだけを提供するのも、有りだとは思う。
マクロを多用すれば品雑・定型的な処理も楽に書ける場合があるしね。
数が多いとはいっても、それぞれに意味はあるんだろう?
0863342の初心者
NGNGまたまた質問です。
下のようなプログラムを作ってキーボードの入力をアスキーコードに変換して確認してみました。
半角英数記号はいいのですが、バックスペースやCtl + Cのようなものはどのようにして扱われているのでしょう?
下の場合、右矢印→もバックスペースも8として出力されてしまいます。
#include <stdio.h>
main()
{
int i;
for(;;) {
i = getch();
printf("%d\n", i);
}
}
0864デフォルトの名無しさん
NGNG過去ログ読んでくれ。
3スレに一度はその手の論争が起きてるから。
0865デフォルトの名無しさん
NGNG誹謀中傷になってて笑えない。
0866デフォルトの名無しさん
NGNG構造体を malloc で作って、そのポインタを渡すのは?
参照渡しではなくなってしまうけど、渡せるよ。
でも、移植性とか可読性考えると、無理にそんな方法取るのは馬鹿かと・・・アホかと・・・(^^;
ネーミングは本当に大変だけど、考えてあげようよ?
0867デフォルトの名無しさん
NGNGじゃあ私のソースを見ても笑わないでね(;_;)
0868デフォルトの名無しさん
NGNG>>863
getchってなんじゃ〜
getcharだろ〜
(getchはMS-DOS専用の文字入力待機関数じゃなかった?入力した文字は読みとらなかったような・・・・)
0869デフォルトの名無しさん
NGNGWin32でもサポートはされている。移植性は無いが。
0870デフォルトの名無しさん
NGNGcursesにもgetchあるよ〜ん(by UNIX
# ローカルっちゃぁローカルかもしれんけどな
0872869
NGNGcursesかー。そりゃ知らんかった。FDcloneだと
・ttyからのread(2)でgetch()
・stdinのselect(2)でkbhit()
とかやってたから自前で実装するしか無いのかと思ってた。
0873デフォルトの名無しさん
NGNGcursesのgetchは端末から文字を得る関数
>>868のそれとは振る舞いは別物
呼び名が一緒ってだけですな
0874デフォルトの名無しさん
NGNGWindowsとかだとgetcheだよね?
0875デフォルトの名無しさん
NGNGfgetとかfreadとか利用して読んだりできますか?
0876デフォルトの名無しさん
NGNG何のためのマッピングだと小一時間ほど問いたい。
0877デフォルトの名無しさん
NGNGそうですね
気になってヘルプ引いたらgetchとgetcheは近似なようです
getch - キーボードから一文字読み込む エコーバック無し
getche - キーボードから一文字読み込む エコーバック有り
注・両方ともWindows conio関数のはなしです
0878デフォルトの名無しさん
NGNGMS-DOS で、キーボードからの入力が一定時間ないと
終了するプログラムを作成したいのですが、やりかたが分かりません。
どなたか分かる方、教えていただけないでしょうか?
0879デフォルトの名無しさん
NGNGint p = 1;
char s;
s = (char)p;
上みたいなことは出来ませんでした。
atoiのようなint型をchar型に変換する関数ってないのでしょうか?
0880デフォルトの名無しさん
NGNG別にそのコードで出来るんじゃない?
0881デフォルトの名無しさん
NGNGs = p + '0';
みたいなことがやりたいのか……?
0882デフォルトの名無しさん
NGNGC++使え。
s = char (p);
ってな具合にint型をchar型に変換するchar()関数がある。
0883879
NGNGtypedef struct{
char code[15];
char name[30];
}syouhin;
syouhin data[50];
↓main関数外にて
int i;
for(i=0;i<50;i++){
(data + i)->code[0] = ()i;
}
大体やりたいこと書くとこんな幹事です。
構造体だからまずいとかですかね?
0884879
NGNGC++は使えないんですよ。
事情が合ってLinuxでC言語使ってmす。
もしかしてLinux板で聞けってやつですか?
0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNGつーかできねーって言い張るんならその根拠(エラー、出力内容とか)を説明しろよ。
0887256
NGNGだろ。↑文字列が閉じてない。
0888デフォルトの名無しさん
NGNGdouble re;
double im;
} complex;
complex SUMofCOMP(x,y)
complex x,y;
{
complex t;
t.re = x.re + y.re;
t.im = x.im + y.im;
return(t);
}
main()
{
double a,b;
complex c1,c2,c3;
scanf("%f%f",&c1.re,&c1.im);
scanf("%f%f",&c2.re,&c2.im);
c3 = SUMofCOMP(c1,c2);
printf("%f,%f\n",c3.re,c3.im);
}
これを実行して適当に値を入力すると
Floating point exception (core dumped)
が、返って来る。
なぜじゃ・・・
0889デフォルトの名無しさん
NGNG0890888
NGNG%lfにすればできるかも。
鬱死
0891デフォルトの名無しさん
NGNGcomplex x,y;
{
...
}
懐かしいような気が
0892デフォルトの名無しさん
NGNG>>887がほしかった答ならば、iを10進表記した文字列を取得するには?
と、きけばよかったようですな。
元の質問をそのまま素直に解釈するとたしかにああいう答が返ってくる。
ところで>>882のは関数じゃなくて、C++のキャストの記述法だったと思うが?もちろんC++でも従来の記述法も可能。
0893デフォルトの名無しさん
NGNGよく分からんのだけど>>882はcharのコンストラクタじゃないかな
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNGただの cast。
0897デフォルトの名無しさん
NGNG関数ないし手段がありましたらぜひとも教えてください。
0898デフォルトの名無しさん
NGNGstdin開いてメモリマッピング。
0899デフォルトの名無しさん
NGNGそういえば、stdin とかは FILE 構造体でしたね。
ありがとうございます。
0900デフォルトの名無しさん
NGNG今日中に1000に逝くぞ!
0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNG筆でかり裏の辺りをちょこちょことしたりして、
いろりろ遊びたい。。
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNGともっちの棒、ぺろぺろしたい。
0907デフォルトの名無しさん
NGNGどうせ1000ゲットまでいいかげんな書き込みしかねぇんだろうが
0908デフォルトの名無しさん
NGNGともっちにきたないところなんてないんだから。
おじさんがともっちのすみからすみまでぺろぺろしてあげるからね。
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNGきもっ!
0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNGきもいとかいうな!
ともっちのことを愛している気持ちを純粋に表現している
だけじゃないか!
0915デフォルトの名無しさん
NGNG激しく同意。
0916デフォルトの名無しさん
NGNG気分になれるから不思議だ。。
0917デフォルトの名無しさん
NGNG一度みんなでそういうことを本当に
やってみたいね。
0918ともっち
NGNGこのたび僕はプログラミング言語というのを覚えてゲームでも
作ってみようかと思ったんですけど何をすればいいのか全く分かりません。
いろんな言語があるらしいんですが何かおすすめはアリマセンか?
それからよろしければ一から教えてもらえないでしょうか
0919デフォルトの名無しさん
NGNGこっちが本当のともっち!
0920デフォルトの名無しさん
NGNGやっぱり男の子が好きなんだよね。
日頃のたまりに溜まった願望がこうして出てきちゃう。
ともっちは酷い人です・・・
0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNG外見や考え方にはまだ幼さがのこっているよね。
そういうあどけなさがだーい好き!
0923デフォルトの名無しさん
NGNG次スレも使ってください。
「ともっち」というハンドル。
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNGスレをのっとることはあるかもしれませんが、
スレを荒らすことはやりません。
なのでこんどもちゃんと「ともっち」をしようしてくださいね。
0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNG一方で炉利は全く持って駄目だな。
0928デフォルトの名無しさん
NGNGともっちのことを考えてたら自分がゲイであることを自覚
しだしたんだけど。やっぱりともっちみたいなかわいいこがいいな。
0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNG俺は友達のほうよりともっち自身じゃなきゃだめだ!!
0933デフォルトの名無しさん
NGNG0934デフォルトの名無しさん
NGNGURLは?
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG高校生関連の書き込みは殆どそうじゃん!やれやれ
0939デフォルトの名無しさん
NGNG俺がたてていいのなら、ゲイに染めたやつを立てるぞ!
0940デフォルトの名無しさん
NGNGだからこっちでもゲイようのスレの需要があるんだよ。
0941デフォルトの名無しさん
NGNG0942デフォルトの名無しさん
NGNGプログラム板に、ゲイ用のスレ!!!
0943デフォルトの名無しさん
NGNGともっちの話で盛り上がっているときに
そういう水を差す話は止めてください。
そういうのは別のところでやってください。
0944デフォルトの名無しさん
NGNGこんなのでどうでしょうか?
0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNG普通のスレを乗っ取るのはやめてくれよ。
0947デフォルトの名無しさん
NGNGそうね、少し行き過ぎたかも、反省します
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG0950デフォルトの名無しさん
NGNG0952C言語
NGNG外部変数の定義、再定義ファイルをそれぞれ作ってインクルードするのと
#ifndefを使って再定義をするのとどっちがかっこいいですか
プロフェッショナルな方の意見をお聞かせ下さい
初心者の質問で恐縮です。
0953デフォルトの名無しさん
NGNG再定義?
変数の定義は一度しか出来ません。
宣言と定義のことだったらC FAQ嫁姑。
0954C言語
NGNG外部変数dす
ひとつのファイルには
#define MAX 40
float A[MAX];
ってやって残りのファイルには
#define MAX 40
extern float A[MAX];
ってやりたいってことです。
0955デフォルトの名無しさん
NGNG0957デフォルトの名無しさん
NGNGゴルァ!!
0958デフォルトの名無しさん
NGNGどう使うつもりなの?
0960C言語
NGNGこんな感じです
- sample.h -
#ifndef _sample_h
#define _sample_h
int x;
#else
extern int x;
#endief
0961デフォルトの名無しさん
NGNGヘッダーファイルの中じゃなくて、.cファイルの中で宣言しろって。
0963デフォルトの名無しさん
NGNG#define EXTERN extern
#else
#define EXTERN
#endif
とやり、すべての外部変数にEXTERNとつけておく。
main()のあるファイル(本当はどれか一つならよいが)に
#define EXTRN
と書く。
0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNGC言語でもクラスごっこが出来る。w
しかし、時代は関数ポインタを異端だとし始めている罠。
0966デフォルトの名無しさん
NGNGいままでの僕がアホみたいに思えました!なにしろ別のファイルから別のファイルの変数にアクセスする方法を知らなかったのですから!
クラスから他のクラスを参照するときなんて、いちいちSetメソッド作ってポインタをメンバに保存してたんですよ!
あーもう!
0967デフォルトの名無しさん
NGNGその勢いでC++の仮想関数を学習してしまうとよい罠。
0968デフォルトの名無しさん
NGNG一歩間違うと収集付かなくなるぞ。
0969デフォルトの名無しさん
NGNG割り込みベクタみたいなテーブルがあるんでしたっけ?確か。
0970デフォルトの名無しさん
NGNGいやあ。。オブジェクト指向はほとんど学習しましたよ。当然ポリモも。しかし本当に僕は基本的なところができてなかったんですねえ。
0971デフォルトの名無しさん
NGNGいや、知らない方が良かった、という事も。(汗
0972デフォルトの名無しさん
NGNGで、ポインタと配列は同じもの、という誤解のもとに
a.c:
int a[10];
b.c:
extern int *a;
とやって、悩むわけね。
0973デフォルトの名無しさん
NGNGポインタが親のクラスを使っていても、実際に指しているクラスが派生
クラスならば、オーバーライドされた派生クラスの関数を自動的に
呼び出してくれるよ。これがないとポインタは全滅してたかも。
0974デフォルトの名無しさん
NGNGまさか!ぼくが読んだポインタの本はそんな勘違いを起こしませんよ。
しかしその場合、どうすればいいのかな?両方ともa[10]で宣言すればいいかな。
0975デフォルトの名無しさん
NGNGこれってどういう意味なんですか?
0976デフォルトの名無しさん
NGNG>ぼくが読んだポインタの本はそんな勘違いを起こしませんよ。
いや、お前が・・・
0977デフォルトの名無しさん
NGNG00000000 00000000 00000000 00000001
↓
00000000 00000000 00000000 00000100
0978デフォルトの名無しさん
NGNG戻りすぎだろ。。。汗
975か?
0979デフォルトの名無しさん
NGNGネタなのかポカなのかマジなのか分からん…
0980デフォルトの名無しさん
NGNGhttp://pc.2ch.net/test/read.cgi/tech/1021484276/l50
0981980
NGNG削除依頼に出しました。正しいスレは
http://pc.2ch.net/test/read.cgi/tech/1021459016/l50
0982デフォルトの名無しさん
NGNG0983デフォルトの名無しさん
NGNG0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNG俺のモノまで反応しちゃったよ・・・(*-_-)
0986デフォルトの名無しさん
NGNGおまえはextern〜だけでなく、変数宣言までヘッダーファイルの中に書き込むのか?
0987デフォルトの名無しさん
NGNGやっぱり体のほうは正直なんだね。
いっしょにきもちよくなろう!!
0988デフォルトの名無しさん
NGNG詳しく分かるように教えてあげるよ!
0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNG議論の場になってしまっていて、
ともっちのこと好きだ−!
という系統の書き込みがやりづらいんですけど、、、、
0992デフォルトの名無しさん
NGNGいろんなスレに書き込もう!
0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNGハァ?
0997 ◆inFbM64o
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNGともっちだよ!
1000デフォルトの名無しさん
NGNGみなさん今後も指導よろしくおねがいしまーす!
by ともっち
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。