C言語なら、俺に聞け! <30>
レス数が1000を超えています。これ以上書き込みはできません。
0001ロートルしょーえい
NGNGいろいろな言語を極めたが、一番手になじむのはCだった。
Cのことなら全てわかるから、疑問な点があったら漏れに聞け。
今なら平成デフレ記念3割引奉仕中だ。
スケジュールは真っ白だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。あと、至急仕事をください。
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/tech/kako/1022/10229/1022961238.html
前スレ <29> http://pc3.2ch.net/test/read.cgi/tech/1029605182/
コンパイラ、過去ログなどのリンクは>>2-5 あたり
0002デフォルトの名無しさん
NGNG28 http://pc3.2ch.net/test/read.cgi/tech/1028495798/
27 http://pc3.2ch.net/test/read.cgi/tech/1027160374/
26 http://pc3.2ch.net/test/read.cgi/tech/1026048820/
25 http://pc.2ch.net/tech/kako/1024/10249/1024918442.html
24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html
23 http://pc.2ch.net/tech/kako/1023/10230/1023024817.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
20 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
19 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
18 http://pc.2ch.net/tech/kako/1020/10202/1020260813.html
17 http://pc.2ch.net/tech/kako/1019/10193/1019372139.html
16 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
15 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
12 http://pc.2ch.net/tech/kako/1012/10123/1012348974.html
11 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
10 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
7 http://pc.2ch.net/tech/kako/1003/10034/1003418249.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
3 http://piza.2ch.net/tech/kako/989/989929288.html
2 http://piza.2ch.net/tech/kako/979/979529893.html
1 http://piza.2ch.net/tech/kako/967/967985026.html
0003デフォルトの名無しさん
NGNG乙
もう用済み、逝ってよし!
0004デフォルトの名無しさん
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
【注意】
Cmachineは一般的なCと挙動が違いすぎるので動作の保証はできません。
まともな処理系を使いましょう。
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGC言語でBMPとかJPGファイルを読み込んだときに
色情報とか解像度とかの情報はどこから取るのよ?
書籍でグラフィックを扱うものはすべて独自のインクルードファイルを
用意してるんだがもし自分で標準インクルードファイルだけで処理するなら
どうすればいいの?
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGおまえら先輩がんばってる!未来のおまえ
http://pc.2ch.net/test/read.cgi/prog/1030262495/
0010デフォルトの名無しさん
NGNG自分で構造体定義するとかアライメントが心配なら
配列にしてアクセス用のマクロを定義すればいいじゃん
で、ふつーそういうのは複数のソースから使いまわすから
独自のヘッダファイルを作成したくなる
誰だってそうする俺だってそうする
0011デフォルトの名無しさん
NGNG0012サンプル盛り沢山
NGNGそんな貴方のために、できました⇒無料サイト♪
近親相姦・SM・人妻あります!!
http://www.traffimagic.com/WIPE7MMLZCA/comein/JPMVS
0013デフォルトの名無しさん
NGNGBCCなら>>4にあるだろ
0014デフォルトの名無しさん
NGNG2ちゃんでのウイルスっぽいのを含んだ文章で
ノートンが警告を出しまくってやぱいんですけど
どうすれば良いんですか?
0015デフォルトの名無しさん
NGNG激しくスレ違い。逝ってよし!
001614
NGNGこれってC言語じゃないんですか?
0017デフォルトの名無しさん
NGNG001814
NGNGプログラムが関係していそうだからです!
0019あ
NGNGなにをえらそうにw
おまえが行くべきところは
初心者板だ。
さっさといけ。
0020デフォルトの名無しさん
NGNGここに行け。
http://pc.2ch.net/test/read.cgi/sec/1025872269/l10
そして二度と帰って来るな。
0021デフォルトの名無しさん
NGNG俺に聞け!!とか調子の良い事いって
ちょっとぐらい違う事聞いたって気前良く教えてくれたっていいじゃないか?
心の狭い人間は先生嫌いです。
002214
NGNGうるせースレ違いな質問は厳禁なんだよ!
氏ね!
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNGたしか>>1に書かないと目に触れないから書けという流れだったような
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG>>9
0031デフォルトの名無しさん
NGNG>>9
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNGどっちかは俺のだよ。
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG常に8バイトにアラインメントできませんかね・・・
003635
NGNG0037デフォルトの名無しさん
NGNG構造体のアライメントを設定できるが、それではダメなのか?
003835
NGNG既定で8バイトになってますね。
ありがとうございました
0039デフォルトの名無しさん
NGNGmain() 関数の中に、自分の定義する関数以外ほとんど何も書かないプログラムって問題あるのですか?
例えば、
main(){
int cou[100]; char buf[256], buf2[256], buf3[256];
------------変数定義---------------
buf=mykansuu(cou[1],cou[2],cou[3],cou[4],cou[5],cou[6]);
buf2=mykansuu1(cou[1],cou[2],cou[3],cou[4],cou[5],cou[6]);
buf3=mykansuu2(cou[1],cou[2],cou[3],cou[4],cou[5],cou[6]);
}
char mykansuu(int i, int ni, int san, int yon, int go){
----------処理-----------
}
みたいな大量に変数を引き渡すプログラムと、自分で作った関数の中に何でも定義してあるプログラム。 ↓
main(){
int i; char c;
i=mykansuu();
c=mykansuu2();
}
char mykansuu(){
int no,cou=0,chu[1000],chunum=0;
FILE *from3,*temp4,*to3;
char list1[256],moji[256]="",kan[256]="",sho[20][256][50],ALLOCheader=0,BIOSheader=0,CONIOheader=0,CTYPEheader=0,DIRheader=0,DOSheader=0,GRAPHICSheader=0,STRINGheader=0,MATHheader=0,MEMheader=0,PROCESSheader=0,STDIOheader=0,STDLIBheader=0,TIMEheader=0;
--------------処理--------------
}
私は再利用が楽だから後者の方を多用しているのですけど、如何せんプログラムの行数が長くて
あまり評判がよくありません。 ご意見お聞かせください。
0040デフォルトの名無しさん
NGNGは??
0041デフォルトの名無しさん
NGNGていうか関数の作り方が…
mykansuu関数の中では何だ、配列を使ってないのか?
ひょっとして
char mykansuu(int *hoge);
とかじゃなく
char mykansuu(int a, int b ,int c ,int d, int e, int f);
とかなのか?
004239
NGNG推測でいうな。
そんな馬鹿じゃないもん
0043デフォルトの名無しさん
NGNGでも、そんな引数の渡し方してるように俺にも見えるが?
0044本物の39
NGNGそのマサカ(・ω・;;)デース。
って、細かいところに突っ込まないでくれ。 ヘタレですから。
で、結局、どっちが良いんでしょうか?
0045デフォルトの名無しさん
NGNGあるモジュールにモジュール内の他の関数へのポインタを返す関数があって、
このモジュール内の他の関数は、外部からは必ずこの関数を介して
使われるようになっています。
この時、ポインタとして返される関数はstaticで宣言してもいいんでしょうか?
0046デフォルトの名無しさん
NGNGそれで、いいんでない?
逆にスタティックにしないと、外部から遠慮なく呼ばれちゃうし。
0047デフォルトの名無しさん
NGNG良い。
というか隠蔽が目的ならそうすべき。
0048デフォルトの名無しさん
NGNG呼ぶ側の関数から引き渡されなくても、
呼ばれる関数の中で解決できるものは、
呼ばれる関数の中でのみ扱うべきです。
0049本物の39
NGNGやった〜〜。 私は正しかった。
毎回、関数を呼びたびに定義行が3行くらいあるせいで、評判は悪かったんですけど、
やっぱりこっちのほうがいいんですよね。 ありがとうございました。
0050デフォルトの名無しさん
NGNG0052(`・ω・´) b ビシッ!!
NGNGいるって本当なんですか?
C++使わないで?
嘘でしょ?すごく面倒くさくないですか?
0053デフォルトの名無しさん
NGNG>嘘でしょ?すごく面倒くさくないですか?
面倒ですw
0054デフォルトの名無しさん
NGNGint APIENTRY WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
return MessageBox(NULL,"俺がWindowsアプリだ","sage",MB_OK);
}
0055デフォルトの名無しさん
NGNGbccだと()の中を消さないと動いてくれない予感。
0057デフォルトの名無しさん
NGNG昔はいっぱいいたよ
0059デフォルトの名無しさん
NGNG型はいるでしょ
0060デフォルトの名無しさん
NGNG使って書いてなかったか?
遠い記憶なんで忘れたんだが、C++じゃなかったと思うが。
今もそんな感じで書けるはず。
間違ってたら訂正してくれい。
0061デフォルトの名無しさん
NGNG疲れきって誰もツッコミたくないだけだと思うよ。
>呼ぶ側の関数から引き渡されなくても、
>呼ばれる関数の中で解決できるものは、
>呼ばれる関数の中でのみ扱うべきです。
これは合っているんだけど、何したい関数だかわからんし、
データのまとめ方とかねえ…
006254
NGNG多分、55が言っているのは WinMain の方だけでしょ。
ただ、WinMainはstdcallなんだから 55が言っている
ような、仮引数リストの省略はすべきではないと思う。
警告を消す方法なら他にもいくつかある。
ちなみに VC++では省略すると引数がないと見なされ、
渡された引数をクリアしないコードを生成する。
(それ以前に WinMainでは省略不可能みたい)
>>59
関数の宣言と定義を勘違いしてない?
0063デフォルトの名無しさん
NGNGつーか、bccでも警告がでるとコンパイルできないの?
#持ってないからしらんw
警告レベルくらいいじれるよな、もちろnbccでも?
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGint APIENTRY WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
return MessageBox(NULL,"俺がWindowsアプリだ","sage",MB_OK);}
でいいじゃん
006665
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG006954
NGNGもちろんコンパイルできるよ。
警告レベルの変更はできるかどうか知らんけど、
指定した警告を抑止するオプションとかならある。
(BCCは持ってるだけで実際に使うことがないので)
0070初心者
NGNGError: 外部シンボル '_main' が未解決(D:\BORLAND\BCC55\LIB\C0X32.OBJ が参照)
ていう、エラーがでます。
オプション必要?
0071デフォルトの名無しさん
NGNGbcc32 -tW
-Wでもいいんだったかな
0072デフォルトの名無しさん
NGNG俺は単純に bcc32 -W ファイル名
としているぞ。
0074デフォルトの名無しさん
NGNGコンパイラ、BCCなんですけど、コンパイル時に警告が出ても、exeファイルが出来てるっちゅーことは、コンパイルできてるんですよね?
その実行ファイルを実行しようとしても、コマンドの構文が間違っていますって言われます。
コードはほとんど本の物と同じなので、間違ってないと思うのですが…。
#include <stdio.h>
void main(){
char s[10] = "Happy!";
char d[10];
char *ps, *pd;
int i;
ps = s;
pd = d;
for(; *ps != '\0'; *ps++, *pd++){
*ps = *pd;
}
*pd = '\0';
printf("%s", s);
printf("%s", d);
}
007574
NGNG普通、main関数って、
void main(){
}
あるいは、
main(){
return 0;
}
ですよね?
でもその本は後者でreturnがないんです。
警告されるはずなのに…。
0076デフォルトの名無しさん
NGNGそのexeはなんという名前?
0077デフォルトの名無しさん
NGNGは正しくない。
0078デフォルトの名無しさん
NGNGint main() {
> int i;
使われてない。
> for(; *ps != '\0'; *ps++, *pd++){
for(; *ps != '\0'; ps++, pd++){
> *ps = *pd;
*pd = *ps; /* こうしたいんじゃないの? */
> printf("%s", s);
> printf("%s", d);
改行は?
そして最後に return 0;
007974
NGNGcopy.exeです。文字列のコピーなんで。
>>77
マジですか!?
>>78
>int main(){
int main(){が正しいんですか?
main関数は何も返さないから、voidが付くと思ってたんですが…。
>使われていない
違うことをやろうとした後の消し忘れです。^^;;;
>*pd = *ps
そうでした。どうもです。
>改行は?
入れておきます。^^;;;
0080デフォルトの名無しさん
NGNG> copy.exeです。文字列のコピーなんで。
その、なんだ、DOSのコマンドには既にcopyというものがあってだな。
…名前を変えるべし。
> main関数は何も返さないから、voidが付くと思ってたんですが…。
main関数は整数を返すので int が付くのが正しいヨ。
0081デフォルトの名無しさん
NGNG知らない人間が多いな。
008274
NGNGあ…あぁ!!!ありましたね…。最近DOS使ってなかってないから、忘れてたYO!
…って、>>80さんも使ってないと思うけど、よく覚えてますね。(笑)
intを返してるんですか…。
じゃあ、int main(){…return 0;}とやるのが正しいわけですか。
void main(){}の方がいいのにぃぃぃ!
0083デフォルトの名無しさん
NGNGMS-DOG 上で、C を学ぼうとはしないでください。
0084デフォルトの名無しさん
NGNGそれってAPIも無いってこと?
0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG当然では?
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNGヘビィな環境だね。ローダーとかはどう実装されてるの?
0090デフォルトの名無しさん
NGNG009174
NGNGint main(){
char s[10] = "Happy!";
char d[10];
char *ps, *pd;
ps = s;
pd = d;
for(; *ps != '\0'; *ps++, *pd++){
*pd = *ps;
}
*pd = '\0';
printf("%s\n", s);
printf("%s\n", d);
return 0;
}
forの行で出る、警告 W8019 copy_.c 11: コードは効果を持たない(関数 main )ってのはどうしてですか?
0092デフォルトの名無しさん
NGNG×for(; *ps != '\0'; *ps++, *pd++)
○for(; *ps != '\0'; ps++, pd++){
009374
NGNGありがとー!!!
…今ポインタの勉強なんだけど、ここは致命的なミスだった…。
おぉーん!・゜・(ノД`)・゜・
0094デフォルトの名無しさん
NGNG自分がやった環境ではローダー無かったなぁ。
ベタなバイナリ書き出して終わり。
で、趣味でやってるOS作りではローダーってものが必要だと
知って慌てて勉強してるわけだが(w
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNGその件はすでに>>78で指摘されてるだろ。せっかく付けてもらったレスは、すみから
すみまでねめ回せ。
0098デフォルトの名無しさん
NGNGhttp://www.semicon.melco.co.jp/seminar2/course/b2_02.htm
http://www.besttechnology.co.jp/HowToV25/startup/startup.htm
まあ、スタートアップという初期化手順があってそこで
シンボリックリンクされたmain関数がはじめて呼ばれるわけだよ。
スタートアップの処理自体はアセンブラで書かれる。
よってそこでの宣言により戻り値を返すか、どうかが決まる。
0099デフォルトの名無しさん
NGNG早く次の課題出してよ。またMS-DOGでね。(ワクワク
0100デフォルトの名無しさん
NGNGMS-DOSを知らなかったようなだな(w
010274
NGNGご指摘ありがとうございます。
>>78さん、すいませんでした。m(__)m
>>99
また本読み進めてみるよ。
それか、友達にまた問題もらったら、アドバイスお願いします。
つーか、友達の大学の宿題を貰ってるんだけどね。^^;;;
0103デフォルトの名無しさん
NGNGむしろMS-DOSを知らない若者を釣ろうとした
いただけないヴェテランの可能性も(藁
010474
NGNG0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG010774
NGNGPardon?
0108デフォルトの名無しさん
NGNGhttp://www.google.com/search?hl=ja&ie=Shift_JIS&q=MS-DOG&btnG=Google+%8C%9F%8D%F5&lr=
0110デフォルトの名無しさん
NGNGやっぱり Gorila?
0111デフォルトの名無しさん
NGNG011283
NGNGおやすみ。Happy hacking!
011374
NGNGMicroSoft Dekkai Opa-i Girl
つか、文字列のコピーってポインタ使わなくてもこれでいいのでは…?w
#include <stdio.h>
int main(){
char s[10] = "Happy!";
char d[10];
int i;
for (i = 0; i < 11; i++){
s[i] = d[i];
}
printf("%s\n", s);
printf("%s\n", d);
return 0;
}
(〃~∇~〃)zzz。o〇○
0114デフォルトの名無しさん
NGNGよかったなgoogleで見つかって(w
011554
NGNG#include <windows.h>
#define MSG1 "俺が main だ、文句あっか\n"
#ifdef _CONSOLE
void __cdecl mainCRTStartup(void)
{
DWORD n;
ExitProcess(!WriteFile(GetStdHandle(STD_OUTPUT_HANDLE),
MSG1,sizeof(MSG1)-1,&n,NULL));
}
#else
void __cdecl WinMainCRTStartup(void)
{
ExitProcess(MessageBox(NULL,MSG1,"sage",MB_OK));
}
#endif
0116デフォルトの名無しさん
NGNGいや、結構有名な呼び方だよ。
知らないほうが。。略
0117デフォルトの名無しさん
NGNGfor (i = 0; s[i] != '\0'; i++){
d[i] = s[i];
}
っていうか、ポインタの勉強なんだからあれでいいんだろ。意味も違うぞ。
そもそも上でやってる処理なんてstrcpyで一発なんだよ。
ちなみにポインタ使った方が高速だ。
0118デフォルトの名無しさん
NGNGそれはmemcpyだと思うが。
しかもバッファオーバーランだし。
>>117
> ちなみにポインタ使った方が高速だ。
処理系によるでしょ。
俺の使ってるコンパイラはどっちも変わらん。
ちなみに俺的にはループのところが
while(*ps) *pd++ = *ps++;
*pd = '\0';
とか
while(*pd++ = *ps++) ;
の方が読んでわかりやすい。でも人それぞれ。
0119デフォルトの名無しさん
NGNG処理系がOSに戻り値を返却しようがしまいがmainにreturnは
必要(規格準拠するつもりがあるならね)。
0120デフォルトの名無しさん
NGNGガイシュツも知らないの?っていうくらい痛いな(ワラ
0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNG釣れた。
0123デフォルトの名無しさん
NGNG{
}
は,おかしなやり方ですか?
if文の中の処理は行われない可能性がありますか?
0124デフォルトの名無しさん
NGNGなんで? 全然おかしくないじゃん。
どうしておかしいと思うの?
0125デフォルトの名無しさん
NGNGif文の中の値があってるはずなのに,if文の中が,実行されないから
どっかオレのプログラムミスがあるようだ
見直おしてみる
0126デフォルトの名無しさん
NGNG== と = を間違えてたりはしないよね?
0127デフォルトの名無しさん
NGNGさすがにそれはないです
0128デフォルトの名無しさん
NGNGちょっと関係ないんだけど、IEでこの板見てて、このスレをクリックして
Backで戻ると、IEのタイトルが文字化けしねぇか?
他の板ではそういうことないんだけどさ。
0129デフォルトの名無しさん
NGNGインストールは,させられそうになりますが
0130127
NGNGご迷惑をかけました
0131デフォルトの名無しさん
NGNG同意。Flash Playerだよね。
何とかならんかな。
0132
NGNG{
int i;
printf("整数を入力: ");
scanf("%d",i);
return i;
}
これって何が間違ってるんですか?
間違っている理由も教えてください。
0133132
NGNG0134デフォルトの名無しさん
NGNG0135
NGNG0136デフォルトの名無しさん
NGNG脳内コンパイラーでは通りましたが何か?
0137136
NGNG0138デフォルトの名無しさん
NGNGネタ??だよね。
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNGほんとだ。了解です。
0141デフォルトの名無しさん
NGNGscanfを使おうとする根性が間違っています。
0143デフォルトの名無しさん
NGNG{
int i;
printf("整数を入力: ");
scanf("%d",&i);
return 0;
}
0144
NGNG0145142
NGNG慌てて142で書き直しましたがそれが何か。
0146デフォルトの名無しさん
NGNGネタ??だよね?
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG甘やかすな。つけあがるだけだ。
0149デフォルトの名無しさん
NGNGいい奴が多いってことは幸せなことだ
0150デフォルトの名無しさん
NGNG通ぶってるだけで通じゃない人に通じない用語ってわからんのかね。
0151デフォルトの名無しさん
NGNG実は通にも通じていないという罠。
0152デフォルトの名無しさん
NGNGファイルを読み込んで表示する部分で、
最初の一行目は問題ないのですが、
二行目以降、最初一文字目が削られて表示されてしまいます・・・。
もう、どこが悪いのか分らない状態です・・・(涙
http://isweb25.infoseek.co.jp/computer/pcqa-2ch/cgi-bin/img/370.zip
ここに、ソースを上げさせてもらいました。
コンパイルは、BCC5.5でないと通らないかも・・・
GCC、VCでのコンパイルは試してないです。
どうか、お願いします。
0153デフォルトの名無しさん
NGNG読んでないけど、改行の処理、\r\n(DOS)と\n(UNIX)で
バグっているヨカン
0154152
NGNGあれ?
改行の処理って、テキストモードでファイルオープンすれば、
適切な処理を自動でしてくれるんじゃないんですか?
0155デフォルトの名無しさん
NGNGVC++を使っているのですが,プログラムを,コンパイル→実行するとdebugライブラリというダイアログが開いて,
BLOCK_TYPE_IS_VALIDという文字が出ています。
なんなんでしょうか?
0156デフォルトの名無しさん
NGNGfor (i=0; i<=y; i++)
txt[i][YOKO] = '\0';
バグはこれだよ。安全のためにNULLをいれたんだろうが
配列の最後に入れるなら[YOKO-1]だ。
まじめに読んじまったい。
0157152
NGNGあ、ありがとうございます!!
このバグを見つけるために、2時間泣きながらモニター眺めてました!
本当に嬉しいッス!
ここから、編集ができるよう改造していきます。
ありがとうございました!
0158デフォルトの名無しさん
NGNGAssertion failure
0159デフォルトの名無しさん
NGNGしっかし、読みやすいプログラムだな。
俺にはこうは書けない。 いつもグチャグチャだーよ。
0160デフォルトの名無しさん
NGNGはぁ?
0161デフォルトの名無しさん
NGNG>>160はアルカイダ兵
0162デフォルトの名無しさん
NGNGはぁ?
0163デフォルトの名無しさん
NGNGおまえ、しぶといな・・・。
おまえのようなのが居るからすぐ次スレ立てなくっちゃならねーようになるんだYO!
0164デフォルトの名無しさん
NGNG?
016574
NGNG>>117
訂正さんきゅ!
ポインタ変数が他の変数のアドレスを保持して、間接的に他の変数を参照するためにあるんだったら、
ポインタ変数で行う処理って全てそれを使わなくてもできるんじゃないか?って思ったんです。
何のためにあるんだ?って。
ポインタ使った方が高速なのでしたら、納得です。
>>118
memcpy…調べました。
http://www.bohyoh.com/CandCPP/C/Library/memcpy.html
>void *memcpy(void *s1, const void *s2, size_t n);
s1とs2は、文字列の変数が直接入るのではなくて、それらを指すポインタ関数が入るんですよね?
それと、voidってことは、何も返さないんじゃないんですか?
s1の値を返すって書いてあるんですが…。^^;;;
0166デフォルトの名無しさん
NGNG対象ファイルの先頭に挿入ってできるでしょうか?
こんな感じで
[BOF]12345[EOF] → [BOF]6789012345[EOF]
0167デフォルトの名無しさん
NGNGできないと思っておいたほうがいいかと。
0168デフォルトの名無しさん
NGNGvoidと void*は異なる。
後者は差し先がどんな型か不明な(=どんな型を差しててもいい)ポインタ。
0169デフォルトの名無しさん
NGNG> s1とs2は、文字列の変数が直接入るのではなくて、それらを指すポインタ関数が入るんですよね?
ポインタ「関数」は入らない
> それと、voidってことは、何も返さないんじゃないんですか?
「void」と「void *」は意味が違う。「void *」は汎用ポインタ
> s1の値を返すって書いてあるんですが…。^^;;;
その方が都合がいい場合があるから。普通は無視して構わない。
char *p;
printf("%4.4s\n", memcpy(p, "hoge");
こんな変なコードを書きたいのならば別だが...
0170118
NGNG意味わかってると思うけど、一応、俺が言いたかったのは
最初の質問がstrcpy相当の文字列終端までのコピーなのに
113 のコードではmemcpy相当の処理に仕様が変わってるよ。
ってこと。単にそれだけ。
> ポインタ変数で行う処理って全てそれを使わなくてもできるんじゃないか?
> って思ったんです。
とんでもない。できないことだらけです。
0171166
NGNGやっぱダメですか。
んじゃ、一回ワークファイルで編集して移し代えですかねぇ・・・
メンドクチィ
0172デフォルトの名無しさん
NGNG> とんでもない。できないことだらけです。
少なくとも出力引数はグローバル変数を使えば可能
ループをgotoで代用するぐらい邪道な方法だけど
017374
NGNG>その方が都合がいい場合があるから。普通は無視して構わない。
なーる。
値を返して使うこともできるんですね。
>>170
意味わかってなかったです。w
確かに仕様が変わってますね、すいません。
でも、char配列の\0以降は何も入ってないわけだから、結果としては変わらないですよね。
strcpyは文字列終端(=\0)までのコピーでmemcpyはパラメータでサイズの指定ですか…覚えておこう。
017474
NGNG使い方、間違えてます?
#include <stdio.h>
int main(){
char s[10] = "Happy!";
char d[10];
char *ps, *pd;
ps = s;
pd = d;
memcpy(*pd, *ps, 10);
printf("%s\n", s);
printf("%s\n", s);
return 0;
}
それと、memcpyってプロトタイプ宣言必要なんですか?
警告されるんですが…。
僕の勝手な認識としては、自分で作った関数はプロトタイプ宣言が必要で、
memcpyやprintfなどの関数は#include <stdio.h>で一括で宣言してるという様に解釈してたのですが…。
0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNGmemcpyのプロトタイプは多分、string.hにあるのでそれをインクルード。
memcpyに渡すのはポインタ。
*pd とか *psは char型になるので、×。
0177デフォルトの名無しさん
NGNG017874
NGNGmemcpyはヘッダがstdio.hじゃないんですね…。
見落としてました。(泣きぃ
>>176
できました。
形式が「void *memcpy(void *s1, const void *s2, size_t n); 」なので、惑わされてました。^^;;;
ありがとうございます。
0179デフォルトの名無しさん
NGNG>165 でせっかく調べたのに注意不足だね
http://www.bohyoh.com/CandCPP/C/Library/memcpy.html
文字列複写関数
memcpy
ヘッダ #include <string.h>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
他の人もいっているとおりmemcpyはstdio.hには含まれていない。
0180デフォルトの名無しさん
NGNGstrcpyと勘違いしてない?
0181デフォルトの名無しさん
NGNGこの場合の、"Hello"の寿命について教えていただきたいのです。
自分では"Hello"が宣言された関数の中だけだと思うのですが、いかがでしょうか。
あと、"Hello"の内容は自由に変更してもいいのでしょうか?
0182デフォルトの名無しさん
NGNG俺が思うに宣言されたのはstringだと思われ。
0183デフォルトの名無しさん
NGNGちなみに「char *p」と「func(*p)」の「*p」は意味が違う。
前者は「ポインタ宣言」で、後者は「実体参照」を意味する。
0184デフォルトの名無しさん
NGNG定数だからプログラムが終了するまで生きてる。
>あと、"Hello"の内容は自由に変更してもいいのでしょうか?
これはだめん
0185デフォルトの名無しさん
NGNGAuto変数はブロック内でのみ有効。
malloc()等で動的に確保した領域はそのままreturnしても生きている。
strdup()(Win32なら_strdup())なんかはそれ。
0186デフォルトの名無しさん
NGNG処理系によるとは思うが、たいてい
・"Hello"はプログラムが起動して、終了するまで生きている。
・stringの寿命は関数内。
になるはず。
で、"Hello"の内容をプログラムの中から書き換えようとすると、
クラッシュすることもある。
C-FAQの
http://www.catnet.ne.jp/kouno/c_faq/c1.html#32
あたりを参照。
018774
NGNGポインタは基礎はわかってきましたよ。
型名 *変数名; //○型を指すポインタ変数の宣言。
ポインタ変数名 = @○○; //○○のアドレスをポインタ変数に入れる。
*ポインタ変数名 = ○○; //ポインタ変数を介してそれが指す変数の値を変える。
*ポインタを参照すれば、ポインタの指したデータを参照。
って所でしょうか?
>>179
注意不足ですな。
小学校の時には通信簿の所見の欄に、いつもそう書かれていました。
もっとじっくり取り組む姿勢が必要です。
018874
NGNG四行目の右辺、「&○○」ですた。
0189181
NGNGずぼらかましました。stringです、許して下さい
>>184
なるほど、、定数だったんですね。よって変更もダメと。
>>185
strdup()は分からないので調べます。
>>186
リンクどもです。逝ってきます。
まとめてレスしてしまい申し訳ないです。済みません。
でも解決しました。本当に有難うございます。
0190179
NGNG俺はしてない。ここの表現のとおりに書いた
http://www.bohyoh.com/CandCPP/C/Library/memcpy.html
# ちなみに柴田望洋氏講義の補助テキストらしいが...
0191デフォルトの名無しさん
NGNG処理系によるの?
定数がプログラム終了前に消えたらまずくない?
0192デフォルトの名無しさん
NGNG使い方に依るだろ。
0193デフォルトの名無しさん
NGNG????
0195デフォルトの名無しさん
NGNGもつからプログラム終了まで生き続けるということですね。
0196デフォルトの名無しさん
NGNGmem〜系も インクルードするヘッダは string.h
0197デフォルトの名無しさん
NGNG019874
NGNGその中の特定の一文字を他の変数に代入するにはどうすればいいんですか?
僕がやってみたコードを一応載せます。
#include <stdio.h>
int main(){
char s[11] = "あいうえお";
char d[3];
d[1] = s[1];
d[2] = s[2];
d[3] = '\0';
printf("%s", d);
return 0;
}
要素数を二倍にしなくてはならないということは、s[1]とs[2]に「あ」が、s[3]とs[4]に「い」が…という様に入っているのではないかと推測し、
以上の様に書いてみたのですが、実行すると文字化けしたような物が表示されます。
やり方、教えて下さい!
0199デフォルトの名無しさん
NGNGwchar_t
0200デフォルトの名無しさん
NGNGCの配列は0番から始まります。
VB厨?
0201デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNGどうしてもcharでやりたかったらchar [2]にコピーしな。
0204デフォルトの名無しさん
NGNGあの・・・。VBもデフォルトは0から始まるんですけど。
知らないものを叩くのは良くないと思いますよ。
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNGOption Base 0
0208デフォルトの名無しさん
NGNG全然関係ないけど1つ忠告
配列を初期化する場合、要素数を省略しても
コンパイラが勝手にその大きさ分確保してくれる。
char s[] = "あいうえお"; こうすれば勝手に11個確保し、
int i[] = { 1, 2, 3, 4, 5, }; こうすれば勝手に5個確保する。
0209デフォルトの名無しさん
NGNG多分それエラー
0210デフォルトの名無しさん
NGNGならねーって。
0211209
NGNG,の後に何もなくてもよいのか。
0212デフォルトの名無しさん
NGNGenumならば最後のカンマがあるとエラーだけど
配列や構造体メンバの初期化の最後のカンマは合法だよ。
# 夏は終わってないのか?
0213デフォルトの名無しさん
NGNGうん。省略時はそれ。スレ違いだがVBは添え字をマイナスから始めることもできる。
(-1,-1) (-1.0) (-1,1)
( 0,-1) ( 0.0) ( 0,1)
( 1,-1) ( 1.0) ( 1,1)
こんな感じにね。
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGintになってるのは気付いてる?
0216デフォルトの名無しさん
NGNGハァ?
それがどうした。見当違いなレスするな。
0217デフォルトの名無しさん
NGNG変じゃない人ならどう書くと?
0218デフォルトの名無しさん
NGNG1, 2, 3, 4, 5
0219デフォルトの名無しさん
NGNGint i[] = {
1,
2,
3,
4,
5
};
って書くの?へんなひと。
0220デフォルトの名無しさん
NGNGバ カ 必 死 で す 。(藁
プライド持つのも良いが間違いは素直に認めるのが大人だぞ。
022174
NGNG勉強になりました。
>>213
それも初めて知りました。
Option Baseか…。そんなのもあったなぁ。
配列に0が入るのが嫌で、
Dim A(1 To 10) As Integerってやってたなぁ。
今もCでは、要素を一つ多く宣言して、0は使わないでやってます。^^;;;
面倒だから。w
0222デフォルトの名無しさん
NGNGあの書き方じゃわかりづらいけど、>>219のように
縦に書いたときとかに、最後の要素の次に付け加えるときとか
最後とその他を入れ替えるときとかに簡単なミスを防げるんだよ。
0223デフォルトの名無しさん
NGNGenumでも問題なく通ったんだけど、これはコンパイラが規格に準拠していないってこと?
0224デフォルトの名無しさん
NGNG上手くいえないけど配列の位置を計算で出すときとかは
0から始まった方が計算しやすい。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG厳密に言えばそういうことになるだろうけど、配列や構造体ならOKでenumは
ダメというのも変な仕様だよな。
gccで試してみると、-Wallにしても何の警告も出ない。-pedanticまでやって
ようやくwarningになった。
0227デフォルトの名無しさん
NGNGいや別にa[i]==*(a+i-1)という仕様でも良かったわけだし。
0228デフォルトの名無しさん
NGNGそんな仕様で良いのはおまえだけだ
0229デフォルトの名無しさん
NGNGバ カ 必 死 で す 。(藁
プライド持つのも良いが間違いは素直に認めるのが大人だぞ。
0230デフォルトの名無しさん
NGNG誰に言っているのか良くわからんのは荒らしと一緒だぞ。
0232デフォルトの名無しさん
NGNGどの時点で何を間違いと認めればよかったのだ?
0233デフォルトの名無しさん
NGNGCの言語仕様のバグ、C++では直っている
昔(C89以前)のCでは8進数に8を定義してもよい仕様だった。
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNGでもなんで1, 2, 3, 4, 5,なんて書き方するんだろ。変な人。
0236デフォルトの名無しさん
NGNGどう直ったの?
enumでもOKと?
0237デフォルトの名無しさん
NGNG>>227を書いた後>>229で言われてるのに>>227の内容を
いつ間違いだと言えばいいんだよ。無茶言うな。
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG焦るな。
添え字が1からなら、a[i]==*(a+i-1)でOKだろ。
024174
NGNGint i, j;
char s = "123456789";
char ss[3];
printf(" ABCDEFGHI\n");
for (i = 1; i <= 9; i++){
for (j = 1; j <= 9; j++){
if (j == 1){
printf("%s", ss); //a
}
switch (masu[i][j]){
case NULL:
printf("□");
break;
case BLACK:
printf("●");
break;
case WHITE:
printf("○");
break;
}
}
printf("\n");
}
}
この関数のaの部分で、sのi文字目を表示させたいのですが、その前の行ではどんなことを書けばいいですか?
0242デフォルトの名無しさん
NGNGまずはchar sをchar s[]に。
024374
NGNG3行目、char c[] … でした。
024474
NGNG0245デフォルトの名無しさん
NGNGc??
ss[0]=s[0],ss[1]=s[1],ss[2]=0;
0246デフォルトの名無しさん
NGNG> その前の行ではどんなことを書けばいいですか?
> printf("%s", ss); //a
別に前に書く必要はないよ
printf("%2.2s", ss[2 * (i - 1)]);
0247245
NGNG0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNGssって初期化されていないでしょ・・・
0250デフォルトの名無しさん
NGNG0251247
NGNG0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNGそれわからんらしい>>202
0254246
NGNGprintf("%2.2s", s[2 * (i - 1)]);
ssという変数は必要ない
0255デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNGss[]じゃなくてs[]にしたかったんだと思われ。
それでも>>246は
printf("%2.2s", &s[2 * (i - 1)]);
にしないと動かないと思うが。
0258デフォルトの名無しさん
NGNG...
}
ループの中にこういう判定をいれるのをやめろ。
一番気になる
0261デフォルトの名無しさん
NGNG026274
NGNGご忠告どうも。
厨丸出しですた。w
void disp(){
int i, j;
char s[] = "123456789";
printf(" ABCDEFGHI\n");
for (i = 1; i <= 9; i++){
printf("%2.2s", s[2 * (i - 1)]); //a
for (j = 1; j <= 9; j++){
switch (masu[i][j]){
case NULL:
printf("□");
break;
case BLACK:
printf("●");
break;
case WHITE:
printf("○");
break;
}
}
printf("\n");
}
}
026474
NGNG0265デフォルトの名無しさん
NGNGポインタのポインタって、何か(・∀・)イイ!ことあるの?
ただ読み難くなっているだけだろ…。
どうせコソパイラが最適化してくれるんだから、ポインタなんて
使ったって無駄だぜ。配列で十分!
arrayマンセー!
0266デフォルトの名無しさん
NGNG配列でメモリの0x886番につながっているLEDを消灯させて下さい。なお、プルアップタイプです。
0267デフォルトの名無しさん
NGNGだだのポインタでいいんじゃないの?
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNGhttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/strtol.3.html
こういう関数が必要とする。
0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG> 配列で十分!
配列で間に合う程度のプログラムしか作ったことが無いんですね;)
0272デフォルトの名無しさん
NGNG配列さわる時に嫌でもポインタいじってるわけですが?
0273デフォルトの名無しさん
NGNG配列使ってればポインタ使ってるって言っていいんですか?
0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNGお前よりましだ。
0277デフォルトの名無しさん
NGNG解釈されるだけでポインタ使ってるといわねーだろ。
0278デフォルトの名無しさん
NGNGi[str]でも、正しかったりするよな〜。
こんな使い方するヤツいないけど。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG・・・お前、ちゃんと入門書読みなおせ。
028174
NGNGとりあえず、僕がやってみた物を…
今、オセロ作ってるんですよ。
void haichi(){
char t[];
if (turn == TBLACK){
t[] = "黒";
}
if (turn == TWHITE){
t[] = "白";
}
printf("%sの番です。\n", t);
printf("置く場所を指定してください。\n");
}
0283282
NGNGその前にtのサイズをきちんと書けよ。
0284手抜き
NGNGprintf("置く場所を指定してください。\n");
028574
NGNGこういう時にstrcpy使うんすか!
デキター!!!(´∀`)
>>284
おっ!?より前の条件が真だったら前者、偽だったら後者が返されるという構文ですね。
それが(・∀・)イイ!!!
0286デフォルトの名無しさん
NGNGvoid haichi(){
char *t;
if (turn == TBLACK){
t = "黒";
}
if (turn == TWHITE){
t = "白";
}
printf("%sの番です。\n", t);
printf("置く場所を指定してください。\n");
}
0287デフォルトの名無しさん
NGNGなんでもすぐに質問すると覚えないよ。
自分で一日くらい悩んでから質問したほうが、いろいろわかると思う。
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG変わりは無いという解釈を内部ではしている。
str[i]
=>
*(str+i)
=>
*(i+str)
=>
i[str]
#include <stdio.h>
main(){char str[]="0123456789";
for(int i=0; i<10; i++)
printf("%c",i[str]);
return 0; }
動くんだよ、これが・・・
029074
NGNGそれでもできるんですかぁ。
勉強になりますな。
String型があればラクチンなのになぁ。。。
>>287
そうですか?
基本的な所は定石で固めておけば、あとでその知識の組み合わせればスムーズに行くかな?と思ったんですが。
じゃあ、ちょっぴり自分で試行錯誤して、できるところまでオセロをやってきます!!!
>>288
了解。
0291デフォルトの名無しさん
NGNGあははは、面白い。 動いた。 ネタに使えるね。
0292デフォルトの名無しさん
NGNG>strにi足す、iにstr足すアドレスを返すことに
>変わりは無いという解釈を内部ではしている。
str[i] は自動的にコンパイラが *(str + i) に読み替えてるからじゃないの?
結果的に str[i] も i[str] も指してるアドレスが同じなだけで。
0293デフォルトの名無しさん
NGNG関数k()の宣言とかエラーチェックは無いけど
これを書いた奴は神。次元が違う、参考にはするな
#include <stdio.h>
int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10};void k(){if(m[p]==0)
for(i=0;i<8;i++){for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;if(c&&m[v]==t){a+=c;v=
p;if(d)do m[v]=t,v+=r[i];while(m[v]!=t);}}}char*h="・○●\n";int main(){for(i=
1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;for(;;a=d=0){for(p=9;p<82;++
p)k(),printf("%.2s",&h[m[p]*2]);if(a)for(d=a=s=p=8;a==8;k())t-2?(scanf("%d %d"
,&p,&i),p+=i*9):++p;else if(s)s=0,printf("pass");else break;t=3-t;}return 0;}
0294デフォルトの名無しさん
NGNGそのプログラム、入力待ち状態になったら何を入力すればいいの?
とりあえずiってやったら落ちた(ToT)
0295ポインタの配列を勉強しる
NGNGprintf("%sの番でゲス\n", colors[turn != TBLACK]);
029674
NGNG僕も前に違うスレで見ました。w
http://game.2ch.net/test/read.cgi/gamedev/1025110939/137
参考にする気にもなりません。・゜・(ノД`)・゜・
0297デフォルトの名無しさん
NGNGすごいな…COMの思考ルーチン込みとは。ほんとに神レベルだなこりゃ。
>>294
自分は先攻で○ね。左上(1,1)右下(8,8)として、X Yの順で座標を入力。
とりあえず 6 4 とか入れてみれ。
0298デフォルトの名無しさん
NGNGスペースで区切って入れるのか・・・なるほど。
0299298
NGNG0301デフォルトの名無しさん
NGNG逝ってよし!
0302デフォルトの名無しさん
NGNG43対21で俺の勝ち。
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG030510000
NGNGそこでここに質問させてもらう事にしました・・。
あるDOSアプリでソフトを起動してからその起動したソフトからの
戻り値がほしいのですがCだとどういう関数を使えばいいんどえしょうか?
口下手でもうしわけありません・・ちょこっと
buff=system(age)こんな感じにしたいのです。が
systemの戻り値は起動させたソフトの戻り値は継承してないので・・。
おねがいします!
0306デフォルトの名無しさん
NGNGうん
0307デフォルトの名無しさん
NGNGconstなんて 猫でも で教えてもらわなかったぞゴルァ(藁
本駆ってこようかなぁ。応用でスキルうpをはかり中...
0308デフォルトの名無しさん
NGNG本気?
コード自体は悪くないし、よくできていると思う。
でも別にごく普通のコード(可読性を犠牲にして短く見せてるだけ)だよ。
これを書ける人間が神ならほとんどが神。
思考ルーチンなんて入ってないよ。
置ける場所を順番に探索するだけ。
あと、よくできているだけに 1ヶ所だけ注文を付けたい。
>int main(){
>for(i=1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;
ループ内で初期化を繰り返している。どうせなら
for(m[40]=m[50]=t=s=i=1,m[41]=m[49]=2;i<10;m[i++*9]=3);
とかにして欲しかった。
0309デフォルトの名無しさん
NGNGそれ、7行で書くという制約がついているからだよ
0310デフォルトの名無しさん
NGNGここが思考ルーチンじゃないのかな
つまり
k()
の中になるけど
調べられるだけ調べてる
r[]の中は、左上〜右下の位置を表しているのでしょう。
03111
NGNG0312デフォルトの名無しさん
NGNG文字列配列を、後から初期化するのってどうすればいいのでしょう?
たとえば、buf[1000]の配列を初期化するにはどうすればいいでしょうか?
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNG式はいつですか?
0317312
NGNGありがとうございました。
0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNG0320デフォルトの名無しさん
NGNG幻想だ。寝てろ。
0321デフォルトの名無しさん
NGNGstr1 : String;
begin
str1 = '合計' + IntToStr(goukei);
ShowMessage(str1);
end;
goukeiはきちんと数字が入っています。
コンパイルエラーになるのですがなにが悪いのでしょうか。
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGどうすればいいですか?
0325デフォルトの名無しさん
NGNG0326あ
NGNG俺はその答えを知ってるがあえて教えてやらない。
まずあなたがなぜ
「C言語なら、俺に聞け!」
板にその質問を書いたのか、
ウィンドウの文字化けと、
C言語の関連を説明する必要がある。
それが納得いく答えなら快く教えてあげようじゃないか。
0327デフォルトの名無しさん
NGNGひきこもりは年中夏休みという罠。
0328デフォルトの名無しさん
NGNGヽ(`Д´)ノ
0329デフォルトの名無しさん
NGNG喜びすぎ
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNG' → " ???
:=とか??
java?pascal?
goukeiはInt?
どんなメッセージ?
0333Show-A
NGNGこのスレに笑いはいらない。あと、至急仕事をください。
0334デフォルトの名無しさん
NGNGなんででしょう?
0335308
NGNG> それ、7行で書くという制約がついているからだよ
ありがとう。
その制約をわかってて書いたつもりだよ。
仮に制約がなければ「よくできてる」とは書けないし、
糞コードと言われてもおかしくないと思う。
>>310
> for(p=9;p<82;++p)k(),〜〜
> ここが思考ルーチンじゃないのかな
違うよ。
そこは、置けるマスが1ヶ所でも存在するかどうかを
チェックしているだけ。(passまたは終了の判定だけに使われる)
これはCOMの時もPLAYERの時も共通。
そこでまず置けるマスがあることを確認してから、
その次の
> if(a)
> for(d=a=s=p=8;a==8;k()) t-2 ? (scanf("%d %d",&p,&i),p+=i*9) : ++p;
で処理をしている。
(t - 2 != 0) なら つまり現在の順番がPLAYERなら scanfを繰り返し、
COMなら 先頭のマスから1個づつ順に調べていき、
置けるマスが現れた時点で、そこに置いてループを抜ける。
だから、単なる順次探索なのです。
0336デフォルトの名無しさん
NGNG要するに7行としてはよくできてる止まりで、凄いわけじゃない、と。
だったらおまえが書いてみろ。
0337335
NGNG> だったらおまえが書いてみろ。
いっぱしの口をきいたりプログラミングの話をする前に
まず、人様にものを頼む態度から勉強して出直してこい。
お前、中学生のうちはいいが、将来社会に出てから困るぞ。
お前から見ればよっぽど凄いコードなんだろうよ。
それだけの話。大人になればいずれわかる日が来るから
前向きに頑張れ。
0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNGいつぞやの、エディタ作ってるC言語初心者です。
今、文字入力処理の部分を作ってるのですが・・・
1バイト文字は、どうやら問題なく入力されるのですが、
どうしても、2バイト文字が化けてしまいます・・・。
もうこれも、どこが悪いのかさっぱりで・・・(涙
http://isweb25.infoseek.co.jp/computer/pcqa-2ch/cgi-bin/img/372.zip
ここに、ソースを上げさせてもらいました。
かなり不器用な処理してて、読みにくいかも・・・(汗
bcc32以外でのコンパイルは試してません。
どうか、よろしくお願いします。
0341デフォルトの名無しさん
NGNGなんでも夏休みのせいにするお前が厨房という罠
0342デフォルトの名無しさん
NGNGまた君か。
生活時間が似ているな(w
文字入力にgetch()を使っているがこいつは1文字入力用なので
FEPで書かれる2バイト文字系ではまともに動かん気がする。
じゃぁどうしろ、と言われると困るのだが・・・。
0343340
NGNGその節は、お世話になりました。
えっと、getch()関数は、1バイトだけを受け取る関数ですが、
2バイト文字の時、getch()関数を2回呼び出せば2バイト目を読めると本に書いてます。
で、自作関数insert()で、最初の1バイト目を見て漢字の1バイト目なら、
2バイト目をinsert()関数で読んでるつもりなのですが・・・
・・・これが、問題なのでしょうか?
0344デフォルトの名無しさん
NGNGfgetsでいいじゃん。
0345デフォルトの名無しさん
NGNG受け取れるのはgetcheだったような・・・
0346340
NGNGすみません・・・
説明不足でした・・・。
入力処理の部分を作ってると言いましたが、
キーボードからの入力処理の部分を作ってます。
説明不足でした。すみません(汗
0347デフォルトの名無しさん
NGNG0348340
NGNGレス、ありがとうございます。
えっと、getch()関数は、エコーなしで受け取る関数です。
getche()関数は、エコーありで受け取る関数ですね。
受け取りは、どちらでもいいのですが・・・。
このエディタの画面表示方法は、変更があるたびに、
配列読み出して再描写するようにしてます。
なので、エコーバックがあるのは、ちょっと困るのです・・・(汗
0349デフォルトの名無しさん
NGNG定期的に質問するなら、こういう人のほうが教えやすいし、頑張ってるのが伝わってくる。
あとはコテハンつかってくれ。 エディター作ってる人だとわかる名前がいいな。
0350デフォルトの名無しさん
NGNGエディタってMS-DOSプロンプトで動くようなテキストエディタを作っているの?
0351エディタ製作中@クソ初心者
NGNGあ、なるほど。(w
>>349
そう言っていただけると嬉しいッス。
いちよう、初心者なりに頑張ってはいるのですが・・・
エディタ作るのって、初心者には厳しいのでしょうか・・・。
なかなか、難しくって・・・(汗
0352デフォルトの名無しさん
NGNGうーん、キャストの問題もないし、一見問題なさそうに見えるね。
ch=getch()
も2バイト文字が入力されたときは2回連続でOSから呼ばれる
ようだし。
ただ、こちらの環境ではコンパイルできないので良く分からんが
例えば、起動して「あ」を入力すると「3バイト」ずれる。
「あ」の文字コードは0x82,0xa0だが、これが正しくtxtの配列に
読み込まれているか、一度printf()デバッグで確認してみるが吉。
ひょっとしてライブラリとかの違いで3バイト入力されているのかも
しれない。
0353エディタ製作中@クソ初心者
NGNGはい。DOS上で動くエディタ作ってます。
あまり実用的な物じゃないかもしれませんが・・・
勉強のつもりで、作り始めました。
回復コンソールとかで動かせたら、このエディタが活躍できるかも・・・。
9x系の、起動ディスクとかのDOS上では動かないと思いますけど・・・。
0354デフォルトの名無しさん
NGNG多分editってコマンドが入っていると思うけど、あんな感じに?
Alt+漢字で入力モードを切り替えるだけでgetchが反応しちゃうんだよな。
0355エディタ製作中@クソ初心者
NGNGアドバイスありがとうございます!
3バイトずれてる・・・
なぜだろ・・・・???
う〜ん、ちょっとその辺を探ってみます。
ありがとうございます。
0356エディタ製作中@クソ初心者
NGNGそうですね。 標準であるeditのようなのを作りたいと思ってます。
標準のeditは、結構高機能ですね〜。
「置き換え」とかもありますし・・・。
標準editを超えたいのですが、かなり無理っぽいです(苦笑
Alt+漢字でgetchが反応!?
・・・それが、3バイトずれる原因なのかな・・・?
う〜ん、調べてみます。
ありがとうございます。
0357デフォルトの名無しさん
NGNG_gotoxy _clrscr について調べてる人、絶対いるだろ。
俺みたいに・・・・・
0358デフォルトの名無しさん
NGNGchとch2を入れ替えて配列に入れればまとも表示されそうな気がする。
0359デフォルトの名無しさん
NGNGmain関数が一番上に書かれているね。俺もそうなんだけどそうしている人は少ないらしい。
0360357
NGNG0361エディタ製作中@クソ初心者
NGNGmain関数でgetch()で受けたchの値が、1バイト目じゃなく、
2バイト目の値が入ってました・・・
どーいうことでしょう???
main関数でgetch()関数を2回呼ぶと、ちゃんと1回目には1バイト目。
2回目には2バイト目が入ります。
なので、mainで2バイト目を受けて処理してみたのですが・・・
やはり、それでもダメでした・・・(涙
>>358
アドバイス、ありがとうございます。
main関数で2回getch()関数で読む方法と、
main関数で1バイト目だけ読んで1バイト目調べて2回目読む方法と、
二つで試させてもらったのですが、ダメでした・・・(涙
>>359
あれ?そうなんですか?
こういう書き方は、もう癖で・・・
前は、Perlをいじってました(w
>>360
gotoxy関数や、clrscr関数は、たぶんbcc独自の関数だと思います。
VCやGCCは、調べてないのですが・・・。
フリーのコンパイラbcc5.5でもコンパイルできますので、お持ちでしたら試してみてください。
0362デフォルトの名無しさん
NGNGgotoxy(x, y);
while ( (ch = getch()) != CTRL_Z) {
/*追加*/fprintf(stderr, "%d ", ch );
すると、漢字のときに負の値がでてくるのだが。
0363デフォルトの名無しさん
NGNGint mygetch()
{
int val = getch();
if( val == EOF ) return val;
return (unsigned char) val;
}
0364エディタ製作中@クソ初心者
NGNGはい、この負の値が悪かったようですね・・・
>>363さんが、その辺を修正してくれました。
ありがとうございます!
ちゃんと日本語が入るようになりました!
まだまだ不都合が多いエディタで・・・
また、次のバグが見つかりました・・・。(汗
なんとか、まともにテキストが編集できるよう、がんばって改造して行きます!
みなさん、ありがとうございました。
0365デフォルトの名無しさん
NGNGんー、bccとvcでは型変換のされ方が違うのか?
VCでは下みたいなソースではマイナスなんざならんのだが。
int ch,ch2, i, j;
unsigned char str[100];
while (1) {
printf("--->\n");
ch = getch();
printf("%02x, ",ch);
printf("%c\n",ch);
ch2 = getch();
printf("%02x, ",ch2);
printf("%c\n",ch2);
str[0] = ch;
str[1] = ch2;
str[2] = 0;
printf("%s\n",str);
}
0366デフォルトの名無しさん
NGNG--->
ffffff8a, ・
ffffffb4, エ
感
0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG--->
8a, ・
b4, エ
感
--->
うーむ・・・環境依存だったわけですな。
0369デフォルトの名無しさん
NGNG\xffが入力されたときEOF(-1)と比較したら真になっちゃうよ
0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNGnullは返せども・・・。
0372デフォルトの名無しさん
NGNG> んー、bccとvcでは型変換のされ方が違うのか?
> VCでは下みたいなソースではマイナスなんざならんのだが。
型変換のされ方は両者とも同じ、printf()の出力結果が処理系依存なだけ
また、マルチバイト文字をchar型で扱う場合は注意が必要
Cの型変換規則はint以下の型の場合はintに変換されてしまう為、
#include<stdio.h>
int main(void) {
char c = 0x90;
int i = c;
if(i >= 0x80) printf("if\n");
else printf("else\n");
return 0;
}
上記のソースを実行すると「else」が出力される
0373デフォルトの名無しさん
NGNG#include<stdio.h>
main()
{
long nc;
nc = 0;
while(getchar() != EOF)
++nc;
printf("%1d\n", nc);
}
0374デフォルトの名無しさん
NGNG何入れてもダメだと思う。
0375デフォルトの名無しさん
NGNGとりあえず
Ctrl-Z か Ctrl-D
を試してみては?
0376デフォルトの名無しさん
NGNGありがとうございます。
一応、文字数を数えるプログラムということで本に載ってたんですが、失敗作ですか?
0377デフォルトの名無しさん
NGNG> printf("%1d\n", nc);
printf("%ld\n", nc);
# まぁ、コンパイルは通るけどね
0378デフォルトの名無しさん
NGNGprintfは別の話だろ。
いまの問題はintを返すはず(なので、漢字の1byte目も
問題ないはず)のgetchが、BCCでは負の値を返すってこと。
0379デフォルトの名無しさん
NGNGCtrl押しながらZ
0380デフォルトの名無しさん
NGNGそうしても無理ですよね。
しょうがないので、これは蟲して先に進みます。
ありがとうございました。
0381デフォルトの名無しさん
NGNGだから、Ctrl-Zだってばぁ〜〜!
0382デフォルトの名無しさん
NGNG> getchが、BCCでは負の値を返すってこと。
あっそう
ANSI-Cに定められてもいない、独自拡張の関数が
自分の思ったとおりに動かないのを騒いでるだけか
0383デフォルトの名無しさん
NGNG日本語読めない白痴はほっとけ
0384デフォルトの名無しさん
NGNG↑これは日本語ではなさそう。どうでもいいけど。
0386デフォルトの名無しさん
NGNGif(isalnum(c))
を
if(C == (('a'-'z')||('0'-'9')))
こんな感じの記述は出来たでしょうか?
要するにa〜z等の範囲をa-zのような形式で表せたと思ったのですが確信がもてなくて
出先で手元に資料もなく困っています
0387デフォルトの名無しさん
NGNG文法上は問題ないけど、君の思ったとおりの結果にはならない
if('a' <= c && c <= 'z' || '0' <= c && c <= '9')
# 何故素直にisalnum(c)を使わない?
0388デフォルトの名無しさん
NGNGできない(拡張仕様は知らないけど)。
てか、コンパイラも無いのか?
0389386
NGNGありがとう!
ああ、俺は何か他の言語とごちゃ混ぜにしてるかな・・・
いや使う使わないではなくてちょっと友達と「a-z」という記述があるかないかの話になってね
有ると言い張ってしまったわけだが・・・
0390デフォルトの名無しさん
NGNGisalnum使うと大文字も検査しちゃうでしょ。
isupperと組み合わせて使えばよいだけだけどね。
039260cm浮き上がるストレート
NGNGdotting(y,x,red,green,blue);
みたいに書いて、簡単に点を打てるプログラム知りませんか?
(C++じゃなく、ウインドウもひとつ、めんどくさい制御文もいらない)
039360cm浮き上がるストレート
NGNGプログラムではなく関数
0394デフォルトの名無しさん
NGNG{
putc('.');
return 0;
}
0395デフォルトの名無しさん
NGNGPC-98x1だったら、C言語による最新・・・プログラム事典かアルゴリズム事典
を見れば、いくつかのグラフィック関連関数(プログラム)がある。
0396デフォルトの名無しさん
NGNGos書いてないよ
0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNGint main()
{
int a;
while(1){
printf("数字を入力してください\nただし100以下以上であること。");
scanf("%d",&a);
if(a <= 0 || a >= 100)
printf("だめぽ");
else break;
}
return 0;
}
こうすると a とかを入力すると無限ループのため抜けれません。
数字以外を入力したか判別する方法を教えてください。
よければこのソースの問題点を教えてもらえるとうれしいれす。
0399デフォルトの名無しさん
NGNGのほうがいいですか?
0400d
NGNG---●●●変態痴女を紹介致します。●●●---
例えば>欲求不満オマ●コヌレヌレ女・露出オナニー痴女・
フェラチオおしゃぶり女・ミニスカ・ノーパン娘・巨乳パイズリ娘・
アナルSEXおねだり娘・オマ〇コ弄られマン汁グチョグチョ女・
SM牝豚・緊縛・浣腸・スカトロ・等・・・刺激を求めています。
●●●学生・OL・主婦・モデル・牝豚・女王様・オカマ等・多数!●●●
090-8002-8356番
-----------------------------
http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能-----
http://www.mttdocomo.jp/
Iモードはこちら→http://www.mttdocomo.jp/i
0401デフォルトの名無しさん
NGNG正: ただし100以下 0以上
0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNG0404デフォルトの名無しさん
NGNG||じゃなくて&&じゃないの?
あと、0や100が含まれるかどうかによって違う。
0405デフォルトの名無しさん
NGNGman fflush
もっともscanf使っているのが間違いかもしれぬ。
0406デフォルトの名無しさん
NGNGfflushを何に使うの・・・?
040760cm浮き上がるストレート
NGNGWindowsMeです。
0408デフォルトの名無しさん
NGNGSetPixel()でいいんじゃない?
ウィンドウを出せればの話だけど。
SetPixel
The SetPixel function sets the pixel at the specified coordinates to the specified color.
COLORREF SetPixel( HDC hdc,
// handle of device context
int X,
// x-coordinate of pixel
int Y,
// y-coordinate of pixel
COLORREF crColor
// pixel color
);
0409デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNGただ戻り値を調べただけじゃだめだね。
scanf()はフォーマット文字列に合致しない入力があると、その文字を
読まなかったことにするので、再度scanf()をやってもさっき読まなかった
文字がまた出てくることになる。無限ループになってしまうのはこれが原因。
これを避けるためには、入力フォーマットに合致しない文字を読み飛ばして
やる必要がある。
>>398 は、例えば非常にいい加減だが、
if (scanf("%d", &a) != 1) { getchar(); a = -9999; }
のようにでもしてやれば、一応無限ループは避けられる。
こういう使いづらい所があるから、ほんとは初心者はscanf()なんて
使うべきじゃないんだが。fgets()とsscanf()の組み合わせの方が好ましい。
0411デフォルトの名無しさん
NGNGありがとうございました。
「scanfは素人にはお勧めできない」とは、このことだったんですね。
>>404天然ボケですた。
>>405それは何をincludeしたらいいですか?
bccにはリファレンスがついていないので
サンプルきぼんぬ。
0412デフォルトの名無しさん
NGNGあと、後学にもなるので fgets() と sscanf() のサンプルを
おながいします。
とりあえずgoogle言ってくるけど、
プログラム作る上でお勧めの検索エンジンってありますか?
0413デフォルトの名無しさん
NGNGchar buf[256];
int i;
do{
fgets(buf,sizeof buf,stdin);
}while(sscanf(buf,"%d",&i)!=1);
0414デフォルトの名無しさん
NGNGisdigit()と組み合わせて・・・あまり意味無い?
if(0<=a && a<=100)の方が感覚的に「aが0以上100以下」とわかりやすいと思う。
if(a<0 || 100<a)これなら「aが0〜100を含まない」となる。
割りこみ失礼
0415デフォルトの名無しさん
NGNGif(0<=a && a<=100)の
盲点だったYO!!
猫でもも結構いいけど、なぜか漏れが改造すると bccが
)がありません
)がありません
}がありません
とか連発する罠。
つけてるし、うまくいくはず(脳内コンパイラ)なんだけどなぁ。
0416デフォルトの名無しさん
NGNGchar *p=strchr("abcdefg",'d"');
printf(p);
で画面に
「efg」
と出力させるのは分かるのですが、
逆に
「abcd」
と出力させれる
「strchr」の代わりになるような関数って
ないですか?
0417デフォルトの名無しさん
NGNGeの地点に\0書きなさいな。
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG0420410
NGNGなるほど、言われてみれば当たり前ですね。
出直してきます。
0421デフォルトの名無しさん
NGNGない。作れ
>>417
文字配列ならともかく、文字列定数の書き換えは未定義
0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNGかなり重要な事柄だと思うが。
0425421
NGNG> printf(p);
糞コードを書いてる奴にはクソレスにしか見えないみたいだね。
君ごときにはこんな糞コードで十分だろう。
ある条件以外の場合はまとも動くぞ
char *p = "abcdefg";
int i = strchr(p, 'd') - p + 1;
printf("%*.*s", i, i, p);
0426デフォルトの名無しさん
NGNG降参だ。その条件を教えてくれ。
0427デフォルトの名無しさん
NGNGstrchr()で探す文字が見つからなかった場合に、NULLが返ってくるから
マズーってことではないの?
0428デフォルトの名無しさん
NGNGこの場合は絶対に見つかるじゃん。
0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNG0431410
NGNG私の聞きたかった答えは
>417さんので満足です。
>421さんの言われてるのも確かですし、
(実際は文字列定数ではなく、char s[256]みたいに
使ってますので問題なし)
>428さんの言われてるのももっともです。
ちなみに実際はNULLを確認するようにしてます。
みなさん、そんなに深読みしてくれなくて結構ですよ。
私なんぞは\0で十分ですw
ではでは、お世話になりました。
0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNGそれ以前に
if(a < 0 || a > 100)
だと思われ。
個人的意見を押し付ければ
if(a >= 1 && a <= 100)
のように判定するほうが好き。
永久ループになるのは、入力された値が%dに適合しないのでscanf()で取得されてないから。
安全に逝くならfgetsで数文字列かどうかを判定してからatoi()などで変換をかける。
scanf()にこだわるなら、戻り値を調べてEOFだったら対処する、などすれば平気かと。
0434デフォルトの名無しさん
NGNG気にしなくていい。>>421とか単に人を叩いて優越感に浸ってるだけだから。
0435デフォルトの名無しさん
NGNG043660cm浮き上がるストレート
NGNG>>408
今僕がプログラムで絵を書く場合はエスケプの色変えとカーソル移動を
使用して書いています。しかし最小単位が文字単位なので
荒い絵になってしまいます。
または外字エディタを使って行っています。
この方法はは絵を文字のように使用できて楽なのですが
色が1色、パソコンが変わるたびに登録しなおさなければならない
等の制約があります。
043760cm浮き上がるストレート
NGNGエスケプを使用するやり方はこんな感じでやります。
setpixel()を使用する方法はどのように記述すればよいのでしょう?
void main(void)
{
int y=0,x=0;
char suraimu[9][9]=
{
"000040000",
"000040000",
"000444000",
"004040400",
"044444440",
"441444144",
"444111444",
"444444444",
"044444440",
};
for(y=0,x=0;y<=8;x!=8?x++:(x=0,y++) )
{
printf("\x1b[%d;%dH",y+1,x*2+1);
printf("\x1b[%dm ",suraimu[y][x]-8);
}
printf("\x1b[0m");
}
0438デフォルトの名無しさん
NGNGそれはDOS?Windows?
コンパイラは何使ってるの?
0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG>[今週のProgramming Q]
>Q. C言語で表示する文字の色や大きさを変える
>「○○ちゃん。今度は文字に色つけて,おっきくして,亀の絵もいれてね。」
>確かC言語にはグラフィックス機能はないのでは……。
↑かなりワラタ。
誰か答えてあげて。
044160cm浮き上がるストレート
NGNGvisual c++6.0を起動してCプログラムを書いてます。
プログラムの技術はそこそこあるとは思うのですが、
(今SRPG、将棋、野球ゲームを作ってます)
ただコンパイラとかOSとか違いとかほとんどわからないので、
コンパイラやOSが違うと使えないとかが全然わかりません。
0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNG野球ってベストプレープロ野球みたいなシミュレーションだよね?
ソースうpキボンヌ
0444デフォルトの名無しさん
NGNG将棋って森田将棋みたいなのだよね?
ソースうpキボンヌ
0445デフォルトの名無しさん
NGNGSRPGってスーパーロボット対戦みたいなのだよね?
ソースうpキボンヌ
0446デフォルトの名無しさん
NGNG野球ってエポック社の野球盤みたいなシミュレーションだよね?
ソースうpキボンヌ
044760cm浮き上がるストレート
NGNGピッチャーのボールの起動のリアルさを追及しています。
リリースポイント、初速、飛び出す角度、回転の角度、回転力を
1/100秒単位で計算して表示しています。
後は風力、気圧、縫い目の角度等を入れるともっとリアルになるのですが、
今の技術では難しいです。
パワプロはここの部分は雑なので
対抗するにはこういうクロート好みの要素も必要かと。
ゲームの分野は含みを持たせているので、まだ決まっていませんが、
スポーツかシミュレーションになると思います。
044860cm浮き上がるストレート
NGNG駒は外字エディタを使用して表示しています。
コンピューターとの対戦はまだできません。
棋譜の保存はできます。
今は自動詰め将棋生成機能を制作しています。
CONとの本将棋対戦ができるようになるのはいつのことか。
04492cm沈むストレート
NGNGピッチャーのボールの転がるリアルさを追及しています。
リリースポイント、初速、飛び出す角度、回転の角度、回転力を
中央のツマミと左のツマミの磁石で調節しています。
後は人型の人形、ホームランの穴、消える魔球の穴を入れるともっとリアルになるのですが、
今の技術では難しいです。
045060cm浮き上がるストレート
NGNGこれも含みを持たせるために、FE系、スパロボ系とかは
まだ決めていません。まずはSRPGツクールみたいなのを作り
どういうタイプにも対応できるようにして
それから決めようと思っています。
ただ一番の候補はFEとシレンを合わせたようなやつです。
FEの戦略性と、シレンのスピード性を併せ持つような感じです。
0451デフォルトの名無しさん
NGNGSUPAROBOシステムです。それはまだ決定していません。
それが第一にSRPG TSUKURUみたいであることは作ります。
それは任意のタイプにそれによって対応させることができます。
また、私は、配置の方法を思います。候補、1番は単にFEとSHIRENを
結合した仲間です。FEの戦略性質およびSHIRENの速度性質を
持っているのはタッチです。
0452デフォルトの名無しさん
NGNGソースは?
アプするところが無いならここに全部貼れ
0453デフォルトの名無しさん
NGNGSUPAROBOシステムです。それはまだ決定されません。
それを見るために私が望むSRPG TSUKURU--最初に
(1番目)それは現われることができます、また、あるものは、
合意の中でそれによってそれを更に作る任意のタイプを
作ることができます、私は、配置の方法を考慮に入れます。
候補および1番はFEとSHIRENを単に組み合わせた友達です。
タッチは、FEの戦略特徴およびSHIRENの速度特徴を持っています。
0454デフォルトの名無しさん
NGNGDOSなら \x1b[〜とかで色をつけられなかった?
それプラス、亀のAAか・・・??(爆
0455エディタ製作中@クソ初心者
NGNGエディタ作ってるC言語初心者です。
えっと、今回は謎の文字出現&謎の文字化けのバグについて、
アドバイスいただきたくて来ました・・・(汗
だいたいのテキストは正常に読めるのですが、
まれに一部文字化けするテキストがあります。
その文字化けする文字が含まれてる別のテキストだと、
正常に読めたりするので、まったく原因不明です・・・(涙
それと、まれに謎の文字が出現するテキストがあります・・・
たとえば、俺自作エディタでエディタソースを読むと、「る */」という文字が
出現する所があります・・・
これも、さっぱり原因不明です・・・(涙
http://isweb25.infoseek.co.jp/computer/pcqa-2ch/cgi-bin/img/375.zip
ここにソースを上げさせてもらいました。
助けてもらってばかりで申し訳ないですが・・・
どうか、よろしくお願いします。
0456デフォルトの名無しさん
NGNG見てないからなんとも言えないけど、
デバッガで調べてみた?
っていうか、いきなりソース見ろって言われてもめんどくさいよ。
短い文で説明するのも力だと思うし、
それにさ、せめてzipとかじゃなくて、
問題ありそうなところの
.cとかで一枚にまとめるとかしてよー。
いわゆるソースまるなげ君は
うざいよ。
0457エディタ製作中@クソ初心者
NGNG申し訳ないッス。
えっと、問題ありそうな部分という所すら
検討がつかない状態だったりします(汗
いろいろ自分なりに、見てみたのですがさっぱりで・・・(涙
もうしばらくソース眺めてます。
ありがとうございました。
0458デフォルトの名無しさん
NGNG0459エディタ製作中@クソ初心者
NGNGはい、Ctrl-Zで終了します。
今気づいたら、文字入力にバグがありますね・・・
さっき改造した時に新しいバグができてしまったようです・・・。
これも、修正しなくては・・・。
0460デフォルトの名無しさん
NGNG見る変人もいるが余り気にするな
0461デフォルトの名無しさん
NGNG最初のファイル読み込みでコケてるんじゃない?
配列txtの内容をどっかに吐き出してみるとか
0462デフォルトの名無しさん
NGNG古いマシンではどんなパフォーマンスになるか分からんから
dellineとかinslineとか利用できるなら利用して
必要部分だけの描画にしたほうが
いいかもしれないようなどうでもいいような
0463デフォルトの名無しさん
NGNG一行の最大文字数と思わせておいて、'\0'を含むサイズだという
0464デフォルトの名無しさん
NGNG改行文字も明示がいいなあ
0465エディタ製作中@クソ初心者
NGNGありがとうございます。
でも、実際にソースまる投げで質問してるので・・・
やっぱり、うざいヤツだと思われても仕方ないです(汗
このスレには、親切な方が多いので、甘えてしまったりしてます(汗
>>461
アドバイスありがとうございます。
わかりました。
まだ、文字化けやらの問題が多いので
ファイル出力機能は実装してなかったのですが・・・
一度、デバッグ用のファイル出力処理を作ってみます。
ありがとうございます。
>>462
アドバイスありがとうございます。
実は、自分でも再描写する時、画面がうるさく感じて、
どうにかしてスムーズに再描写できない物かと考えてました。
delline関数やinsline関数ってのがあるんですね・・・。
どうやら、2つの関数が使える環境のようなので、
組み込んでみます。 ありがとうございます。
0466462
NGNGconio.hの一部の関数がバグることがあるようだという意味ね
0467エディタ製作中@クソ初心者
NGNGえっと、この辺の設定は・・・
自分が分れば良いや、的な所があります(w
>>464
カーソルの形状ですか・・・。
う〜ん、この辺は後々ということで・・・(汗
改行の明示は、がんばって組み込んでみます。
0468エディタ製作中@クソ初心者
NGNGあれ?そうなんですか?
コンパイラは、bcc32です。
コンパイラは、もちろん32ビットコンパイラ。
コンパイルしたファイルも32ビットの実行ファイルですので、
そういう不都合は無いと思ってたのですが・・・(汗
0469デフォルトの名無しさん
NGNG>>468 WindowsのDOSエミュレーションが不完全かもしれないってことじゃない?
047060cm浮き上がるストレート
NGNG点はSetPixel()を使えば打てるとのことですが、
SetPixel()を使うためにその前に何を記述しなければならないのでしょう。
持ってる本に「Windowsプログラムを10倍簡単に作る」というのがあって、
そのなかにSetPixel()のことが乗っていたのですが、この本は
ヘッダの呼び出し→そのヘッダがまた呼び出す、がいっぱいあり
どれが必要かわかりません。
もし全部必要なら困ってしまいますが。(点をひとつ打ちたいだけなのに)
点を打つためには画面を初期化しなければいけないみたいなのですが
その初期化さえできれば点を打てるようになるのでしょうか。
0471エディタ製作中@クソ初心者
NGNGおっと・・・
失礼しました。
改行部分からカーソルが飛び出さないように
ってことだったんですね(汗
わかりました。
組み込んでみます。
DOSのエミュレーションの問題ですか・・・。
その辺の不都合は、どうしようもないですね・・・(涙
わかりました。 不都合が出そうな関数は避けて使っていきます。
今の所、DOSが悪いと思うような不都合はない・・・と思いますが・・・
変な文字が出るのは、DOSの不都合なのでしょうか・・・。
とにかく、配列txtを書き出して見てみます。
ありがとうございます。
0472デフォルトの名無しさん
NGNG必要なヘッダはwinodws.h
必要なライブラリはgdi32.lib
あんた技術あるんだったらここから先は自分で出来るだろ
ついでに大サービスだ
http://www.microsoft.com/japan/developer/library/jpgdipf/_win32_setpixel.htm
0473エディタ製作中@クソ初心者
NGNGソース内に、カーソル移動をしていると、エディタが落ちる事があると書いてますが、
原因が分りました。
左右のカーソル移動は、2バイト文字に対応して
2バイト文字も一文字として進みますが、
上下のカーソル移動が2バイト文字に対応してないので、
上下にカーソルを移動して左右にカーソル移動させると、
エディタが落ちることがあります。
まったく、うっとうしいエディタで申し訳ないです(汗
0474デフォルトの名無しさん
NGNGstrncpyって打ち切りの場合、ヌルターミネータ付けてくれないよね?
buf[80] = '\0';
が要るんじゃないか?
167行目〜
/* 画面にテキストを表示 */
textcolor(LIGHTGREEN);
clrscr();
for (i=0; i<=22; i++) {
gotoxy(1, (i+1));
strncpy(buf, txt[i], 80);
cputs(buf);
}
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNG0477474
NGNG0478474
NGNG13.2:
なぜstrncpy()はコピー先の文字列に、終端文字の'\0'を付けないことがあるのか。
A:
元々はstrncpy()は、今となっては時代遅れになってしまったデータ 構造、
すなわち固定長で必ずしも\0で終わるとは限らない"文字列"を 扱うために
設計された(strncpy()の関連する奇妙なところは、指定さ れた長さになる
まで\0を埋めることである)。確かにこの"文字列"以 外を扱うときは少し
間抜けである。しばしば目的の文字列に、自分で' \0'を追加しなければな
らない。この問題はstrncpy()のかわりに strncat()を使うことで回避する
ことができる。もしコピー先の文字 列が最初は空なら、strncat()が、
strncpy()がやってくれると思って いたことをやってくれる。他には
sprintf(dest, "%.*s", n, source) が考えられる。
(文字列ではなく)任意のバイトをコピーするときには、普通は memcpy()
のほうがstrncpy()よりも適切なルーチンである。
0479エディタ製作中@クソ初心者
NGNGありがとうございました!
謎な文字が表示されることなく、
テキストが表示されるようになりました!
ご迷惑おかけしました。
まともにテキストが編集できるよう、がんばって改良を加えていきます。
本当、ありがとうございました。
0480デフォルトの名無しさん
NGNGそれにしても汚ねーソースだなー
もう少し綺麗に書けんのか
0481デフォルトの名無しさん
NGNGここが阿呆らしい。だれだこんな仕様にした奴は。
あとputsは改行するのにfputsは改行しないとか。
048260cm浮き上がるストレート
NGNGWINGDIAPI COLORREF WINAPI SetPixel
(HDC hdc,int X,int Y,COLORREF crColor);
の所に「構文エラー : ';' が 'type' の前に必要です。」
と出てエラーになるのですがどうすればよいのでしょう。
0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNGMFCを使うなら、
CDC* pDC;
pDC = GetDC();
pDC->SetPixel(x, y, RGB(0, 0, 255));
ReleaseDC(pDC);
C++だけどさー。
048560cm浮き上がるストレート
NGNG(
HDC hdc,←この行のエラー_)がtypeの前に必要、SetPixelVの実引数が少なすぎる
int x,
int y,
COLORREF crColor
);←この行のエラー:構文エラー_)
これら3つを解決するためにどう書き換えれば良いのでしょう。
0486デフォルトの名無しさん
NGNGところで、それどこに書いたの?
048760cm浮き上がるストレート
NGNGmain()の中にです。
SetPixelVの前にウインドウを開き、最後に
void GEnd(void)
{
MSG msg;
EndPaint(SLS_hwnd,&hpaint);
while(GetMessage(&msg,NULL,0,0))
DispatchMessage(&msg);
}
を呼び出して終了します。
0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNG実際のソースをかいてちょ。
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNGどうだろう?C言語を直接処理するものだけかもね。
コンパイラは言語に依らない共通のオブジェクトファイルを生成し、リンカはそれらを実行可能ファイルに仕立てる。
049360cm浮き上がるストレート
NGNG#include <windows.h>
#include "GInt.h"
#include "GetMaxScreenY.h"
#include "GetMaxScreenX.h"
void main(void)
{
gint(640,400);
SetPixelV
(
HDC hdc,
int x,
int y,
COLORREF crColor
);
gend();
}
呼び出され元は少し長いので省略します。
SetPixelV();を書かないときはエラーにならないので
ここが問題だと思いますが
0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG野球ゲーム作ったんだよな・・・。
ネタであってくれ。
0496デフォルトの名無しさん
NGNGコピー&ペーストしたと。API云々以前に、文法を解っていないと。
049760cm浮き上がるストレート
NGNGどう直せばよいのでしょう。
0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNG050160cm浮き上がるストレート
NGNG野球ゲームはグラフィックを外字エディタなどで作ったので。
こういうドット文法は初めてなのです。
グラフィックにこだわらないなら、
printf()、+-*/%、勝俣、getch()、条件文等を
工夫することによってどんなものでも作れますが、
グラフィックも覚えたいと思い質問しました。
050260cm浮き上がるストレート
NGNGまさにそのとおりです。
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNGまずは C言語を覚えましょう。
0505デフォルトの名無しさん
NGNGWindowsでプログラミングをするにあたって、ウィンドウを出してグラフィックをするのは
C&Win32APIはかなり難解です。
C++&MFC(=VC++)とかの方が比較的易しいです。
C++&.NETも易しいかも。
0506デフォルトの名無しさん
NGNGあなたはまるで疑問を持っていない様子ですね。
表現は悪いですが、正直な所、非常に不気味です・・・。
0507デフォルトの名無しさん
NGNG050860cm浮き上がるストレート
NGNG確かにVBはグラフィック楽ですよね。
でも制作スピードは落ちてしまいます。
かなりゲームサイズが大きいので、
スピード、総合力ではCが一番だと思います。
ゲームの三要素である、システム、音楽、グラフィック
前の二つは得意なのですが。
0509デフォルトの名無しさん
NGNGCでごにょごにょやるよりはよっぽど生産性はいいと思うが。
0510デフォルトの名無しさん
NGNG15年くらい前にあったようなテキストのゲームが作れたくらいで
得意とか言わないでくれ。
0511デフォルトの名無しさん
NGNGネタにマジレスっぽいが、
C言語の初歩も理解してないのになぜ制作スピードがVBより早いと
言い切れるのか?
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNGCだけでは無理。
051560cm浮き上がるストレート
NGNG確かにそうですね。
関数呼び出しの中でデータ型宣言するのはおかしいですし。
こういう特殊な文法なのだと思ってましたが。
SetPixelV(,640,400,色番号);
こういうにして指定の座標に指定の色の点を打つみたいに
使うのでしょうか。
その場合は実引数の一つ目はどういう風に使うのでしょう。
0516デフォルトの名無しさん
NGNGウィンドウのハンドルとか取ったりしなきゃだめだよ。
それより、ウィンドウは出てるの?
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG関数呼び出しというか・・・あれは関数のプロトタイプ宣言だろ・・・
戻り値の型が省略されている上に、関数内に書かれているからコンパイラは関数呼び出しと勘違いするだろうけど。
051960cm浮き上がるストレート
NGNG将棋をCとVBの両方作りました。
Cは外字エデッタで、VBはCの外字エディタのグラフィックと同じくらい
簡単なのを取り込みました。
将棋というグラフィックの量が少しでいいゲーム、
Cの方が使い慣れてるというのもあると思いますが、
テキスト内だけでほとんど作ってしまえるところが
速いところだと思います。
0520デフォルトの名無しさん
NGNGそう言う実装依存のところをさっさと抽象化できるかが開発の肝だと思われ。
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNG052360cm浮き上がるストレート
NGNGはい、出ています。
0524デフォルトの名無しさん
NGNGこの状態からCでつくるとなると溜め息が出るな。
0525デフォルトの名無しさん
NGNGものでもあったのだけど、最近のモダンな言語は、それと比べて官僚的な
開発スタイルを要求するのかもしれない。
0526デフォルトの名無しさん
NGNGそのウィンドウはどうやって出しましたか?
0527デフォルトの名無しさん
NGNGそう?一回書いたらそれ半永久的に使い回せると思うけど。
0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNG"〜.h"だから多分自作だと思うけど・・・
0531デフォルトの名無しさん
NGNGそれは C言語というよりAPIやライブラリの問題。
0532デフォルトの名無しさん
NGNGhttp://www.vector.jp/soft/win95/prog/se187820.html
http://www.hir-net.com/book/book20/book20_s2.html
053360cm浮き上がるストレート
NGNGでかいし、ホームページもないので全部は無理ですが、
よく使う作った関数を乗せます。
カーソル移動などに使います。
void ChangeYX(int *y,int *x,int yMin,int xMin,int yMax,int xMax,int loop,int keyEffect)
{
if(keyEffect==2)
if(*y+1<=yMax)*y+=1;
elseif(loop==1) *y=yMin;
if(keyEffect==4)
if(*x-1>=xMin)*x-=1;
elseif(loop==1) *x=xMax;
if(keyEffect==6)
if(*x+1<=xMax)*x+=1;
elseif(loop==1) *x=xMin;
if(keyEffect==8)
if(*y-1>=yMin)*y-=1;
elseif(loop==1) *y=yMax;
}
0534デフォルトの名無しさん
NGNGintってinitのことかしら?初期化とか言っているし。
0535デフォルトの名無しさん
NGNG目次
第5章 描 画 …… 166
ウィンドウに点を打つ 点関数 pset
排他的論理和で点を打つ 論理差点関数 psetXOR
論理和で点を打つ 論理和点関数 psetOR
psetを使え(w
0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNG質問。
x = ((x = (x + 1) % xMax) <= xMin)?xMin:x;
とかではダメですか?
054060cm浮き上がるストレート
NGNGWindowsプログラムを10倍簡単に作るプログラムというのに乗っている
やつです。
発行所
http://www.kyoritsu-pub.co.jp/
http://www.hir-net.com/book/book14/
054160cm浮き上がるストレート
NGNGスペースが消えてしまったので。
0542デフォルトの名無しさん
NGNGそれは没。
素直にif文にしろ。
0543デフォルトの名無しさん
NGNGリンク先が違うぞ。
http://www.hir-net.com/book/book20/index.html
0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNG054660cm浮き上がるストレート
NGNGすぐには解りませんが、3項演算子を使ったやつですね。
MaxとMinをひとつの式に書いているんだとと思いますが。
ここでは使ってませんが、繰り返し分でyとxの2種類のカウンタがあるとき
等によく使います。
一回試してみます。
0547デフォルトの名無しさん
NGNGSetPixelVでデスクトップに絵を描く例。
でもコンソールに直接描画したいなら使えないよ。
#include <windows.h>
int main(void)
{
HDC hDC;
int x, y;
hDC = GetDC(NULL);
if(hDC) {
for(y = 0; y < 256; y++)
for(x = 0; x < 256; x++)
SetPixelV(hDC, x, y, RGB(x,y,y));
}
ReleaseDC(NULL, hDC);
return 0;
}
0548デフォルトの名無しさん
NGNGこれって確か、ライブラリじゃなくて、関数のソースまるごと一本 #include
して使うんだよね?違ったっけ
0549547
NGNGReleaseDCの行を1行だけ上に移動してifブロックの中に入れてね。
0550デフォルトの名無しさん
NGNG謎も何も >>470 に書いてあるし。
0551デフォルトの名無しさん
NGNGほんとだ。別の話題で気が付かなかった
055260cm浮き上がるストレート
NGNGヘッダがまたヘッダがまたヘッダと呼び出していくのでどれを使えば
良いのか解りません。一応全部のファイルの使われ方を
エクセルにまとめてあるのですが、重複で呼び出されていたり
また、.cのどこの部分を使えばよいのかもわかりませんでした。
0553デフォルトの名無しさん
NGNGその本を持っていない人に聞いても、わからないね。
0554デフォルトの名無しさん
NGNG激しく未定義の動作だと思うが。
0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNGhttp://www.vector.jp/soft/win95/prog/se187820.html
をいじってみなきゃワカランということか
0557デフォルトの名無しさん
NGNGインクルードガードがあるはずだ。呼び出しが重複していても問題ない。
自分が使うものは全部インクルードしる!
0558デフォルトの名無しさん
NGNGgint_t2.cpp:8:#include "pset.fx" // 点関数
gint_t2.cpp:27: pset(CX+int(CX*cos(pi2*n1*t)),CY+int(CY*cos(pi2*n2*t)),1);
gwait_t1.cpp:10:#include "pset.fx" // 点関数
gwait_t1.cpp:51: pset(x+1,198,7); // 描画領域際に白い点
gwait_t1.cpp:70: pset(x,198,7); // 描画領域際に白い点
rrectangle_t2.cpp:10:#include "pset_mode_set.fx" // 描画モード設定関数
rrectangle_t2.cpp:81: pset_mode_set(1); // XOR指定
ここまでしかワカランが
0559デフォルトの名無しさん
NGNG方がいいかと。
056060cm浮き上がるストレート
NGNGエラー、警告はありませんでしたが、止まってしまいました。
パソコンやOSの違いもあるのかもしれませんが。
でもhDC等の使い方が解りやすかったので、DOS画面に使うときにも
感覚的に応用できそうです。ありがとうございました。
0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNG10倍くらい簡単にできるが、それを発展させようとしたら難しさは∞。
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNG持ってる。中身も見ずにネット通販で買ったんだが。
#include "get_window_pos_x.fx" // ウィンドウX位置関数
#include "get_window_pos_y.fx" // ウィンドウY位置関数
#include "get_max_screen_x.fx" // 最大画面Xサイズ関数
#include "get_max_screen_y.fx" // 最大画面Yサイズ関数
#include "getwinx.fx" // ウィンドウXサイズ関数
#include "getwiny.fx" // ウィンドウYサイズ関数
:
0565デフォルトの名無しさん
NGNG> void GEnd(void)
> {
> MSG msg;
> EndPaint(SLS_hwnd,&hpaint);
> while(GetMessage(&msg,NULL,0,0))
> DispatchMessage(&msg);
> }
これがそのライブラリの中身だとしたら、
EndPaintの使い方が間違ってるよ。
EndPaintはWM_PAINTメッセージに応答する時に使う。
0566デフォルトの名無しさん
NGNG単に描画してそのまま終了するプログラムで、
止まることは考えにくいと思うよ。
056760cm浮き上がるストレート
NGNG昔は簡単だったみたいなのですが。
(友達が持っていたのを見た。行番号ありの黒いテキスト画面)
今はその環境を作ることだけでも大変なんですね。
でもなぜそうなったのでしょう。逆に便利になったこともあるのでしょうか。
0568デフォルトの名無しさん
NGNGまずイベントドリブンという概念を理解しないといかんな。
10倍の本はその概念を無視しているわけだが。
0569デフォルトの名無しさん
NGNGってBASICのことか?
057060cm浮き上がるストレート
NGNG止まるというか画面が飛んでしまい、
黒いバックに青いウインドウがでて(VAIO独特?)
エラーが発生しましたとなりキー入力を受けつかなくなったので
強制終了しました。
057160cm浮き上がるストレート
NGNG多分そうだと思います。友達の友達が作ったらしいのですが、
レースゲーム、2×2の横見バレーボール、FFの格闘ゲーム
等やった覚えがあります。
0572デフォルトの名無しさん
NGNG10年以上前の話だろ?
057360cm浮き上がるストレート
NGNG7、8年前です。まだマウスがなく、フロッピードライブも2段ついていたような。
0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNGコンソールに直接描画する方法だ。描画ルーチンは >>547 をそのまま拝借。
イベントドリブン? 何それ(w
#include <windows.h>
BOOL IsWindows9x()
{
return (GetVersion() >= 0x80000000);
}
int main(int argc, char *argv[])
{
HWND hWnd;
HDC hdc;
char szOldText[80], szId[32], szTemp[32];
int x, y;
GetConsoleTitle(szOldText, sizeof(szOldText));
wsprintf(szId, "grph%08X", GetTickCount());
SetConsoleTitle(szId);
do {
Sleep(100);
GetConsoleTitle(szTemp, sizeof(szTemp));
} while (lstrcmp(szId, szTemp));
0576デフォルトの名無しさん
NGNGhWnd = FindWindowEx(NULL, NULL, "tty", szId);
} else {
hWnd = FindWindowEx(NULL, NULL, "ConsoleWindowClass", szId);
}
SetConsoleTitle(szOldText);
if (IsWindows9x()) {
hWnd = FindWindowEx(hWnd, NULL, "ttyGrab", NULL);
}
hdc = GetDC(hWnd);
for(y = 0; y < 256; y++)
for(x = 0; x < 256; x++)
SetPixelV(hdc, x, y, RGB(x,y,y));
ReleaseDC(hWnd, hdc);
return 0;
}
0577デフォルトの名無しさん
NGNGその点最近はグラフィックスが・・・
Javaですかね?グラフィックスを多用するなら。
「10倍」は、#includeの羅列と、
その関数の行の多さを認識して萎えたね。
0578デフォルトの名無しさん
NGNGグラフィカルユーザーインターフェース(GUI)は
ユーザーに優しくてプログラマに厳しい。
従来のCUIはその逆。
そろばんと同じで慣れれば効率いいんだけどね
UNIX等ではいまだにCUIが幅をきかせてるけど
それはユーザ=プログラマだから。
0579デフォルトの名無しさん
NGNG> コンソールに直接描画する方法だ。
コンソールに描画したところで、再描画ができないんだから
意味がない。
0580h
NGNG---●●●変態痴女を紹介致します。●●●---
例えば>欲求不満オマ●コヌレヌレ女・露出オナニー痴女・
フェラチオおしゃぶり女・ミニスカ・ノーパン娘・巨乳パイズリ娘・
アナルSEXおねだり娘・オマ〇コ弄られマン汁グチョグチョ女・
SM牝豚・緊縛・浣腸・スカトロ・等・・・刺激を求めています。
●●●学生・OL・主婦・モデル・牝豚・女王様・オカマ等・多数!●●●
090-8002-8356番
-----------------------------
http://www.mttdocomo.jp/
-----女性アルバイト随時募集・高収入(日払い)月100万円可能-----
http://www.mttdocomo.jp/
Iモードはこちら→http://www.mttdocomo.jp/i
058160cm浮き上がるストレート
NGNGすごい!!あんだけ短い文章で。きれいな背景が出てきました。
しかも同じウインドウだし。
ぜひ参考にさせていただきます。ありがとうございました。
0582デフォルトの名無しさん
NGNG細かいことは気にすんな(w
058360cm浮き上がるストレート
NGNG確かにTURBO_Cは簡単そうですね。
古本屋で、「自習TURBOCゲームで挑戦」という本を見つけ持ってますので、
少し知っています。ただ関数とか制御とか1分今では使われてないとかで
グラフィック使用はできませんでした。
ただゲームの作り方は結構この本で学びました。
0584デフォルトの名無しさん
NGNGで、何を聞いているんだっけ?
解決した?
0585デフォルトの名無しさん
NGNGOpenGL+GLUT だと初期化100行くらいでとりあえずグラフィックできる。
058660cm浮き上がるストレート
NGNGなるほど。誰にでも平均的に使いやすいように
変わってきたのですね。だから早い感覚を必要とする場合
その遠回りなところが逆に使いにくくなってしまうのですね。
0588デフォルトの名無しさん
NGNG058960cm浮き上がるストレート
NGNGちょっと解りませんでした。3項演算子を使うときはこんな感じで
for(y=-9,x=-9;y<=9;x!=9?x++:(x=-9,y++) )
代入にはあまり使わないので。
僕の場合はカーソル移動に使うボタン分書かなければいけませんが
この場合は見てる感じそれをひとまとめにしてしまうのでしょうか。
もしそうならかなり便利ですね。この感覚を他にも適用できたら、
テキスト量を減らせそうです。
0590デフォルトの名無しさん
NGNG> for(y=-9,x=-9;y<=9;x!=9?x++:(x=-9,y++) )
はあ?
for(y = -9; y <= 9; y++)
for(x = -9; x <= 9; x++)
のように素直にネストすればいいじゃん。
そんなことしても効率が悪いだけだよ。
0591デフォルトの名無しさん
NGNG0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNGはあ?メモリ?
0595デフォルトの名無しさん
NGNGvarchar版のstrcpyを作ろうとしてるんですが(゚д゚)ウマーく行きませぬ
な ぜ で せ う?
/*-----------------------------------------------------------*/
#include <stdio.h>
vstrcpy(void *vchar, char str*);
int main(void)
{
struct { unsigned short len; unsigned char arr[40]; } username;
vstrcpy(username, "moe");
printf("str %s\n", username.arr);
printf("len %d\n", username.len);
}
vstrcpy(void *vchar, char str*)
{
strcpy(vchar->arr, str);
vchar->len = strlen(str);
}
/*-----------------------------------------------------------*/
こんな感じなんですが
0596デフォルトの名無しさん
NGNGトリッキーなコード書いても
自己満足以外にえられる物はないよ。
むしろコンパイラの最適化を妨げになるかも。
それに脳みそ100%フル稼動させないと書けない、追えないようなコードには
バグも沢山いるもんだ。
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNG0599595
NGNGえと。。。 void * って使えないんですか?
どっかに、どんな型を指してもよいポインタとかあった記憶があるのですが
0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNGコンパイル通る?
vcharの指すオブジェクトの大きさが不明だと思うんだけど。
0602601
NGNG不明な構造体を使っているし。
0603デフォルトの名無しさん
NGNGvstrcpyの中で、vcharがusername構造体であることを明示してやらないと無理。
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNGところで、vstrcpyの呼び出しで第一引数として渡しているものはポインタじゃないよな。
0607595
NGNG>601
まったく通りません
>602
>603
やっぱりそうですか
しかし、プリコンパイラ自動生成の型の為こっちではダメなんですよ
>604
>605
わかりました・・・
【失敗】 λ..........トボトボ
0608デフォルトの名無しさん
NGNGポインタだろ。
0609デフォルトの名無しさん
NGNGusernameそのものに見えるけど。
0610デフォルトの名無しさん
NGNGvstrcpy(&username, "moe");
ってことでしょ。それと関数の中で構造体を定義することって
できたっけ規格上。
0611デフォルトの名無しさん
NGNGできる。もちろんスコープは関数内のみ。
0612デフォルトの名無しさん
NGNGstruct{ unsigned short len; unsigned char arr[1]; } vstr_dummy;
を定義して、vstrcpyの中で vcharを vstr_dummyのポインタにキャスト。
ただし、アライメントを合わせておかないとドツボにはまる可能性あるの
で注意。
0613デフォルトの名無しさん
NGNGC++のクラスは駄目なんだろうか。メンバ関数の定義をどこに
書くのかが分からない。
0614デフォルトの名無しさん
NGNGstruct vstr{ unsigned short len; unsigned char arr[1]; func(int l ) { len=l} } ;
でいいのでわ?
0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNG分かりません
0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNGCだからいいじゃんという問題ではないらしい(;´д`)
0619デフォルトの名無しさん
NGNG愛してる
0620デフォルトの名無しさん
NGNGホントですね、ちょいと調べてみました。
>9.8 - Local class declarations [class.local]
>-1- A class can be defined within a function definition; such a class is called
>a local class. The name of a local class is local to its enclosing scope.
(中略)
>Member functions of a local class shall be defined within their class
>definition, if they are defined at all.
微妙に板違いすまそ
0621名無しさん@カラアゲうまうま
NGNG微妙にスレ違いかも知れんが、板違いとは思えない罠。
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNG腹痛くらい気合で治しなさい。
0624デフォルトの名無しさん
NGNGそれでも痛かったら食中毒か虫垂炎かもしれん。
0625デフォルトの名無しさん
NGNG不思議なことに腹痛がピタリと治まったそうです。
0626デフォルトの名無しさん
NGNG0627デフォルトの名無しさん
NGNG腹が頭痛です。
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNG数学板行け
0630デフォルトの名無しさん
NGNG「ユークリッドの互除法 C言語」でぐぐればすぐ見つかるぞ。
http://www.u-gakugei.ac.jp/~miyadera/LECTURE/ElecBook2/ptech11.htm
0631デフォルトの名無しさん
NGNG求めてあげるから2つの自然数をだせ
0632デフォルトの名無しさん
NGNG063360cm浮き上がるストレート
NGNG_はスペースです。
unsigned_int_CheckSaidaiKouyakusuu
(unsigned_int_numberA,unsigned_int_numberB)
{
__unsigned_int_a=0,saidai=0;
__for(a=1;a<=65535;a++);
____if(numberA%a==0_&&_numberB%a==0)
______saidai=a;
__return(saidai);
}
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNGforの行の最後のセミコロンだけ取れば、いちおう動きそうだがな。
それでもゴミには変わりないが
0638デフォルトの名無しさん
NGNGじゃあ俺もついでに。
65535って書いてるけど、intが16ビットの処理系ではアウト。
0639デフォルトの名無しさん
NGNG#include@<stdlib.h>
int@main(int@argc,@char@*argv[])
{
@@@@int@x,@y;@@@@@@@@@/*@引数を入れる@*/
@@@@int@i,@n;@@@@@@@@@/*@カウンタを回す@*/
@@@@int@answer;@@@@@@@/*@答えを入れる@*/
@@@@x@=@atoi(argv[1]);
@@@@y@=@atoi(argv[2]);
@@@@if(x@<=@y)@{
@@@@@@@@n@=@x;
@@@@}
@@@@else@{
@@@@@@@@n@=@y;
@@@@}
@@@@for(i=1;@i<=n;@i++)@{
@@@@@@@@if@((@x@%@i@==0)@&&@(y@%@i@==0))@{
@@@@@@@@@@@@answer@=@i;
@@@@@@@@}
@@@@}
@@@@printf("%d@と@%d@の最大公約数は@%d@です。\n",@x,@y,@answer);
@@@@return@0;
}
0641デフォルトの名無しさん
NGNG下手な文字化け化なんかですか?
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNG>ちなみに@は半角空欄です。
Tabキーの一般的な使い方知ってるか?
0644デフォルトの名無しさん
NGNGfor (i=0; i<INT_MAX; ++i)
とするのが良いのではないか?
0645デフォルトの名無しさん
NGNGPerlで書いてみて。
0648デフォルトの名無しさん
NGNG0649648
NGNG○
0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNG0653639==640
NGNG#include@<stdlib.h>
int@main(int@argc,@char@*argv[])
{
@@@@int@x,@y;
@@@@int@i,@n;
@@@@int@answer;
@@@@x@=@larger(atoi(argv[1]),@atoi(argv[2]));
@@@@y@=@smaller(atoi(argv[1]),@atoi(argv[2]));
@@@@i@=@x@%@y;
@@@@while(i@>@0)@{
@@@@@@@@x@=@y;
@@@@@@@@y@=@i;
@@@@@@@@i@=@x@%@y;
@@@@}
@@@@answer@=@y;
@@@@printf("%s@と@%s@の最大公約数は@%d@です。\n",@argv[1],@argv[2],@answer);
@@@@return@0;
}
0654653
NGNG{
@@@@if(x@<=@y){
@@@@@@@@return@x;
@@@@}
@@@@else{
@@@@@@@@return@y;
@@@@}
}
int@larger(int@x,@int@y)
{
@@@@if(x@>=@y){
@@@@@@@@return@x;
@@@@}
@@@@else{
@@@@@@@@return@y;
@@@@}
}
0655653
NGNG少し真面目に書き直してみました。
これだと先程のソースよりも速いと思います。
>>648
最初はそう思ったのですが、
それだと字下げ部分以外の半角スペースがうまく表現出来ないので。
どうせコピペ&置換するなら回数が少なくて済む方が良いと思い、
Tabも置換して半角スペースにしてしまいました。
0656デフォルトの名無しさん
NGNG__if(y==0)_return_x;
__else_return_gcd(y,x%y);
}
0657デフォルトの名無しさん
NGNG>int@larger(int@x,@int@y)
こーゆーのは、ちゃんと半角スペースで表現できるだろうが。
int larger(int x, int y)
0659デフォルトの名無しさん
NGNG#define max(a,b) ((a) < (b) ? (b) : (a))
#define min(a,b) ((a) < (b) ? (a) : (b))
0660デフォルトの名無しさん
NGNGネタにマジレス…じゃないの? ただ,こう何回もやられるとウザイね。放置しようや。
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNG#include_<stdio.h>
main(){
__int_i,j;
__scanf("%d%d",&i,&j);
__printf("%d",gcd(i,j));
__return_0;
}
_を半角スペースに置換してから実行。
0663デフォルトの名無しさん
NGNGunsigned かどうかを問題にしているのではないよ。
intが16ビットの環境では
for(a=1;a<=65535;a++)
このループが永遠に終わらない。
0664デフォルトの名無しさん
NGNGfor(unsigned int a=1;a<=MAXINT;a++)
0666デフォルトの名無しさん
NGNGなぜlimits.hをインクルードしてINT_MAXを使わない?
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNGこのアルゴリズムは無視してくれろ〜〜〜〜
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNG_や.はCの記号として出てくるので紛らわしい。
だが、半角スペースをわざわざ@と置換する手間があったら
全角スペースか に置換して欲しいと思う。
0672デフォルトの名無しさん
NGNGfor(a=1; a<=65535u; a++) 65535u とすれば、負数が 2 の補数表現で且つ ANSI C 準拠
の処理系なら止まるはずだけど、 定数が int のままだと止まらないよね
0673663
NGNGマジレス? そろそろ勘弁してよ。
> for(a=1; a<=65535u; a++)
ループの終了条件である、 a > 65535u
が成り立つような aの値を16ビットで表現できるの?
0674デフォルトの名無しさん
NGNGよってsizeof(short) == sizeof(int)が真になる処理系が存在する
代表的な処理系はLSI-Cだ
0675デフォルトの名無しさん
NGNGカウンタの最大値を議論しているようだけど、628に対する解答としては
653, 654に書かれたユークリッドの互除法を利用したものが一番高速だろうね。
コピペ&一括置換しないと読み難いけどね。
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG0678
NGNGregex? lex? regcmp?
0679デフォルトの名無しさん
NGNGsystem("grep");
0680デフォルトの名無しさん
NGNG------------------------------------------
ここまで読んでやった。
俺様用のしおり
------------------------------------------
0683デフォルトの名無しさん
NGNGint@gcd(int@x,int@y){
@@if(y==0)@return@x;
@@else@return@gcd(y,x%y);
}
main(){
@@int@i,j;
@@scanf("%d%d",&i,&j);
@@printf("%d",gcd(i,j));
@@return@0;
}
これが一番高速、 入力が。
ハットリ君がいっぱい・・・。
0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNGtypedef struct{
int a;
} KOUZOU1;
で、関数内で構造体の内容を変更したくなければ以下のようにしますよね
void fun1(const KOUZOU1* k1){
k1->a = 5 // 不可
}
typedef struct{
KOUZOU1* kou1;
} KOUZOU2;
のとき
void fun2(const KOZOU2* k2){
k2->kou1->a = 1; // 可
}
としても、関数内で変更できますよね。
それを変更できないようにconstすることってできますか?
0686デフォルトの名無しさん
NGNGKOUZOU2* k2 = new KOUZOU2;
k2->kou1 = new KOUZOU1;
delete k2;
としたとき、k2->kou1のメモリはどうなってるんですか?開放されたのか、
やってしまっているのかどっちでしょう?
0687デフォルトの名無しさん
NGNGCにはnewやdelete演算子はないが。
0688デフォルトの名無しさん
NGNGk2->kou1のメモリはリークしています。
k2->kou1のメモリはリークしています。
k2->kou1のメモリはリークしています。
k2->kou1のメモリはリークしています。
k2->kou1のメモリはリークしています。
k2->kou1のメモリはリークしています。
k2->kou1のメモリはリークしています。
0689デフォルトの名無しさん
NGNGstruct KOUZOU2
{
KOUZOU2() { kou1 = new KOUZOU1; }
~KOUZOU2() { delete kou1; }
KOUZOU1* kou1;
};
0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNG自分で処理を書くしかないよ。
(どっかから拾ってきてもいいけど)
0692デフォルトの名無しさん
NGNGよく学習用に作るよね。
1万桁の演算とか。
そんなに難しくは無い。
0693デフォルトの名無しさん
NGNGんですか??
0694デフォルトの名無しさん
NGNGん?どういう意味?
もうちょっと詳しく。
0695
NGNG3桁ずつカンマ出力していけ。
0696デフォルトの名無しさん
NGNG圧縮プログラムとかつくれます?
厨房な質問ですいません
0697デフォルトの名無しさん
NGNGsprintfで数字を文字列に直し、文字列操作で","入れてやるのが一番簡単。
0698デフォルトの名無しさん
NGNG例えば「1200」って入力します。
んでそれを関数に渡します。
関数で¥1,200-と変換後main関数
で出力。
というのを作りたいんですが・・・
0699デフォルトの名無しさん
NGNG圧縮ってデータ圧縮のこと?アルゴリズムさえわかればほとんど何でも
作れるよ。
0700デフォルトの名無しさん
NGNGすごく簡単に出来そう。
最初に¥をつける。
桁数 % 3 をスキップ
あとは、終わりまで3桁ずつカンマをつける。
0701デフォルトの名無しさん
NGNGXとYの答えを表示するプログラムを作りたいのですがなにから手をつけていいかわかりません。
どなたか作ってください。
対象となる式は二字の二次方程式までです。
よろしくお願いします。
0702デフォルトの名無しさん
NGNG宿題の丸投げですか?
0703デフォルトの名無しさん
NGNG環境によっては
locale(の LC_NUMERIC)を "japanese"にして printfで
printf("%'f" 123456);
とかで可能かも(Windowsだと他の方法ありそうだが)。
詳細は
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/sprintf.3.html
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/setlocale.3.html
あたり。
(自分の環境だと LC_MONETARYの設定ではうまくいかなかった)
0704703
NGNG"japanese"でどの環境でもうまくいくかはわからない。
(locale関連は良く知らないので)
0705デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1029422194/l50
0706
NGNG0707デフォルトの名無しさん
NGNG「4X + 5Y = 15 ; 12X + 3Y = 22」
じゃないの?つまり、パースから考えてくれと。
0708デフォルトの名無しさん
NGNGなんてのはあり?
0709デフォルトの名無しさん
NGNGそれは1次のような気が・・・
0710707
NGNG0711デフォルトの名無しさん
NGNG解けませんが?
0712デフォルトの名無しさん
NGNGありがとうございます。がんばってみます。
0713デフォルトの名無しさん
NGNG0714デフォルトの名無しさん
NGNGただ、初心者にはparseの方が大変だと思われ
071560cm浮き上がるストレート
NGNG今から書きます。
スペースは大文字のスペースですので、ビルドする前に書き直してください。
解、係数、右辺の値、全て整数でないとダメです。絶対値が大きすぎてもダメです。
いろんなパターンを試して大丈夫だったのですが、もしダメだったらごめんなさい。
(yの解は同じで、xの解が違うとかあるのかも)
071660cm浮き上がるストレート
NGNG#include <stdio.h>
#include <stdlib.h>
void MakeInputAtai(int*,int*,int*,int*,int*,int*);
int CheckSaisyouKoubaisuu(int,int);
void ShowError(void);
void main(void)
{
int xKeisuu1=0,yKeisuu1=0,uhenn1=0,up1=0;
int xKeisuu2=0,yKeisuu2=0,uhenn2=0,up2=0;
int saiKou=0;
int chigauFugou=0;
int ySa=0;
int uhennSa=0;
int y=0,x=0;
071760cm浮き上がるストレート
NGNGMakeInputAtai(&xKeisuu1,&yKeisuu1,&uhenn1,&xKeisuu2,&yKeisuu2,&uhenn2);
saiKou=CheckSaisyouKoubaisuu(xKeisuu1,xKeisuu2);
up1=saiKou/abs(xKeisuu1);
up2=saiKou/abs(xKeisuu2);
if((xKeisuu1>0 && xKeisuu2<0)||(xKeisuu1<0 && xKeisuu2>0))
chigauFugou=1;
if(chigauFugou==0)
{
ySa=yKeisuu1*up1-yKeisuu2*up2;
uhennSa=uhenn1*up1-uhenn2*up2;
}
else
{
ySa=yKeisuu1*up1+yKeisuu2*up2;
uhennSa=uhenn1*up1+uhenn2*up2;
}
071860cm浮き上がるストレート
NGNGif(ySa==0)y=0;
else y=uhennSa/ySa;
if(uhennSa%ySa!=0)ShowError();
x=(uhenn1-yKeisuu1*y)/xKeisuu1;
printf("\n(x=%d,y=%d)",x,y);
}
071960cm浮き上がるストレート
NGNGvoid MakeInputAtai(int *xKeisuu1,int *yKeisuu1,int *uhenn1,int *xKeisuu2,int *yKeisuu2,int *uhenn2)
{
printf("連立方程式の計算をするプログラムです\n");
printf("解が整数でない∨絶対値が大きすぎるとダメです\n\n");
printf("上の式のxの係数を入力してください ");
scanf("%d",*(&xKeisuu1));
printf("上の式のyの係数を入力してください ");
scanf("%d",*(&yKeisuu1));
printf("上の式の右辺の値を入力してください ");
scanf("%d",*(&uhenn1));
printf("下の式のxの係数を入力してください ");
scanf("%d",*(&xKeisuu2));
printf("下の式のyの係数を入力してください ");
scanf("%d",*(&yKeisuu2));
printf("下の式の右辺の値を入力してください ");
scanf("%d",*(&uhenn2));
}
072060cm浮き上がるストレート
NGNGint CheckSaisyouKoubaisuu(int number1,int number2)
{
int a=0,b=0,c=0;
int absNum1=0,absNum2=0;
int nowNum1=0,nowNum2=0;
absNum1=abs(number1);
absNum2=abs(number2);
for(a=1;;a++)
{
if(absNum1*a>=32768)ShowError();
nowNum1=absNum1*a;
if(nowNum1<nowNum2)continue;
else if(nowNum1==nowNum2)return(nowNum1);
072160cm浮き上がるストレート
NGNGelse
{
for(b=2;;b++)
{
if(absNum2*b>=32768)ShowError();
nowNum2=absNum2*b;
if(nowNum2<nowNum1)continue;
else if(nowNum2==nowNum1)return(nowNum2);
else break;
}
}
}
ShowError();
return(-1);
}
072260cm浮き上がるストレート
NGNGvoid ShowError(void)
{
printf("解が整数でないか、値が大きすぎます");
exit(1);
}
以上
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNG>>701の入力に対応できない。
0725デフォルトの名無しさん
NGNGズッコケ系コテハンとして居座るつもりなのか?
072660cm浮き上がるストレート
NGNG確かにそうですね。よく見ていませんでした。
直す所は入力した式を文字列として格納し、
その文字列を数値、x、y、+、-、=に分けて
後は作ったやつみたいにすればいいんでしょうか。
0727デフォルトの名無しさん
NGNGとりあえずはそれで問題ないと思うよ。
キッチリ数式を解析しろって話も出てきそうだけど、
定型の入力以外は突っぱねればいいと思う。
どうせ宿題だしな。
072860cm浮き上がるストレート
NGNG文字列の中にxを見つけた場合その前の数字文字(-含む)を数値に変換し
係数としてxKeisuuに格納する。yの場合はyKeisuu。
+,-,=は係数がない右辺の数字文字の区切りとして使用。
文字のない数値はuhenn。
=は左辺と右辺を区切るためにも使用。移項の時符号が変わるので。
0729デフォルトの名無しさん
NGNGインデントされてねーぞ、ボケ。
いい加減に の使い方ぐらい覚えろ。
0730デフォルトの名無しさん
NGNGそんなもんですか?
0731正直者
NGNG君のコードは一貫して正視に堪えない。
頼むからもう少し品質を上げられるようになるまで
でしゃばらないで欲しい。
0732デフォルトの名無しさん
NGNG(*a).bはわかりにくいからa->bにしましょう。
0733デフォルトの名無しさん
NGNG[*pp]i はわかりにくいから (*pp)[i] にしろ、
というのなら理解できるが、それは必ずしも。。。
0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNG0736デフォルトの名無しさん
NGNGそんな入門用のプログラムはもういいから
早く野球ゲームを見せてよ。
0737デフォルトの名無しさん
NGNG0738デフォルトの名無しさん
NGNGextern int a;
int a
int main() { 〜 }
ってOKなんですか?
0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNG0741晒し
NGNGhttp://game.2ch.net/test/read.cgi/gamedev/1028625024/l50
プログラムできん奴はゲーム作成なんて語るな
253 :1m80cm落ちるフォーク :02/09/06 05:01 ID:iA1WBcre
>>252の続き
勉強の仕方としては、本を読む、人に聞く、インターネットで検索する等です。
検索する場合は、C言語とprintf()、C言語と変数
等2つ書き込めば見つかると思います。
またわからない用語が出てきたときも使えます。
あとこれはC言語の基本形なので覚えておくといいですよ。
#include <stdio.h>
void main(void)
{
}
スペースはここでは全角ですが、テキストの上では半角にしてください。
{と}の間にprintf()や演算子などを書いていくのです。
0742デフォルトの名無しさん
NGNGストレートパンチで60cmも浮かすなんてちょっと無理があるとは
思っていたけれど。
0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNGワタクシ、髪型だと思ってました、マル
0747デフォルトの名無しさん
NGNG60cmくらい飛び上がるかもね。
0748デフォルトの名無しさん
NGNG> printf("解が整数でない∨絶対値が大きすぎるとダメです\n\n");
さりげなく選言(or)の論理結合子∨を使っている、インテリな60cm
074960cm浮き上がるストレート
NGNG&ndspの使い方を教えてください。
書きこするとき、半角スペースの部分に&ndspを書けば
表示されるときに自動的に半角スペースに変換されているとかでしょうか。
0750デフォルトの名無しさん
NGNG要はそれを知っている自分がインテリだと言いたい>>748。
0751エディタ製作中@クソ初心者
NGNGまた来ました。 エディタ作ってるC言語初心者です(汗
今、いろいろ仕様を変えてエディタの改造をしていってるのですが・・・
また、表示でつまずいてしまってます・・・(涙
画面スクロール時の問題で、カーソルを一番右まで持っていくと、
左へ1バイト又は2バイトずらしてテキストを表示してるのですが、
2バイト文字は、問題ないのですが、
1バイト文字が、スクロース時に末尾の文字1文字を多く表示するのです・・・(涙
たとえば、「abcde」と文字列があったら、
スクロールするたびに、末尾「e」の字が残って「abcdeeeee」のようになってしまいます・・・。
原因と思われる所は、
右移動処理をする関数又は再描写する関数のどちらかだと思うのですが、
何度見直しても、自分では何処がおかしいのかわかりません・・・。
http://www.geocities.co.jp/SiliconValley-SanJose/9640/
ここにソースを上げました。
右移動処理関数のフローチャートも、いちよう置いてます。
かなり不器用な処理してるので、読みにくいと思います・・・(汗
コンパイルは、bcc32以外では無理だと思います。
本当にたびたびすみません・・・。
どうか、よろしくお願いします。
0752デフォルトの名無しさん
NGNG>スクロース
糖類
0753エディタ製作中@クソ初心者
NGNGあ、すみません・・・
スクロールの間違いです(汗
意地になって、徹夜で原因を探ってたので・・・
ちょっと、目がしょぼしょぼします・・・(汗
0754デフォルトの名無しさん
NGNGhttp://www.ne.jp/asahi/minazuki/bakera/html/reference/charref
075660cm浮き上がるストレート
NGNG&ndsp&ndsp1
&ndsp&ndsp 1
&ndsp &ndsp 1
075760cm浮き上がるストレート
NGNG? ? ?
075860cm浮き上がるストレート
NGNG????4つ
??????6つ
0759デフォルトの名無しさん
NGNG- - いっこ
- - にこ
- - サンコン
0760デフォルトの名無しさん
NGNG076160cm浮き上がるストレート
NGNG&ndsp;&ndsp;&ndsp;&ndsp;4つ
&ndsp;&ndsp;&ndsp;&ndsp;&ndsp;&ndsp;6つ
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNG&ndsp;&ndsp;&ndsp;&ndsp;4つ
&ndsp;&ndsp;&ndsp;&ndsp;&ndsp;&ndsp;6つ
076460cm浮き上がるストレート
NGNG&ndsp; &ndsp;&ndsp;&ndsp;4つ
&ndsp;&ndsp;&ndsp;&ndsp;&ndsp;&ndsp;6つ
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNGバカ必死だな。
076960cm浮き上がるストレート
NGNG文字と文字の間の半角スペースはスペースとして表示されるみたいです。
左側半角スペース×5
あ 左側半角スペース×5
a left_space5
0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNGHTMLって知ってる?
077260cm浮き上がるストレート
NGNGあ、ほんとだ。 間違えてしまいました。
&ndsp;×→ ○
077360cm浮き上がるストレート
NGNGホームページビルダーの保存形式
0774デフォルトの名無しさん
NGNGとりあえず、X座標が -1 とかになるのがおかしい。
0775デフォルトの名無しさん
NGNG0776エディタ製作中@クソ初心者
NGNGはい、すみません。
今の所、左スクロール、上下スクロールは、
なんの改造も施してません・・・(汗
古い表示仕様のままなのです。
右スクロールだけが、新しい仕様になってます。
なので、上下スクロール左スクロールは、正確に処理してくれません。
とにかく、右スクロールが正確にできれば、それの応用で他のスクロールができるので、
右スクロールばかりを必死で作ってました・・・(汗
X座標が-1とかになるバグを修正するのは、右スクロールが正確にできてからになると思います(汗
0777デフォルトの名無しさん
NGNG全体的に無駄な処理が多そうだが、それはさておき、re_depictが怪しい。
行末から画面の隅までを消去する(空白で埋める)ような手続きは、
一切ないように見える。なければ当然、ゴミが残るぞ。
0778エディタ製作中@クソ初心者
NGNGはい、無駄な処理は、かなり多いと思います(汗
だんだんと、仕様が難しくなってきて、
どうしても頭の中だけでは整理ができず、
フローチャートを作って処理を作ってるのですが・・・
それでも、まだ無駄な処理が多いですよね(汗
えっと、文字列の終わりに\0を入れれば、
\0以降の文字列に、ゴミが残っていても表示されないのでは・・・???
\0は、うまく文字列最後に入ってると思うのですが・・・。
なんらかの理由で\0以降のゴミが表示されてるんでしょうか・・・
0779デフォルトの名無しさん
NGNG「表示されない」と「消してくれる」は違うぞ。よく考えてみろよ。
もうちょっとよく見てみたら、ほかの関数をみると、
最初に clrscr() で消してるように見えるが、cs_right では
やってないようだ
0780エディタ製作中@クソ初心者
NGNGああぁ!! すみません!
clrscr()関数で画面のクリア処理をしてませんでした!(涙
それが原因で、画面に前の画面の文字が残って、
変に表示されてた訳なんですね・・・
すみませんでした・・・
自分の、不注意でした。
アドバイスいただき、ありがとうございました。
0781デフォルトの名無しさん
NGNG0782エディタ製作中@クソ初心者
NGNGはい、アドバイスありがとうございます。
そうですね、画面クリア処理も再描写処理の一つなので、
re_depict関数で処理します。
今後、再描写処理はすべてre_bepict関数で行う予定ですので、
それの方が都合いいですよね。
ここから、上下、左スクロールを作り変えて行きます。
0783デフォルトの名無しさん
NGNGttp://sourceforge.net/tracker/?atid=435775&group_id=39552&func=browse
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNG> ここから、上下、左スクロールを作り変えて行きます。
その前にリファクタリングした方がいいぞ。
・プログラム中のあちこちに散らばっている80とか22とかの
マジックナンバーを消す。
・2バイト文字を判定する
if(ch >= 0x81) && (ch <= 0x9f)|| (ch >= 0xe0) && (ch <= 0xfc)
は関数かマクロにする。
・プロトタイプ宣言はbase.cとedit.cで2重管理行わず、
ヘッダファイルを作ってincludeする。
・ファイルの内容を読み込んでタブをスペースにしてtxtに書き込む処理は
別関数にした方がいい(特に引数なしで起動してもうまく動かしたいなら)
0786エディタ製作中@クソ初心者
NGNGアドバイスありがとうございます!
>その前にリファクタリングした方がいいぞ。
リファクタリング・・・?
一度、ソース内を整理しろって意味でしょうか?
>・プログラム中のあちこちに散らばっている80とか22とかの
>マジックナンバーを消す。
マジックナンバー・・・?
数字だけでは意味が分りにくいからdefineなどで
意味のある文字にしろって意味でしょうか・・・?
>2バイト文字判定を関数にする
そうですね。
あまりに多用してますし、見にくいですしね・・・。
う〜ん、関数にして調べる文字を引数にして呼び出すようにしてみます。
>プロトタイプ宣言をヘッダーファイルにまとめる
はい、わかりました。
関数が増えてきました・・・。
これ以上増えると、ソースの行数もサイズも大きくなってしまいますし・・・
ヘッダファイルで、インクルードするようにします。
>タブをスペースに置き換える処理を関数にする
わかりました。
後々は、ファイルに出力する時に
スペースをタブに戻す処理とかするようにしたいと思ってます。
引数で、タブ→スペース、スペース→タブとか制御できたら便利ですね。
作ってみます。
沢山アドバイス、ありがとうございました。
0787デフォルトの名無しさん
NGNG> 意味のある文字にしろって意味でしょうか・・・?
そう。
#define使うなconst使えという人がいるけれど無視無視。
0788デフォルトの名無しさん
NGNG> マジックナンバー・・・?
> 数字だけでは意味が分りにくいからdefineなどで
> 意味のある文字にしろって意味でしょうか・・・?
その通り、ただdefineだとデバッガとかでうまく定数を表示できないことがあるので。無名enumとかを使う方法がお勧め。
enum {
WINDOW_XSIZE = 80,
WINDOW_YSIZE = 22
};
0789デフォルトの名無しさん
NGNG無名enumだと変数がintでもデバッガ側でビンゴな数字をenumとみなして表示してくれるの?
そんなデバッガ見たことない気がするんだけど気のせいかな。
0790デフォルトの名無しさん
NGNGenumって整数だけだよね?使い勝手が悪くない?
0791デフォルトの名無しさん
NGNG無名なんて横着なことするな!
0792デフォルトの名無しさん
NGNG0793エディタ製作中@クソ初心者
NGNG俺的には、defineの方が処理がプリプロセッサだから、
余計な変数がなく、メモリの節約になると思うんですけど・・・
と、言っても、今の時代数百MBもメモリがあるんで、
100バイトや1000バイト、余分にメモリ使っても大丈夫でしょうけど・・・。
ちなみに、デバッガって物は使ったことがないです(汗
かなり便利な物のようですが、使い方がよく分らないんです・・・(涙
今度、デバッガの使い方を勉強しておきます。
0794デフォルトの名無しさん
NGNG分かっていると思うが定数もその分メモリーを消費するぞ。
0795デフォルトの名無しさん
NGNG糞なテクニックをひけらかすなよ。
そんな話はネタすれでやってくれ。
堂々define使ってよし。
0796デフォルトの名無しさん
NGNG暴乱怒(borland)のフリーコンパイラを使っているんだっけ?
それならまずはデバッガを手に入れないと。確かBorlandからフリーで配られていたはず・・・
0797デフォルトの名無しさん
NGNGCではそうかわらんと思う。C++ではnamespaceの問題があるから
>>794
即値の間違い?
0798788
NGNG> 無名enumだと変数がintでもデバッガ側でビンゴな数字をenumとみなして表示してくれるの?
少なくともgdbでは表示してくれない。変なこと言ってすいません。
>>790
一応、役に立たないマメ知識として記憶の隅にとどめといてください。
>>793
> う〜ん、なぜdefineよりconstの方が良いんでしょう?
絶対に変化しない定数であるならば、どっちでもいいでしょう。
しかし、将来カスタマイズしたいとき、例えば
TABを8ではなく4にするのをiniファイルで行いたいとか
DOS窓のサイズの変化に伴いエディタの表示領域も変えたい場合、
defineだと変更しにくいと思いませんか?
0799デフォルトの名無しさん
NGNG保存領域はどうかしらんが
0800デフォルトの名無しさん
NGNGというかそもそもメモリー上にはない?
0801デフォルトの名無しさん
NGNG違うかも。得てどうするかは知らないが
0802デフォルトの名無しさん
NGNGconst int a = 123;
const int *p = &a;
やってみれば?
0803デフォルトの名無しさん
NGNGその場合は123の実体(?)はaという場所にあると考えてよいですか?
もしそうならいいんですけど。
0804デフォルトの名無しさん
NGNG定数aのアドレスってのが得られるとすれば、&a じゃない?てことなんだが
俺は今たしかめられない環境にいたりする
0805デフォルトの名無しさん
NGNG変数名=メモリの一区画に付けた名前とした場合ということです。
0806デフォルトの名無しさん
NGNG文字列定数だったらそのまま評価すればアドレスが得られるんだけど。
0807デフォルトの名無しさん
NGNGくだらんレスをするからそうなるんだよ。
0808デフォルトの名無しさん
NGNGiniファイルでやりたいのならconstつけちゃまずいと思うんだけど。
起動するたびに設定ファイルを読み込んで設定するということでしょ?
0809デフォルトの名無しさん
NGNG>>798はソースの修正のしやすさの事を言っているように思える。
しかし、#define と比べてどう違うのかはサッパリ
0810デフォルトの名無しさん
NGNG言ってる意味が。。&123 ができないとか、そういうことか?
0811デフォルトの名無しさん
NGNG一般的には無理だと思う。
アセンブラ吐かせて確認すればいいと思うが、大抵即値が使われるので。
0812788
NGNGconstだとconstをはずすだけでOKだが
...defineの場合も定数名を変数名に置換するだけか
ふーむ、なんかどっちでもいい気がしてきた。
# 個人の趣味として自分はconstを使うけど
0813デフォルトの名無しさん
NGNGCでは大して問題にならない?
0814デフォルトの名無しさん
NGNGそんなのは設計が間違っているだろ。
全部大文字の変数、なんてのを気にしないなら結構だが、
人前には出さないでくれ。
0815デフォルトの名無しさん
NGNGそれは、わざわざ constつけた変数を書き換えるってこと?
そんなことしたらバグの元になりやすいと思うのだが。
ついでに言うと、constつけた変数は書き込み禁止領域に置かれることもある
ので注意(書き換えようとするとプログラムが落ちることも)。
0816デフォルトの名無しさん
NGNG> 定数を変数に
誰もそんな事逝ってないぞ。ひょっとしてconst定数の事を変数と呼んでいるなら、
改めたほうがいい
0817デフォルトの名無しさん
NGNGスコープは狭いに越したことがない.
0818デフォルトの名無しさん
NGNGそのconstを外したら便利、と>>788が逝っている。
自分でやる分には構わんが初心者に押し付けるなよ。
0819デフォルトの名無しさん
NGNGそれは、iniの設定を実行時に取得するって話じゃん。
変数以外にどうしろと
0820デフォルトの名無しさん
NGNG当然プログラム中でも変更してiniに保存するわけで
そんなものは定数でも何でもない。
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG押したと思わせるにはどうすればいいのでしょうか?
0824デフォルトの名無しさん
NGNG開発途中で、定数で持ってたのをプログラムの外部から読み込ませる
ようにしたくなったときに constは(#defineよりも)便利ということらしい。
0825デフォルトの名無しさん
NGNGそれとも小文字?
複数ファイルで使う場合、ヘッダファイルに
extern const int
って全部書くのか?
んなのを推奨している本があったら見てみたいね。
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNGそんなインパクトの大きい設計変更するのなら、どっちでも手間は
変わらないんじゃないか?
0828デフォルトの名無しさん
NGNGOSは? Winならmouse_eventとかPostMessageとか。
0829デフォルトの名無しさん
NGNGまあフツーはもっと関数とかで隠蔽するだろうが
0830デフォルトの名無しさん
NGNGOSはWindowsです。
PostMessage( hWND, WM_LBUTTONDOWN, MK_LBUTTON, 0 );
とやってみたのですが、全然反応しませんでした、間違ってますか?これ
0831788
NGNG> 複数ファイルで使う場合、ヘッダファイルに
> extern const int
> って全部書くのか?
複数ファイルでdefineを使いたい場合はどうするのでしょうか?
手間は同じと思いますが
0832デフォルトの名無しさん
NGNGライブラリに定数を持たせるときは、これを使うしかないな
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNG当然#defineを並べるだろ。
誰でもやってることだ。
だが、
> extern const int
こんなものを並べるやつはいない。
いるとしたら
将来、変数にしてしまうかも・・・という設計開始時点での
曖昧さを許しているプログラマだ。
小さなプログラムならそれでも構わんだろうが巨大なシステムでは
そんなのがいくつもあったら破綻する。
大文字定数を変数にしたかったら全部書き換える。
それが正しいし、初心者に対して曖昧な方法を推薦するなよ。
0835デフォルトの名無しさん
NGNG0836788
NGNG> 将来、変数にしてしまうかも・・・という設計開始時点での
> 曖昧さを許しているプログラマだ。
そうです、完全な設計は完全な人間ならば作成可能でしょうが、
私は残念ながら完全ではありません、設計を修正する羽目になることが良くあります。
間違えにくく、変更しやすく、デバッグしやすく、
見やすいプログラムを書きたいと願っている不完全なプログラマです。
> 大文字定数を変数にしたかったら全部書き換える。
定数を変数に変更するとき変数名を変えるのは当然です。
>>814で
> defineの場合も定数名を変数名に置換するだけ
といってます。
0837デフォルトの名無しさん
NGNGちゃんと統一されてればどうでも良いことでしょ。
別に曖昧でもないし。
#defineが並んでるヘッダに、
const int X=1234;
とかつっこむ奴は屑だけど。
ところで、上の方で勘違いしている人が入るけど、
const な変数は値を参照する分にはリソースを食わないよ。
#defineした場合と同じ。
ただし、アドレス参照した場合だけ、そのためだけにメモリが
確保される。
それからVCのデバッガはenumシンボルを表示する。
かえってうっとうしい事もあるけど。
0838デフォルトの名無しさん
NGNGは問題ありだと思う。
0839デフォルトの名無しさん
NGNG君が理解しているのは分かったから#defineの代わりにconst intを
ここで初心者に薦めるのはやめてくれ。
>>837
おいおい・・・
統一されてればどうでもいい?本気で言っているのか?
お前さん、そんなソースを外に出してるのかい?
0840デフォルトの名無しさん
NGNG書きすぎた。ごめん、消えます。
0842デフォルトの名無しさん
NGNG> 統一されてればどうでもいい?本気で言っているのか?
> お前さん、そんなソースを外に出してるのかい?
本当はどうでもよくなんかないよ。
ちゃんと型付けした方が便利なんだけど、使い方を統一するほうが優先されるっ
てだけ。
840は839?
いなくなる前に、一個で良いから#defineを使うメリットを書いたほうが
かっこいいよ。
0843デフォルトの名無しさん
NGNGしょうがねぇな・・・。
じゃ逆に聞くが
const int を使うメリットを教えてくれ。
const int X_MAX = 80;
とかするんだろ?
で、X_MAXを変更したくなったらconstを「外すだけ」で
X_MAX=70;
とかプログラム中で書くんだろ?
#defineを使う理由はただ一つ、それが正しい定数の使い方、だからだ。
K&Rでも読み直せ。
0844デフォルトの名無しさん
NGNGC++で定数を#defineで定義してる椰子はダメだね。
0845デフォルトの名無しさん
NGNGconst int bufsize = 100;
void f()
{
int buffer[bufsize];
}
とかできないからな。
0846デフォルトの名無しさん
NGNGそれは大きいな。
0848デフォルトの名無しさん
NGNGだと
if (timeGetTime()-prevTime >= FPS)
てしたときに
if (timeGetTime()-prevTime >= 1000/60)
になっちゃうので
const int FPS = 1000/60;
にしてる漏れは
根本的にわかってませんか?
0849デフォルトの名無しさん
NGNG?フツーにできちゃった
Cygwin+gcc です
0850デフォルトの名無しさん
NGNG#define FPS (1000/60)
括弧でくくればいいよ。
つか、そういう式を#defineしていて、括弧でくくってなかったら、
へたくそと思われるよ。
0851デフォルトの名無しさん
NGNG計算式がつく場合は、
#define FPS (1000/60)
0853デフォルトの名無しさん
NGNGgccは独自拡張使いまくり
それでなくてもC99ならint a[n];が自動変数でも使えたはず。
0854デフォルトの名無しさん
NGNG(#`Д´)<マヂデスカッ
int a[n][m];
とかは・・・できるわけないか。
0855デフォルトの名無しさん
NGNG出来ます。スタック使い尽くして死んでください
0856デフォルトの名無しさん
NGNG・・・。
int *p = a[5];
とかしたらどうなるのかなーっと。
大きさが分からないぞーっと。
0857デフォルトの名無しさん
NGNGそれは今までのCにも言えること
0858デフォルトの名無しさん
NGNG配列の大きさは基本的に固定でわ?
配列や構造体の大きさが動的に変わればポインタの計算は
どうするんだろう・・・。
いちいち定義された値で再計算しなおす仕様になっているのかな?
0859デフォルトの名無しさん
NGNGstatic int printArraySize(int n);
int main(void)
{
printArraySize(100);
printArraySize(50);
printArraySize(0);
printArraySize(-1);
retrun 0;
}
static void printArraySize(int n)
{
char a[n];
print("n = %d, size = %d\n", n, sizeof a);
}
0860デフォルトの名無しさん
NGNGconst int n = 500;
int nr[n] // OK
int n = i;
int nr[n] // NG
0861デフォルトの名無しさん
NGNGもうちょっとプログラム見なおしてから送信してください......
(コンパイル通るように変更した後)Cygwin+gccでの結果
n = 100, size = 100
n = 50, size = 50
n = 0, size = 0
Segmentation fault (core dumped)
0862デフォルトの名無しさん
NGNG2次元配列でも通る?
static void printArraySize(int n)
{
char a[n][n];
print("n = %d, size = %d,a[]=%d\n", n, sizeof(a),sizeof(a[0]));
}
0863デフォルトの名無しさん
NGNGそもそもコンパイルできないから大丈夫です。
0864デフォルトの名無しさん
NGNGその後に
PostMessage(hWND, WM_LBUTTONUP, 0, 0);
も呼んでいるなら、その部分だけ見れば間違いではない。
でも、他の関連メッセージとの兼ね合いもあるので
それ以上は何とも言えない。
0865デフォルトの名無しさん
NGNGprint ってやめて......
n = 100, size = 10000,a[]=100
n = 50, size = 2500,a[]=50
n = 0, size = 0,a[]=0
n = -1, size = 1,a[]=536870911
Segmentation fault にならず......なんでだろ?
0866デフォルトの名無しさん
NGNG少なくともVC++6.0やボーランドのフリーコンパイラじゃ通らないね。
0867デフォルトの名無しさん
NGNGmouse_event()を使うが吉
SetCursorPos(x,y);
mouse_event( MOUSEEVENTF_LEFTDOWN, 0,0, 0, 0);
Sleep(1000);
mouse_event( MOUSEEVENTF_LEFTUP , 0,0, 0, 0);
0868デフォルトの名無しさん
NGNGconstつけても定数式にしろゴルァ!と言われる。
定数じゃなくて定数式でないといけないってことかしら。
0869868
NGNG0870デフォルトの名無しさん
NGNGげげげ!
動的な2次元配列なんかが作れるのか・・・。
0871デフォルトの名無しさん
NGNGそっか、sizeofだけでなくprintfもあったね。スマソ(w
0872デフォルトの名無しさん
NGNGあれは確かコンパイル時にサイズが決まっていないといけないはずだから。
0873デフォルトの名無しさん
NGNG>>865の結果からはsizeofも通っているよ。
おそらくポインタの大きさも作成時に作られていると思われ。
これは仕様の改悪のような気がするが・・・。
0874デフォルトの名無しさん
NGNG>861>865
sizeof 使えてるよ?ってか「可変長」ではないよね?
0875デフォルトの名無しさん
NGNGポインタの大きさは同じでしょ・・・
まあsizeof(int *)とsizeof(char *)の大きさが違うという珍しい環境もあるらしいけど・・・
0876デフォルトの名無しさん
NGNGそうだ、、、可変長って自由に長さを変えられるってことだ(汗
動的というべきかな。
0877デフォルトの名無しさん
NGNGだから、C99っつってんだろゴルァ
0878デフォルトの名無しさん
NGNGスマソ、
スタックの構造体の中に配列があった場合とかも多分通るんだよね?
その場合に構造体のサイズとかも保持されていて、
p++;
で増加する内部の値も設定されている、てことでふ。
0879デフォルトの名無しさん
NGNGC99ならconst付けようが付けまいが通ると思うが・・・
0880879
NGNG紛らわしい書き方するなよ。
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNGだから紛らわしいって言っているんだよ。
ところで、gccで↓通る?
#include <stdio.h>
void a(int);
int main()
{
int i;
scanf("%d",&i);
a(i);
return 0;
}
void a(int n)
{
int c[n];
}
0883デフォルトの名無しさん
NGNG同じこと考えてましたね
↓こんなの作ってました
#include <stdio.h>
int main( void ) {
char buf[500];
while ( fgets(buf, 500, stdin) ) {
int i = atoi( buf );
char s[i][i];
printf( "i = %d, s = %d, s[] = %d\n", i, sizeof s, sizeof s[0] );
}
return 0;
}
結果(1、3、5行目は入力)
8
i = 8, s = 64, s[] = 8
0
i = 0, s = 0, s[] = 0
-4
i = -4, s = 16, s[] = 536870908
何でもアリってかんじですね......今まで1度も使ったことなかったけど......
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNGおおすげー(ワラ
0886デフォルトの名無しさん
NGNGハァ?
0887デフォルトの名無しさん
NGNGポインタの大きさじゃなくてポインタが指すオブジェクト(?)の大きさってこと?
変わるんだろうね。
0888デフォルトの名無しさん
NGNG今更時代遅れなCの新しい仕様なんて策定するんじゃねーよ!
0889デフォルトの名無しさん
NGNGJavaもC#も用途が違うしな。
まさか、パスカルとかいうんじゃねーだろうな
0890デフォルトの名無しさん
NGNGCがいい♪
今更仕様を変えないでってこと。
0891デフォルトの名無しさん
NGNG本人達も今更って思っているのかしら。
0892デフォルトの名無しさん
NGNGvoid main(void)
{
printf("(^-^)\n");
}
動きません。なんでですか?
0893デフォルトの名無しさん
NGNGエラーメッセージ見せやがれぼけ。
0894デフォルトの名無しさん
NGNGコンパイラによるが、
void main(void)
↓
int main()
としてみろ。
0896デフォルトの名無しさん
NGNGあのさぁ、初心者板でよく言ってるんだけどさ。
拡張子変えるだけではファイル形式は変わらない。
0897デフォルトの名無しさん
NGNGごめんなさい。
今からコンパイラというものを調べてみます。
0898デフォルトの名無しさん
NGNGreturn 0;
0899デフォルトの名無しさん
NGNGreturn '\0';
0900デフォルトの名無しさん
NGNGint hoge(void)のvoidって絶対つけないといけませんか?
int main(void)のvoidは同ですか?
このvoidっていうのは、ひきすうが何もいらないっていうことですよね?
0901デフォルトの名無しさん
NGNG厨な質問だけど、まじめです。
0902デフォルトの名無しさん
NGNGプロトタイプ宣言では必要(でないと呼び出し時にどんな引数リストにしてもOKということになる)。
関数の実体を書くときは不要。
0903デフォルトの名無しさん
NGNG省いてみ。
0904デフォルトの名無しさん
NGNGなにかあるのかな、と。
Thx.
0905デフォルトの名無しさん
NGNGmainを最初に書く派なら
int hoge(void);
〜〜〜
int hoge()
{ 〜 〜 〜 }
と書いておくと。
mainを最後に書く派なら
int hoge(void)
{
〜 〜 〜
}
ですよね。
0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG「宿題手伝いますよ¥^^¥」スレ
http://pc3.2ch.net/test/read.cgi/tech/1029422194/l50
0908デフォルトの名無しさん
NGNGhttp://game.2ch.net/test/read.cgi/gamedev/1028161173/86
キターーーーーーーーーー
なんか、本気で作ってるようです。
0909デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNG本気で DOS 窓にグラフィックを描く気なんだろうか?
0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNG行くの書くのは大変そうだ。
0914デフォルトの名無しさん
NGNG出来ないんじゃない?
swirch(i)
{
case 1:
〜
i = 3;
case 2:
〜
break;
}
if(i == 1)
{
〜
i = 3;
if(i ==1 || i == 2)
〜
0915デフォルトの名無しさん
NGNGgoto汁
0916デフォルトの名無しさん
NGNGまぁ、DOS窓でもかなりいろいろできると思うけど。技術があれば。
0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG探せばライブラリあるんじゃない?
0919917
NGNG使えるかどうか聞いているんじゃねーよ。
使うかどうか聞いているんだボケ!
0920デフォルトの名無しさん
NGNGんなもん、作るアプリによるだろ。
0921デフォルトの名無しさん
NGNG再インストールもしました。
なんかおかしいというのはブラウザを開いてもせつぞくできないんです。
ルーターで接続しているのですが。(ルーターの設定がおかしいわけではないです
ローカルエリア接続と言うアイコンもないし・・・
0922デフォルトの名無しさん
NGNGC言語で作ったソフトで使うかも知れないがな
0923デフォルトの名無しさん
NGNG0924917
NGNG鬱だ
TV見よう
0925デフォルトの名無しさん
NGNG使いたかったらC++使えばいいと思います。
0927デフォルトの名無しさん
NGNG092860cm浮き上がるストレート
NGNGさっそく、オーバースローのピッチャーのアニメーションを書きました。
前に配列組んでおいたものの使い回しで、影絵ですが。
char[16][64][64]サイズ。1つで2×2ピクセル。
文字との連携(重ねる)と消えたり消えなかったりしてしまいますが、
念願のグラフィックを堪能しています。
0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNGネタのつもりはなかったんだが。
勉強する必要があるか判断したかったのだが。
0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNG意味が違うからです
0933デフォルトの名無しさん
NGNG違うの!?
0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNG覚えてて損することはない。覚えとけ。
って言うかさっさと入門書買ってこいボケ。
0936デフォルトの名無しさん
NGNGよく正規表現ひとつで厚い本を作れるものだ。
0937934
NGNG注文しました
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNGreturn a;
return (a);
どっちにします?
0941デフォルトの名無しさん
NGNGreturn (a);は逝ってよし。
0942デフォルトの名無しさん
NGNG(・ε・)え〜?なんで〜
0943デフォルトの名無しさん
NGNGカコワルイ
主観だよ。あー主観だよ。主観で何が悪い。
0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNGただのバカか。
0946デフォルトの名無しさん
NGNGmallocってメモリに確保されるんじゃあないの?
0947デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=utf8&oe=utf8&q=%E3%83%92%E3%83%BC%E3%83%97%E3%83%A1%E3%83%A2%E3%83%AA
0948デフォルトの名無しさん
NGNGおまえがな
0949デフォルトの名無しさん
NGNG必要に応じて自由に使うことのできる大量のメモリが与えられる
検索キーワードが違ったか
ありがとん
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNG次スレよろしく〜
0955デフォルトの名無しさん
NGNGかなり重複してますよ。
8〜20あたり、大丈夫?
0956デフォルトの名無しさん
NGNG全然大丈夫じゃない。
新スレで訂正してね(はぁと
09571
NGNG【過去ログ】
29 http://pc3.2ch.net/test/read.cgi/tech/1029605182/
28 http://pc3.2ch.net/test/read.cgi/tech/1028495798/
27 http://pc3.2ch.net/test/read.cgi/tech/1027160374/
26 http://pc3.2ch.net/test/read.cgi/tech/1026048820/
25 http://pc.2ch.net/tech/kako/1024/10249/1024918442.html
24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html
23 http://pc.2ch.net/tech/kako/1023/10230/1023024817.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
20 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
19 http://pc.2ch.net/tech/kako/1020/10207/1020756993.html
18 http://pc.2ch.net/tech/kako/1020/10202/1020260813.html
17 http://pc.2ch.net/tech/kako/1019/10193/1019372139.html
16 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
15 http://pc.2ch.net/tech/kako/1016/10165/1016519243.html
14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1013/10139/1013990673.html
12 http://pc.2ch.net/tech/kako/1012/10123/1012348974.html
11 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
10 http://pc.2ch.net/tech/kako/1008/10083/1008300863.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
7 http://pc.2ch.net/tech/kako/1003/10034/1003418249.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
3 http://piza.2ch.net/tech/kako/989/989929288.html
2 http://piza.2ch.net/tech/kako/979/979529893.html
1 http://piza.2ch.net/tech/kako/967/967985026.html
0958デフォルトの名無しさん
NGNG括弧で括る必要なんか全くないのに括ってるのは
自前の脳味噌使ってないんだろうな、とは思う。
0959デフォルトの名無しさん
NGNGK&Rの話は >>2 以降するのはどうでしょう?
あとこれも更新。
Part4 -> Part5
推薦図書/必読書のためのスレッド PART 5
http://pc3.2ch.net/test/read.cgi/tech/1027593322/
0960デフォルトの名無しさん
NGNG俺はsizeofは括らないと気が済まないけど、やはり脳なし?
0961デフォルトの名無しさん
NGNG賛成!
0962デフォルトの名無しさん
NGNGreturnは要らないので付けない。
0963デフォルトの名無しさん
NGNG>>959で新スレ立てると、>>1には何を書けば?
過去ログは>>957をコピペします
推薦図書URLを>>959のURLに変更します。
スレ構造は・・・
>>1 何書く?
>>2 コンパイラリンク
>>3 推薦URLとかK&Rとか
>>4 過去ログリンク
こんなのでよろしいか?
他に変更などはある?
で、>>1に何書くの。
0964デフォルトの名無しさん
NGNGこのスレッドの >>1を参考にして、適当にジョークかましとけば
いいんじゃない?
0965デフォルトの名無しさん
NGNG>>1
C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
gcc
http://gcc.gnu.org/
推薦図書/必読書のためのスレッド PART 5
http://pc3.2ch.net/test/read.cgi/tech/1027593322/l50
前スレ <30> http://pc3.2ch.net/test/read.cgi/tech/1030786546/
コンパイラ、過去ログなどのリンクは>>2-5 あたり
>>2 以降は
>>2 コンパイラリンク
>>3 推薦URLとかK&Rとか
>>4 過去ログリンク
でOK.
0966デフォルトの名無しさん
NGNGタイトル:
C言語なら、俺に聞け! <31>
名前:
SHOW-A
本文:
漏れは54才、30年間プログラムを一生懸命作ってきた。
いろいろな言語を極めたが、一番手になじむのはCだった。
Cのことなら全てわかるから、疑問な点があったら漏れに聞け。
今なら平成デフレ記念3割引奉仕中だ。
スケジュールは真っ白だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。あと、至急仕事をください。
0967デフォルトの名無しさん
NGNGC言語なら、俺に聞け!<31>
http://pc3.2ch.net/test/read.cgi/tech/1031340950/
0968デフォルトの名無しさん
NGNGなかなかヨカッタよ!おつかれ。
0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNG>エラー内容
>「ハンドルされていない例外は test.exe にあります:
>0x0000005:AccessViolation」
これってどう言う意味ですか?
既出ならすんまそん。m(__)m
0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNGK&Rは難しいので自分が理解できると思われるやつを。
0974shige
NGNG0975972
NGNG返答ありがとうございます。
今日早速書泉に行ってきます。
0976デフォルトの名無しさん
NGNGshigeの言うことを信じてはいけません。
0977デフォルトの名無しさん
NGNGいや、その本は良書だと思うが。
0978デフォルトの名無しさん
NGNGオライリーの本、初心者には読みにくいかも…。
0979デフォルトの名無しさん
NGNG表紙は並べるだけでも幸せ。
0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNGっていうか、自分で選べない奴はプログラマに限らず資料探しができない奴だと思うが。
0982デフォルトの名無しさん
NGNG激しく同意。日本の画一教育の弊害だね。
0983981
NGNG人に聞いて本を選ぶのは簡単だしほぼ確実だけど、自分の探索能力を向上するチャンスを
失っているってコトは自覚しておいたほうがいい。
0984デフォルトの名無しさん
NGNG特に自分が知らない分野のことでは。
最初は超初心者的な本になってしまうだろうが、それでもいいと思うぞ。
0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1031340950/-30
0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNG0989>>988のバ〜カ
NGNG寝惚けた事を逝っている>>988を馬鹿にしつつ、1000!!!
0990デフォルトの名無しさん
NGNG失敗
0991デフォルトの名無しさん
NGNG0992988
NGNG馬鹿はおまえだ。
早くたてねーとマニアわネーゾ
子いうときに限って馬鹿がスレ立てすぎて作れねー氏。
どーすんだよ。このスレ今回で終わっちまうぞ
0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNGC言語なんて時代遅れだから別にいいや。
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNGそう、時代はアセンブラなのだ。(藁
0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。