C言語なら、俺に聞け! <27>
レス数が1000を超えています。これ以上書き込みはできません。
0001日下部? ということにしたいのですね? :)
NGNG・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART4
http://pc.2ch.net/test/read.cgi/tech/1022961238/l50
・前スレ
<26> http://pc3.2ch.net/test/read.cgi/tech/1026048820/
<25> http://pc.2ch.net/test/read.cgi/tech/1024918442/
<24> http://pc.2ch.net/test/read.cgi/tech/1024033400/
<23> http://pc.2ch.net/test/read.cgi/tech/1023024817/
コンパイラなどのリンクは>>2-3 あたり
void日下部氏の激動の半生は過去スレを参照
0002デフォルトの名無しさん
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
0003デフォルトの名無しさん
NGNGそう、何も作り出すことは出来なかった。
しかし、僕の中のstatic変数にはいろんな思い出がつまってる。
でももうダメだ。
いつの日からか発生したループは、スタックを食いつぶしながら
僕のメモリ領域をどんどん蝕んでいく。
もうダメだ・・・。
僕は決心して窓を開けた。
「このプログラムは不正な処理を行ったため・・・」
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006ていのー
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG>>3; //翻訳単位に隔離しますた
}
0009デフォルトの名無しさん
NGNG14 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://pc.2ch.net/tech/kako/1003/10034/1003418249.html
0010デフォルトの名無しさん
NGNG25 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
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.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
0011デフォルトの名無しさん
NGNGauto変数の方が、後に何も残らなくてよいかと。
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG↑
navi2ch ではこんな風に見えているのですが気のせいですか?
0014デフォルトの名無しさん
NGNG失敗。↑こんな風に。
0015デフォルトの名無しさん
NGNG失敗。↑こんな風に。
0016名無しさん@Vim%Chalice
NGNG0017デフォルトの名無しさん
NGNG済みません、意味がわかりません。
0018デフォルトの名無しさん
NGNGちょっと!あなた余計なことしないでよ!!
0019デフォルトの名無しさん
NGNGむむっ。俺的には何の問題もないと思うが。
0021ピラコウ
NGNG0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNGCでCGIを組みたいのか?
0024デフォルトの名無しさん
NGNGttp://www.xrea.com/jp/
0025デフォルトの名無しさん
NGNGhttp://www.at-link.ad.jp/
0026デフォルトの名無しさん
NGNGお前にはない。
0027デフォルトの名無しさん
NGNG127..0.0.1
0028デフォルトの名無しさん
NGNGネタを噛んでしまうと、見ていてとても痛いのですが…
0029デフォルトの名無しさん
NGNGどこか適当にハックしろ。
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNGこれって可能?
ちゃんと動作するかな?
0032デフォルトの名無しさん
NGNGTRUEの定義とその怪しげな関数たちによる。
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGそれは確実だったかと
0035デフォルトの名無しさん
NGNGキモイ
0036デフォルトの名無しさん
NGNGそんなソースは読みたくありません。
0037デフォルトの名無しさん
NGNG助けてくれ〜
0038デフォルトの名無しさん
NGNG順序は合ってるけど、常に b() が実行されるとは限らない。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGビッグファイア様ですな。
0041デフォルトの名無しさん
NGNG君は無理
0042デフォルトの名無しさん
NGNGバビル二世をよぶCのソースはどういうかんじですか?
0043デフォルトの名無しさん
NGNGextern void Babel_II();
int main()
{
Babel_II();
return 0;
}
0044デフォルトの名無しさん
NGNGvoid hanoi(int n,int a,int b){
int c = 6-a-b;
if(n>1)hanoi(n-1,a,c);
printf("disk %d : %d -> %d\n",n,a,b);
if(n>1)hanoi(n-1,c,b);
}
main(){
hanoi(3, 1,2);
}
参考
ttp://web2.incl.ne.jp/yaoki/hanoi.htm
0045デフォルトの名無しさん
NGNGで、ロデムはどこに?
0046デフォルトの名無しさん
NGNG変身してるから見つけにくいと思うよ。
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNGそれは海鮮丼とは違うのか?
0049デフォルトの名無しさん
NGNG(゚*゚)梅干しスッパー
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG(゚д゚)ウマー
ワラタ
0056デフォルトの名無しさん
NGNGis***** ってな感じで関数があるの?
0057デフォルトの名無しさん
NGNGint char long shortとそのunsignedは整数。
0058デフォルトの名無しさん
NGNGなぜわざわざ確認する必要が?
0059デフォルトの名無しさん
NGNGPerl上がりなのでは?
006056
NGNG実数型変数の内容が整数かどうかを確認する方法です。
たとえば、3.1415と3.0000を振り分けるようなものがあるとありがたいんですが。
0061デフォルトの名無しさん
NGNG無い。 %すれば?
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGあるでしょ。
0064デフォルトの名無しさん
NGNGあったか?
0065デフォルトの名無しさん
NGNGとかダメかな?。。。ダメか。
0066デフォルトの名無しさん
NGNGつぅか比較ってできたっけ過?
006760
NGNGいや、intにキャストしたら、小数点以下捨てられるから、それをdoubleに戻して。。。
最適化とかされるとマズいけど
006865
NGNG0069デフォルトの名無しさん
NGNG小数部だけ取り出す関数とかあるじゃん。
007062
NGNG007165
NGNGやってることは一緒ですね。でも、警告でるかも?大丈夫かな?
0072デフォルトの名無しさん
NGNGさっさと関数名挙げな。
0073デフォルトの名無しさん
NGNG(val<ceil(val+0.5)+ε)&&(val>ceil(val+0.5)-ε)
0074デフォルトの名無しさん
NGNG何言語よ?
007665
NGNGあ、大丈夫でした。アセンブリ見てみたけど何やってるかわかりません。
以下
int foo(double a) { return a == (int)a; }
を gcc -O2 -Wall -S foo.c でコンパイルしたもの。
誰か解読して!
_foo:
pushl %ebp
movl %esp,%ebp
subl $24,%esp
fldl 8(%ebp)
fnstcw -2(%ebp)
movw -2(%ebp),%dx
orw $3072,%dx
movw %dx,-4(%ebp)
fldcw -4(%ebp)
fistl -8(%ebp)
movl -8(%ebp),%eax
fldcw -2(%ebp)
movl %eax,-8(%ebp)
fildl -8(%ebp)
fucompp
fnstsw %ax
andb $69,%ah
cmpb $64,%ah
sete %al
movzbl %al,%eax
movl %ebp,%esp
popl %ebp
ret
なんで、こんな複雑になるんだろ?(アセンブラスレ逝けっていわれそうw)
0077デフォルトの名無しさん
NGNGオペランドの意味わかれば猿でもわかるだろ。
007865
NGNGキャストするアセンブリ(機械語)命令って無いみたいですね(あたりまえ?)。
アセンブリ言語は浮動小数点数つかったことないのでサッパリです。
0079デフォルトの名無しさん
NGNGεは適当な誤差精度の意
ていうか有理数を実装したほうがよい
typedef struct { int nume, int deno } rational ;
0080デフォルトの名無しさん
NGNGdouble x,temp;
x=3.141592;
if(modf(x,&temp)==0)...
008165
NGNGそんな関数あったんだ。。。用意されてるならそれ使ったほうがよさそう
。。。てか、勉強不足。。。鬱氏
0082デフォルトの名無しさん
NGNG土下座したら、教えてやるよ。
0083デフォルトの名無しさん
NGNG煽りはスピードが命。
0084デフォルトの名無しさん
NGNG008580
NGNG調べたい場合は、if(x == (double)(int)x) の方が速いです。
また、0か非0かではなく、73氏のようにイプシロン以下であるか
判定するのであれば、
if( fabs(fmod(x,&temp)) < e)...
になるでしょう。
0086デフォルトの名無しさん
NGNG>if(x == (double)(int)x)
は、xがintの範囲外の時おかしくなりません?
008773==79
NGNGっていうかいいのかそれで?
0.1を十回足しても1にはならんのだぞ
0088デフォルトの名無しさん
NGNG実際引っかからんしな。
009065
NGNGそんなでっかい値だったら、そもそも小数点以下まで保持されてないんじゃない?
0091デフォルトの名無しさん
NGNGだから、小数点以下はゼロと判定されるようでないとまずい
わけです。
009265
NGNG32ビットマシンだとlong使わないとダメか。謝罪m(__)m
009365
NGNG11111....111(1が54個。2進数表現で)
という数字を入れようとしても
11111....11(1が53個)×2 = 11111....110
という値に丸められてしまうということです。
つまり、doubleだからといって必ずしも小数点以下まで保持されてるわけじゃないですよね?
0094デフォルトの名無しさん
NGNG浮動小数点数でも整数を表すときは
誤差は生まれないと思うんだけど、どうなんだろう。
if (x == (int)x)
は、xが整数で有効桁数内に収まっていれば必ず成立するんじゃないかと。
そもそも誤差って、小数点以下を2^-1, 2^-2, ... で表すから生まれるんだよね?
誰か詳しく知ってる人がいたら教えてください。
0095デフォルトの名無しさん
NGNG有効桁数におさまるなら当然誤差はない
int i;double sum=0;
for(i=0;i<10;i++)sum+=0.1;
ならばおそらくsum!=1というような話
0096デフォルトの名無しさん
NGNG誤差は無いですか。
ありがとうございます。
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG固定小数でどうすれば誤差がなくなるのですか?
0100デフォルトの名無しさん
NGNG(0.1 = 1/16+9/256+9/4096+9/65536...)
そのため、浮動小数点では、0.1を近似値としてしか表現できない。
固定少数点は、小数部に必要な桁数だけ下駄をはかせて、
整数であるかのように扱うため、上記の誤差は発生しない。
しかし、一般的に誤差といっても、浮動小数点形式に固有の誤差、
乗除算に伴う誤差、加減算に伴う誤差など多々あるので、
固定小数点を使えばすべての誤差がなくなるわけではない。
0101デフォルトの名無しさん
NGNG何かfflushの効果を一目で確認できるようなサンプルプログラムはありませんか?
main()
{
FILE *fp = fopen("xxx", "w");
fprintf(fp, "xxx");
fflush(fp);
*(char *)0 = 0;
}
0103デフォルトの名無しさん
NGNGttp://www.microsoft.com/japan/developer/library/vccore/_crt_fflush.htm
0104デフォルトの名無しさん
NGNGおかしいぞ
0105デフォルトの名無しさん
NGNGオレもおかしいと思う。
0106デフォルトの名無しさん
NGNGこれでどう?
fflushなし
#include <stdio.h>
int main(void) {
printf( "Hello, World!" );
sleep( 5 );
return 0;
}
fflushあり
#include <stdio.h>
int main(void) {
printf( "Hello, World!" );
fflush( stdout );
sleep( 5 );
return 0;
}
0107デフォルトの名無しさん
NGNGワタシもおかしいと思いますわ
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGいくらなんでも例外で落とすのは(w
#include <stdio.h>
int main(int argc, char * argv[])
{
FILE *pf = fopen("tmp", "w");
fprintf(pf, "abc");
getchar(); /* ここで^Cをおすとfflushされないで終了する */
fflush(pf);
return 0;
}
^Cしたとき(実行を中断してfflushしなかったとき)と
enterをおしたとき(fflushして正常終了したとき)とでtmpの中身を比べてみよう。
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG始めはabortでいいんじゃないかと思った。けど、手元のabort(3)では、
>DESCRIPTION
> The abort() function causes abnormal program termination to occur, unless
> the signal SIGABRT is being caught and the signal handler does not
> return.
>
> Any open streams are flushed and closed.
てなってる。最後の行ね。
0112デフォルトの名無しさん
NGNG値の連続入力するときに入力するたびに画面のクリアをしたいんですが
そういった関数ってあるんですか?あったら教えてください。お願いします。
OSはWindows2000でコンパイラはVisual C++です。
0113デフォルトの名無しさん
NGNG意味がいまいちわからんな。
Editダイアログに文字が入力された時に飛んでくるメッセージを
捕まえればいいだろ。
0114デフォルトの名無しさん
NGNGコンソールアプリケーションなら、エスケープシーケンスを使ってみるとか。
0115112
NGNGすいません、書き方が悪かったですね。
while(1){
printf("データ入力せよ");
scanf("%d",&a);
}
と書くと
実行時に
データを入力せよ 1
データを入力せよ 2
データを入力せよ 3
データを入力せよ 4
こうなるじゃないですか?
これをひとつ入力するたびに画面をクリアしたいんです。
それと、エスケープシーケンスはだめでした。
これで意味通じたでしょうか?
お願いします。
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNGない。
改行25回でもしとくよろし
0118デフォルトの名無しさん
NGNG0120101
NGNGおかげでfflushの効果が分かりました。出力バッファについてもきちんと理解できた気がします(setvbufの効果も確認できました)。
setvbufで_IONBFに設定されている時はバッファリングしない(すぐに書き込まれる)から、そのストリームに対してはfflushする必要性が生じることはないんですよね?
0121デフォルトの名無しさん
NGNGprintf("\rデータ入力せよ");
scanf("%d",&a);;
0122デフォルトの名無しさん
NGNG_IONBFに関してはそのとおり。
ただし、性能が著しく落ちるのでバッファリングしないことは、普通はやらない。
たくさん出力するプログラムを作ってバッファリングしたときと
しなかったときとの差を比べてみるとよいと思うよ。
0123デフォルトの名無しさん
NGNG私が借りているサーバー(OSはLinux)には入っていないんですけど・・・
もちろんstdio.hやstring.hなどはあります。
0124デフォルトの名無しさん
NGNG/usr/includeの中を調べたんだと思うけど、Linuxではgcc自身が提供する
ヘッダファイルが別ディレクトリに置いてあるみたい。
Vine Linux2.5では/usr/lib/gcc-lib/i386-redhat-linux/2.95.3/include/
にstddef.hがあった。
#includeのサーチパスには上の二つのディレクトリが両方とも含まれるので、
#include <stddef.h>は問題なく通るよ。
0125デフォルトの名無しさん
NGNGなるほど。そういうことでしたか。ありがとうございます。
> /usr/includeの中を調べたんだと思うけど
まさにそうです。他のディレクトリにあるとは思わなかったので・・・
> Linuxではgcc自身が提供する
ということは他のはgccが提供しているわけじゃないのか・・・OS自信が提供しているのかな。
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG「動作的な」と言いますと?
0128デフォルトの名無しさん
NGNGfopenはファイルポインタを返すが、(POSIXの)openはファイルディスクリプタを返す。
0129デフォルトの名無しさん
NGNGすみませんUNIXのシステムコールの違いを評価するために
openとfopenで同じファイルを開いてread,fscanfで読み込み
closeとfloseで閉じる一連の動作に掛かる時間を比較しました
その結果ファイル容量が大きくなればなるほど
fopenは時間がかかるのですが
openは依存しないようです
この違いが何故なのか知りたいので「動作的な」と
表記してしまいました
>>128さん
すみませんファイルディスクリプタって何ですか?
0130デフォルトの名無しさん
NGNGreadとfscanfじゃなくて、readとfreadで比べろよ。
> ファイルディスクリプタって何ですか?
そのプロセス内でストリームにつけられた番号みたいなもの。
0131デフォルトの名無しさん
NGNGopen -> fdopenみたいな感じで。
0132126
NGNGわかりますた。
あとは何とかがんばってみます
ありがとうございました
0133デフォルトの名無しさん
NGNGシステムコールの違い?
open はシステムコールだけど
fopen はライブラリ関数なのではないかしら。
0134デフォルトの名無しさん
NGNGしたいのですが、どのようにレジストリを追加したらいいのでしょうか?
また、インストール時にシリアルを入力しないと先に進めないように認証
するには、どうするのでしょうか?
参考になる、URL等ご存知でしたらお願いします。
0135デフォルトの名無しさん
NGNGまさかその程度のことも自力で解決できずに
金を取ろうとしてるとか(呆)
しかもスレ違い。それはCの話題じゃなくてWindowsの話題だ。
0136デフォルトの名無しさん
NGNG>>134みたいなのが少なくとも30人はいるんだろうな。
0137デフォルトの名無しさん
NGNG>それはCの話題じゃなくてWindowsの話題だ
これも違うだろw
>>134
正直、才能無い。
別の趣味なり仕事なり探した方が人生充実すると思う。
0138デフォルトの名無しさん
NGNGWinのレジストリの話ならこの辺り。
http://pc3.2ch.net/test/read.cgi/tech/1023361418/l50
0139デフォルトの名無しさん
NGNGhttp://www.google.com/search?hl=ja&ie=Shift_JIS&q=%83V%83F%83A%83E%83F%83A+%88%EA%92%E8%8A%FA%8A%D4+%83%8C%83W%83X%83g%83%8A&lr=
目的のページにたどり着けるかは分からぬが。
0140デフォルトの名無しさん
NGNGほーら簡単でしょみたいにMS-DOSに"hello world"と表示させているのに
ボクだけどうしても"hello world"ができませんもう死にたいです
Cコンパイラのインストールの仕方や動かし方がよくわかりません
0141デフォルトの名無しさん
NGNGそれぐらいで死にたいと思ったら人生生きていけませんよ.
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNGぴったりなのがあった。いずれにせよ思いついたように作ればいい。
http://www.asahi-net.or.jp/~GV4J-SGUR/narik/susucyu.htm
そこにあったサンプルプログラム
http://www.asahi-net.or.jp/~GV4J-SGUR/narik/compo.htm#TrialCheck
>>135
ベータテストかもしれんだろ
>>136
お前のように口だけの奴が少なくとも30人はいるんだろうな
>>137
別の趣味なり仕事なり探した方が人生充実すると思う。
0144デフォルトの名無しさん
NGNGふぅん。
0145デフォルトの名無しさん
NGNG自分で物考えられない奴がプログラムやっても伸びんだろ。
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNGコード書いてね。
0148デフォルトの名無しさん
NGNG普通に、int型を画面に二進数で表示する方法がしりたいです
0149デフォルトの名無しさん
NGNG&演算子とシフト演算子を使う。
0150デフォルトの名無しさん
NGNG俺、原始的に2で割っていくな・・・。
0151デフォルトの名無しさん
NGNG0152デフォルトの名無しさん
NGNG昔と仕様変わった?その関数。
0153デフォルトの名無しさん
NGNG(value, string, radix)じゃないの?
0154デフォルトの名無しさん
NGNGいけました、ありがトン
0155デフォルトの名無しさん
NGNGchar buf[20];
for(i=0;;i++){
itoa(i,buf,2);
printf("%s\n",buf);
}
0156デフォルトの名無しさん
NGNGchar* buf;
for(i=0;;i++) {
buf = malloc((int)(log(i)/log(10))+1);
itoa(i,buf,2);
printf("%s\n",buf);
free(buf);
}
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGこれくらいのことでmalloc使うな
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNGfuyasebaiidaro
0161デフォルトの名無しさん
NGNGあと0をつめるのとかどうすれば・・・
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGsignedでやってもまともな答え出る?
0164デフォルトの名無しさん
NGNG何を言いたいのかわからんが、32bitなら32桁を越えることはないだろ。
0165デフォルトの名無しさん
NGNG言いたいことはわかるが・・・
0166デフォルトの名無しさん
NGNGatoi(i,buf,2);
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG頭でっかちなコーディングだと笑ったら
まずいですか?
0169デフォルトの名無しさん
NGNGまずい
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGそっか。
2〜36進数まで扱えるstrtolの逆みたいな関数を標準関数にしてくれればよかったのに。
0173デフォルトの名無しさん
NGNGoutfile = fopen(〜〜〜);
・・・
if (baff != 'ここを数字ならば,としたい' ) putc(baff, outfile);
上記のように,
if ( baff != '0' ) putc(baff, outfile);
とすれば,baffが0以外だった場合にputするのはわかるんですが,
これが,0〜9の数字以外なら.としたいのですが,どのようにすればよいでしょうか?
また,正規表現(\d や[0-9]といったやつ)は使えないのでしょうか?
0174デフォルトの名無しさん
NGNG正規表現は使えない。
char *nstr="0123456789";
if(!strchr(nstr,baff))とでもして。
0175174
NGNG0176デフォルトの名無しさん
NGNGforは
for(i=0;i<5;i++)
printf("i=%d\n",i);
とやると同じことを5回繰り返す
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNGn=(int(*)[3])calloc(5*3,sizeof(int));
free(n);
free後のnって,(*n)[3]の状態に戻っているの?
0182デフォルトの名無しさん
NGNGふつーisdigit()使わんか?
0183デフォルトの名無しさん
NGNG%pを使って表示してみそ。
0184デフォルトの名無しさん
NGNGそうだごめん(汗
>>173
isdigitを使って。0-7とかだったら>>174で
0185デフォルトの名無しさん
NGNG私は聞いたことがありません。
個人的にはC言語のforは自由度があり過ぎるとは思っていますが。
0186デフォルトの名無しさん
NGNGでも、Perl使いとかみたいに妙な使い方を追い求めたりはしてないな。
0187デフォルトの名無しさん
NGNGそれで、どーゆーことがわかるんでしょうか??
0188183
NGNGprintf("%p", n);
とすればポインタ n の値を表示してくれる。
callocとfreeの前後に入れてみれば、nの値の変化がわかる。
(*n)[3]の状態ってぇのがよくわからないんで、
当てずっぽうに答えただけ。
0191デフォルトの名無しさん
NGNGfree(n); しても、nの値が変わるかどうかはわからないでしょ。nの指す
ヒープ領域は解放されるでしょうけど。
0193デフォルトの名無しさん
NGNG状態って、何?
0195 C-FAQの日本語の本が欲しい
NGNG0196デフォルトの名無しさん
NGNG田部はfjに帰れ。
0197デフォルトの名無しさん
NGNGあのおっさん。
0198デフォルトの名無しさん
NGNGnが変わるわけは無いじゃん。
ポインタ自体はコピー渡しされてるんだから
0199デフォルトの名無しさん
NGNGう゛ぁか、せっかく自分で調べさせようとゆうどうしてるのに
0200デフォルトの名無しさん
NGNGtypedef struct{
int i;
void show(char n); これはなぜつかえないのか
}Myclass;
main()
{
Myclass x;
x.show;
}
みたいな感じでつかいたいのですが・・・無理ですか?
0201デフォルトの名無しさん
NGNGそろそろC++を使う時期だね
どうしてもというなら関数ポインタにすれば?
0202デフォルトの名無しさん
NGNG> structのなかで関数を定義しそれを使いたいのですがどうすればいいですか?
Cでは無理です。
ただし、関数へのポインタを使用することはできます。
もちろんポインタなので使用する前に何かの関数を設定しておく必要があります。
typedef struct{
int i;
void (*func)(char n); これはなぜつかえないのか
}Myclass;
int main(void)
{
Myclass x;
char c = '?';
x.showp = show; // void show(char); へのポインタを設定
x.showp(c); // 設定された関数の呼び出し
retrun 0;
}
0203デフォルトの名無しさん
NGNGint calc(int *x[]);
main()
{
int z;
int a[2][2] = {{1,2},{3,4}};
z = calc(a);
}
これでやった場合calc(a)がうまくいかない(aの二次配列がうまくわたせない)
のですがどうしたらいいですか?
charの場合の2次配列はうまくいくのですが・・・
0204デフォルトの名無しさん
NGNGint calc(int x[][2]);
int calc(int x[2][2]);
どれでも同等。配列の要素数は必要。
それから"int *x[]"だとint*を保持する配列になるはず
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNGメモリをケチらざるを得ない状況で無い限りC++に移行したほうがメリット多いかと
0213デフォルトの名無しさん
NGNG関数ポインタでがんがれ!
でもCでクラスの実装は無謀だよ、と予め逝っておくテスト。
0214デフォルトの名無しさん
NGNGpublicとprivateはexternとstaticで真似できる?クラスごとにファイルを作成しないといけないけど・・・
0215214
NGNG0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG変数なの?
大域変数はクラス変数になると思ったけど。
0219デフォルトの名無しさん
NGNG変数にも使えるけど・・・・
0220デフォルトの名無しさん
NGNG/* 関数外 */
static int i; /* このファイルのみ */
int i; /* 他のファイルからも */
extern int i; /* いずれかのファイルで宣言されているものを参照 */
0221218
NGNG無論わかってる。短すぎたな。こんなことを考えてるのかなあということ。
---myclass.h
typedef struct _myclass MyClass;
struct _myclass {
MyClass *(* set)(MyClass *this, char *str);
MyClass *(* display)(MyClass *this);
void (* destroy)(MyClass *this);
char *str;
};
MyClass *MyClassNew(void);
---myclass.c
#include <stdio.h>
#include <stdlib.h>
#include "myclass.h"
static int count_instance = 0; /* クラス変数、ただしプライベート */
static MyClass *set(MyClass *this, char *str)
{
this->str = str;
return this;
}
static MyClass *display(MyClass *this)
{
if (this->str) {
puts(this->str);
}
return this;
}
void destroy(MyClass *this)
{
count_instance--;
free(this);
}
MyClass *MyClassNew(void)
{
MyClass *instance = malloc(sizeof(MyClass));
if (!instance) {
return NULL;
}
count_instance++;
instance->set = set;
instance->display = display;
instance->destroy = destroy;
instance->str = NULL;
return instance;
}
0222218
NGNG#include "myclass.h"
int main(int argc, char * argv[])
{
MyClass *c;
c = MyClassNew();
if (!c) {
return 3;
}
c->set(c, "氏ね");
c->display(c);
c->destroy(c);
return 0;
}
---
要するにCで無理やりクラスっぽいことをやらせようということで、
大域変数をstaticにするってのは、count_instanceみたいにクラス変数的な
使い方を想定してるってことなのかなあ、なんて考えてた。
にしても、C++ならthisポインタを暗黙のうちに渡してくれるのに、
Cだと明示的に自分自身を渡してやらなければならないから、
やっぱC++使ったほうがいいかもね。少なくともこの点は楽できる。
0223デフォルトの名無しさん
NGNG漏れもCで暮らすとか創ってみたことあったけど、
どうしてもthisが自前になってしまってかっこわるいのであきらめた。
CはCらしくが一番
0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNG0226218
NGNGうん、かっこ悪いんだよね。
さすがに構造体に関数へのポインタ埋め込むことはやったことないけど、
構造体の実体を隠して全部関数でやり取りさせるってライブラリは何度も作ったことある。
オブジェクト指向にかぶれたばかりのときにね、やってみた(w
stdioのFILE*をやり取りする関数群はそういう作りだということに後で気づいた(w
あ、ちなみに>>221-222はコンパイルできて実行できることをgccで確認してある(w
0227デフォルトの名無しさん
NGNGFILEはオブジェクト指向だね。
0228デフォルトの名無しさん
NGNGstatic MyClass *this;
とかでもいいんだけど、あんま意味ないし。
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNGSingltonか。
C で は デ ザ イ ン パ タ ー ン も 思 い の ま ま で す 。
0231デフォルトの名無しさん
NGNG(Cでオブジェクト指向)
0232デフォルトの名無しさん
NGNGどこにあるん?
0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG------
static charfoo[1000] = "HOEHOE";
・
・
・
b.c
------
extern char foo[1000];
・
・
・
そしてソース内部の色々な個所で参照
コンパイルして出来たオブジェクトをリンクさせる。→Warning発生
開発者 「ワーニングが出ることもあるが、プログラムとしては何の問題もない」
俺の今まで学んできたC言語では、a.cでstatic宣言している以上、他のモジュールからは
参照できないはずなんだが、開発者は「これでテストもした、正常に動作している」と
言い張る。
さて、間違っているのはどっち?
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNGa.c の static char foo[] は実は参照されていないという罠。
0237デフォルトの名無しさん
NGNGえ、コンパイルエラーにならない?
0238デフォルトの名無しさん
NGNG0240234
NGNGグローバル宣言で
extern int inted;
extern int wnted;
・
・
・
・
int inted;
と記述した場合、コンパイラはどう解釈するんだ?
これもエラーが出ないらしい。ワーニングさえ。問題ないってことか・・・?
0241234
NGNG・ppp.hというヘッダでextern宣言されている
・ppp.cで実体宣言されている
・ppp.cで最初にppp.hをインクルードしているため、展開後の解釈が↑のようになる
という意味です。
0242デフォルトの名無しさん
NGNGここ→http://gcc.gnu.org/からどうやって手に入れるのか
英語ちゃんができなくて分かりません
どうか教えて下さい
0243デフォルトの名無しさん
NGNG特に問題はないと思うが?
もしかしてwntedが宣言だけされていて定義されていないことか?
wntedがプログラム中に使用されていなければ、エラーにはならない。
使用されていればエラーになる。
0244デフォルトの名無しさん
NGNG英語の前に日本語を勉強しろ。
あと、英語がわからないなら、日本製だけ使っとけ。
0245デフォルトの名無しさん
NGNG少なくともOSくらいは書こうよ。
0246242
NGNGOSはwindows98SEを使ってます
それと英語ができなくてもつかえる日本製というのがあれば
教えていただけますか
0247とし
NGNG0248デフォルトの名無しさん
NGNGコンピュータ英語出来ないのはプログラマとして致命的。
ああ、日本語LOGOとかめじろとかは国産だ。
0249デフォルトの名無しさん
NGNGBorland C++でも使え。入手方法からインストール方法まで書かれている。
http://homepage1.nifty.com/tyuuki/old/cc/bcc_install.html
gccの場合、コンパイルエラーなどのエラーメッセージは全て英語だ。
英語ができない奴に使いこなすことは難しいだろう。
0250デフォルトの名無しさん
NGNG> gccの場合、コンパイルエラーなどのエラーメッセージは全て英語だ。
いつの時代の話だ?gcc 3.1 は日本語がうざすぎるくらいだが。
0251デフォルトの名無しさん
NGNGなる。型名もしくは配列名が指定されていない。
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG> いつの時代の話だ?
では、Cで可変長配列が使えないことも「いつの時代の話だ?」
と煽っていいんですね?
0254デフォルトの名無しさん
NGNG語尾に:)がついていない。8点減点。
0256デフォルトの名無しさん
NGNG外部参照宣言はどこかのファイルに存在するものを参照する。そのどこかには自らのファイルも含まれる。
0257256
NGNG0258デフォルトの名無しさん
NGNGでもそれってブロックの最初でしか・・・。
0259デフォルトの名無しさん
NGNG> static charfoo[1000] = "HOEHOE";
コンパイルしたら、エラーになったよ。
a.c:3: invalid initializer
まぁこれはミスなんだろうが…
実は更にc.cというファイルがあって、そこに実体があるという罠。
それでもwarningがでるのはおかしいけど…
これ以上はwarningを貼ってもらうしかないね。
0260242
NGNGありがとうございます
チャレンジしてみます
0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG\0,000-
0263デフォルトの名無しさん
NGNG社会・世評
http://natto.2ch.net/soc/
が詳しい。
0264デフォルトの名無しさん
NGNG> C言語っていくらですか?
いいえ、いくらではありません。:)
0265デフォルトの名無しさん
NGNG恐ろしいことに、昔のCとの互換性のために「型を省略したらint」が
適用されてしまって、static charfoo は static int charfoo と同じ
意味になってしまう。
invalid initializerになるのは、型が書いてないからじゃなくて、
intの変数を文字列で初期化しようとしたから。だから、
static charfoo[1000];
これはエラーにならなかったりする(warningくらいは出るが)。
もっと極端な話、
foo;
これだけでもint foo;と解釈されてエラーにならないんだよね。
0266251
NGNGああそうだった。longがlong intと見なされると同じだね。
0267デフォルトの名無しさん
NGNGこれだけでもint foo;と解釈されてエラーにならないんだよね。
これはウソ
0268デフォルトの名無しさん
NGNGgccではエラーにならないんだけど、コンパイラによるのかも。
0269デフォルトの名無しさん
NGNGgcc2.9.4/gcc3.1/vc6/bcc5.5.1で通らなかったよ
0270デフォルトの名無しさん
NGNG関数の外なら行けますた。
% cc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.95.3/specs
gcc version 2.95.3 20010315 (release)
% cat foo.c
foo;
% cc -c foo.c
foo.c:1: warning: data definition has no type or storage class
% nm foo.o
00000004 C foo
00000000 t gcc2_compiled.
%
0271タイピング初心者
NGNGどっかにお手本になるソースファイルはありませんか?
いろいろ探したんですけど、なかなか見つからなくて・・・
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNG考える力のないものは再開発しかできないのか?
0274デフォルトの名無しさん
NGNGどんな環境でも使えるものを作るのは、Cだけでは大変だよ。
0275デフォルトの名無しさん
NGNG標準入出力が使えればそれが使える環境ではまぁ使えるか。
0276デフォルトの名無しさん
NGNGリターンキー押すまで入力されないタイピングソフトとかはつらかろう
0277デフォルトの名無しさん
NGNG一文字ずつ取得すればよかろう。
0278デフォルトの名無しさん
NGNGどうやって?
Cの標準関数ではできないよ。
0279デフォルトの名無しさん
NGNGJava中間コードを出力するCコンパイラを作れば解決
Javaを使えというまっとうな意見は却下
0280デフォルトの名無しさん
NGNGそうか?ANSIとかJISとか行って、
「Cの規格表ください」って言っても、
ロハではもらえないとおもうぞ。
0281デフォルトの名無しさん
NGNG規格書は有料
0282デフォルトの名無しさん
NGNGなってるみたい。
http://www.jisc.go.jp/
ここからデータベース→JISとたどっていって規格番号を指定すれば、
PDFで見ることができる。ちなみにC言語はJIS X3010だ。
0283デフォルトの名無しさん
NGNG死ぬほど遅いんだけど...
PDFをダウンロードするのはマズイのかなぁ。
0284デフォルトの名無しさん
NGNGファイルはそれなりにでかいですよ。X3010は13MBくらい。
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNGファイルgetした(w
やっちゃまずいんだろうけども、トラフィック浪費しちゃまずいと思ってさ。
0287専門学校1年生
NGNG変な記号がまじります。
添削お願いできませんでしょうか。
#include<stdio.h>
void main()
{
char code[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char hex[4];
int i,data;
for(i=0;i<4;i++)
hex[i]='0';
printf("データ入力:");
scanf("%d",&data);
for(i=0;data>=16;i++){
hex[i]=code[data%16];
data/=16;
}
hex[i]=data;
for(i=3;i>=0;i--)
printf("%c",hex[i]);
}
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG俺は天才なので教える。
printf("%x",data);
0290デフォルトの名無しさん
NGNG後ろから4行目
> hex[i]=data;
hex[i]=code[data%16];
0291デフォルトの名無しさん
NGNG素敵
0292専門学校1年生
NGNG宿題です。
>>289
すみません。そこの部分はプリントではデフォルト部分で・・
出題部分ではないのでかえられませんのです。
>>290
出来ました!♪
ありがとうございました(涙)
また教えてくださいませ。
0293専門学校1年生
NGNG0294デフォルトの名無しさん
NGNG0295284
NGNG>>286
IEだとダウンロードしながら表示できたと思ったけど、Linux上でMozillaだと
全部ダウンロードしてからAcrobatReaderが起動するんで、結局ファイルgetと
同じになっちゃうんだけど(w
いちおー、
http://www.jisc.go.jp/jis-act/reading.html
によると「入手」は有料で購入、「閲覧」はご自由にという感じなんで
(その二つの差に意味があるのかという話はさておき)、それなりに節度を守って
利用しましょということで。
0296デフォルトの名無しさん
NGNGWindowsのNetscapeCommunicator4.78でみたらTEMPフォルダに残っていた。
0297専門学校1年生
NGNG文字列のmojiaの12文字をmojibにコピーする作業なんですが、
またしても壁にぶつかっております。
おねがいします。
#include<stdio.h>
void main()
{
char mojia[]="syunka syuutou haru itiban";
char mojib[13];
int i;
for(i=0;i<12;i++);
mojib[i]=mojia[i]; /*←これでは代入されてませんか?*/
mojib[12]='\0';
printf("コピーされた文字列は%sです。\n",mojib);
printf("%c\n",mojib[1]);
}
0298ほらよ
NGNGmemcpy(mojib+i,mojia[i],1);
0299デフォルトの名無しさん
NGNGあと、宿題は別スレがあるのでそっちの方を推奨しとく。
宿題とか手伝えます
http://pc3.2ch.net/test/read.cgi/tech/1026138039/
0300298
NGNGに訂正
0301デフォルトの名無しさん
NGNGあああ。Mozilla使えばよかったのか。
IEで見てみたら変な小細工がしてあったんで、
ソース読んでこっちもいろいろ変な小細工してgetしちゃったよ。
0302専門学校1年生
NGNG出直してきます。
ありがとうございました。
0303デフォルトの名無しさん
NGNGフォントが腐ってて見れたもんじゃない
0304デフォルトの名無しさん
NGNGでも、これってわざと画質落としているのかな?
それとも印刷物をスキャナーにとおしたのか?
有料で購入した物がこのレベルならマジシャレにならないな・・・・・
0305デフォルトの名無しさん
NGNGVC++やUNIXでなら、Winsockや標準のソケット関
数使って組んだことあるのですが、DOSは初めて
です。MS-Cってソケット関数あるんでしょうか?
MSのLANMANとか入れると使えるようになるとか
なのでしょうか? 厨な質問ですみません。
0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG売ってる規格票はさすがにちゃんとした印刷になってるよ。
スキャンする際にかなり画質を落としてるんじゃないかな。
0309305
NGNGあとPC/TCPとかパッケージはいくつか知っているのですが、それらを使わずに
何とかしてみたいのです。市販されているってことは(売り物になっていると
いうことは)やはり技術的に難しいのですかね・・・。(T_T)
0310デフォルトの名無しさん
NGNG0311sx
NGNG0312デフォルトの名無しさん
NGNG0313sx
NGNGデータを標準入力から読み込むプログラムと
データをコマンドラインから読み込むプログラムはどう書きますか?
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG本買って読めよ…
0316デフォルトの名無しさん
NGNG当方VB・ASP・JAVAしかやったことがありません。
参考になるページか本ありませんか?
0317デフォルトの名無しさん
NGNGスレ違いぽいなぁ
0318デフォルトの名無しさん
NGNGint main(void)
{
if(EOF == getc(stdin)) print("0\n"), return 0;
if(EOF == getc(stdin)) print("1\n"), return 0;
if(EOF == getc(stdin)) print("2\n"), return 0;
if(EOF == getc(stdin)) print("3\n"), return 0;
以下、調べたいデータの最大まで書いていく、
0319あや
NGNGというのなんですがCで作るのですがさっぱりわかりません。
だれか知識のある方作っていただけませんか?
おねがいします。
0320デフォルトの名無しさん
NGNGマルチ氏ね。
0321デフォルトの名無しさん
NGNGお疲れ様です
0322あや
NGNGお疲れ様です。Cしてあげます。
0323デフォルトの名無しさん
NGNGはーい、あやちゃん。しーしましょうね。しー。
0324デフォルトの名無しさん
NGNG値を求めるだけなら。
int main(void)
{
int a = 10 + 20;
return 0;
}
0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNGOSはgccのあるUnix系と仮定
バッファあふれとかはとりあえず無視。
int main(void)
{
char buf[80];
FILE *fp;
gets(buf);
fp = fopen("tmp.c", w);
fprintf(fp, "#include <stdio.h>\nint main(void){printf(\"%d\n\", buf);return 0}");
fclose(fp);
system("gcc tmp.c");
system("./a.out");
return 0;
}
0327デフォルトの名無しさん
NGNG大域変数を以下のように書いたのですが,(A)の場所で「error C2159: 2 つ以上の記憶
クラスが指定されています。」というエラーがでてしまいます.
extern を消すとコンパイルされるのですが,dictionaryの値がちゃんと保持されません.
どうしたらよういのでしょうか.
Windows2000でVC++6.0を使用しています.
○sample.c
#include "foo.h"
static int dictionary[200][100];
int WINAPI WinMain ( 略)
○foo.c
#include "foo.h"
extern static int dictionary[200][100]; <---(A)
int WriteClip(HWND hwnd, int *Data)
{
(略)
○foo.h
int WriteClip(HWND hwnd, int *Data);
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNGstaticは変数のスコープを現在の翻訳単位に制限してしまうので、
この場合はまずい。
0330デフォルトの名無しさん
NGNG意味もわからずにstaticなんてつけんじゃねーよヴォケ
0331デフォルトの名無しさん
NGNGまあまあ。
staticには二つの意味があるし許そうよ
0332デフォルトの名無しさん
NGNG0333327
NGNG最初,関数内でdic配列を定義.大きな配列を指定するとスタックオーバーフロー
をおこすので,static宣言をしました.その後,dicをローカル変数からグローバル変数に
したが,staticを外すのを忘れておりました.そのため,dic配列がそのファイルに
ローカルになっているのに気が付きませんでした...
0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG0336あや
NGNG返事遅れましたがありがとうございました。
0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNGPOP 2CH
RET
0341デフォルトの名無しさん
NGNGmain()
{
for(スレ=1;スレ <=500; スレ++){
printf("(・∀・)イィ");
}}
0342デフォルトの名無しさん
NGNGわかりません!!
どうすりゃいい??配列もちょいと微妙な感じ・・・。
ちなみに独学でやっとります!
0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNG速やかに入門書を購入してください
0345デフォルトの名無しさん
NGNG実際にプログラムを組むのが一番だよ
0346デフォルトの名無しさん
NGNGポインタは指す物だ。
何かがあって、そのありかを指している、それがポインタだ。
ただそれだけのことだ。精進せよ、若人よ。
0347342
NGNGプログラムを組むときに手が止まってしまいます
やっぱアルゴリズムがわかってないのかなぁ?
それとも才能がない??
0348デフォルトの名無しさん
NGNG演習問題くらいだったら、才能より慣れだよ。
0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG\===========[_|_|_|_|_|_|_|_|_|_|_|_|_|_]===========/
/三三三三三三三三三三三三三三三三三三三三\
0 │ |∞∞∞ |::|∞∞田田∞∞|::|∞∞∞ | ::| 0
[二] | ::| |::|┏━━━━┓|::| | ::l [二]
◎○@※◎○@※. |□|.│ |┌┬┐ |::|┃/ C \┃|::| ┌┬┐| ::|. |□| ◎○@※◎○@※
ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii| `)三(´| ::|├┼┤ |::|┃ ∧_∧ ┃|::| ├┼┤| ::|`)三(´il|iiii|iiii|iiii|iiii|iiii|iiii|iiii|
@※◎○@※◎○ | ::| | ::|└┴┘ |::|┃(´∀` ) ┃|::| └┴┘| ::| | ::| @※◎○@※◎○
ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii|li┏━━━━━┓|::|┃(. つ┃|::|┏━━━━━┓ li|iiii|iiii|iiii|iiii|iiii|iiii|iiii|l
◎○@iiii※◎○@ ┣┳┳┳┳┳┫|::|┗━━━━┛|::|┣┳┳┳┳┳┫ ◎○@iiii※◎○@
ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii|l ○ ● ∫∬∫∬ ● ○ ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii|li
○○ ●● iiiii iii ii iiii ●● ○○
[ ̄ ̄] [ ̄ ̄] ( ̄ ̄ ̄ ̄ ̄) [ ̄ ̄] [ ̄ ̄]
|_○_| .|_○_| |_____| |_○_| .|_○_|
∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧
( )( )(, )(,, ) ,,)( )( )(, )( ;)
やっぱり糞言語だったんだ…… モナモナ ザワザワ 可哀想に ナモナモ...
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG専門学校って「自力で勉強できない”ボクも〜ができたらイイなぁ〜”」って人が行くところ・・・で
間違ってないよね。
0354デフォルトの名無しさん
NGNG行ったこと無いから知らんが、そうでもないんじゃない?
0355デフォルトの名無しさん
NGNGそう言うつまらんことばっかり言ってるからろくな人間になれない。
0356デフォルトの名無しさん
NGNG文章読解能力レベル1
0357デフォルトの名無しさん
NGNG行ったことあるけど、そうでもない。
けど、そういうのが多すぎて、そう見えても仕方がない。
0358デフォルトの名無しさん
NGNGバカを認識する能力よりそこ中のきらりとしたものを見つけ出す能力の方が有用だと思う。
0359デフォルトの名無しさん
NGNG学校とはそういうところ。
0360デフォルトの名無しさん
NGNG学校なんて関係ないな、と思わされた。
0361デフォルトの名無しさん
NGNG{
int i;
for(i=0;i<num;i++){
if( box[i] >= 1000 )
return TRUE;
}
return FALSE;
}
これは,ちゃんとTRUEが帰りますか?
for分の中でreturnしても関数を抜けますよね?
0362デフォルトの名無しさん
NGNGなんだBOOLとかFALSEって・・・・
抜ける。試せ。
ところで、box[]はグローバル変数?
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNGありがとん。
>>363
・・・
0365デフォルトの名無しさん
NGNGtempy=10;
kyori=abs(tempx)+abs(tempy);
ちゃんと15になるかな?
0366デフォルトの名無しさん
NGNGなぜそれがkyoriなんだい?
0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG> ちゃんと15になるかな?
何が?と意地悪を言ってみる。
0369デフォルトの名無しさん
NGNGtempy=10;
num=abs(tempx)+abs(tempy);
ちゃんと15になるかな?
0370デフォルトの名無しさん
NGNGどんくらいのことできたら言えますか。
当方まだCをはじめて1ヶ月の厨房でござる。
あと、
#include <stdio.h>
#define num 8
int main(void)
{
FILE *fp;
int test[num];
int max,min;
int i,j;
fp = fopen("test3.txt","r");
if(fp==NULL){
printf("ファイルはオープンできませんでした\n");
return 1;
↑のreturn 1の意味がわかりませぬ。
これはなにしてんの?
0371デフォルトの名無しさん
NGNGまぁ、使えと言われて使えない機能はないってとこじゃないの?
後、OSにエラーであることを教えてるんだろ。
0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNG精進します。
0374あぼーん
NGNG0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNG"000"+"%d"で右から抜き取る?
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG"%.3d"
0379376
NGNG0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNG>>378のドットを見逃しているね。
0383デフォルトの名無しさん
NGNGコピペしなされ。
0384初心者
NGNGつまらん質問でスミマセン
0385デフォルトの名無しさん
NGNGどうしようもない。
0386デフォルトの名無しさん
NGNGprintf("\n\n\n・・・・・\n");
0387Rina ◆tI333vNE
NGNG0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNGkouzoutai a,b;
いろいろな処理
a=b;
と,代入をしたいのですが,memcpyの方がいいでしょうか?
こっちの方が,速度的に早くて,安全なんでしょうか?
0390デフォルトの名無しさん
NGNG構造体のメンバによる。
0391デフォルトの名無しさん
NGNGエイリアンを全部穴に埋めればクリアだよ
0392デフォルトの名無しさん
NGNG構造体のコピーでmemcpyなぞ使う奴は今の時代にいない(といいなぁ)。
0393デフォルトの名無しさん
NGNGchar a;
char b;
int num;
BOOL b;
}kouzoutai;
です
0394デフォルトの名無しさん
NGNG読みやすさが重要
0395デフォルトの名無しさん
NGNGポインタがないなら、直接代入するよろし。安全確実。
0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNGハァ?構造体のメンバにポインタがあると危険なの?
おまえダラ決定
memcpy使う奴はもっとダラ
0398デフォルトの名無しさん
NGNGネットでたまに見かけるよ…
0399デフォルトの名無しさん
NGNGシャローコピーして、片方の知らないところで、
片方だけfreeする馬鹿がいるんでしょ。
0400デフォルトの名無しさん
NGNG同意。
少なくとも同じものを指す構造体が2つできる。
ってことはそれらの排他処理なども考えなければ。
以前に不本意なコピーになることの方が多い。
0401デフォルトの名無しさん
NGNG構造体のメンバにポインタがあること自体が危険などと誰もいっていない
0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNG0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNGかなりダラだな。
「代入すると危険か?」って聞いてるくらい雰囲気で分かれ。
ポインタあると代入だと危険でmemcpyだと安全な理由教えてごせや。
0410デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG一般的に速いコードになるし、読みやすくもなるんだから
積極的に代入すれ、memcpyなんか使うなということだな。
あと違う話だが、memcpyなんか使わんでmemmove使えという話もある。
0413デフォルトの名無しさん
NGNG同じ変数でなければ領域が重なることなんてないだろ?
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNG一般論としてだ。
0416デフォルトの名無しさん
NGNG話、違い過ぎ。
0417デフォルトの名無しさん
NGNG違う話ではあるけどね。
どんなときでもmemmoveをつかえ、memcpyなんか使うな、って話はしてもいいと思うけど。
>>412も違う話だと断ってるんだし。
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG{
int i;
for ( i = 0; i < size; i++ ) {
if ( line1[i] != line2[i] ) {
//printf("%d, %d\n", line1[i], line2[i]);
return line1[i] - line2[i];
}
}
return 0;
}
というコードがあって、printf文のコメントをはずしたときと
つけているときで戻り値が変わってしまいます。
(出力内容は関係ないみたいです、printf("")
としても結果が変わってしまいました。)
このコードだけ見てもなんともいえないかも知れませんが、
何か考えられる原因はありますか?
0420デフォルトの名無しさん
NGNGスタックの馬鹿消費
0421デフォルトの名無しさん
NGNG>どんなときでもmemmoveをつかえ
わかってなさ過。
0422デフォルトの名無しさん
NGNGどの辺が?
領域が重なってるか重なってないか考えなくてもいいのは大いに利点だよ。
逆に、memcpyはそういう判断をプログラマにさせるわけで、
速いコードになるけど現状の処理能力考えたらそんなもん誤差誤差。
むしろバグを入れる可能性を考えたら使う利点はないと考えてる。
という考えでmemmoveをいつも使えと言ってんだけどおかしいかな。
何か見落としてる?
0423デフォルトの名無しさん
NGNG本題とは関係ないんだけど、line1[i] の方が大きいときに正の
値を返したいの?だったらおかしいよ。そうでなかったらすまん。
0424デフォルトの名無しさん
NGNGどうおかしいの?
0425デフォルトの名無しさん
NGNG貼り付けてあるコード自体は悪くなさそう。
なので、呼び出し側がおかしそうだけど。
面倒くさがらずにline1[i]とline2[i]を全部表示してみればいいと思うよ。
sizeがあまり大きくなければだけど。
0426デフォルトの名無しさん
NGNGsize が line1[],line2[]の要素数を越えているんじゃ?
0427デフォルトの名無しさん
NGNGそういう判断をした上でmemcpyを使うんだから問題ないでしょ。
コピーするときって領域が重ならない場面の方が多いと思うし。
なんでもかんでも馬鹿に合わせる必要はない。
まあ、memcpy/memmove/bcopy の中身が全部同じなんてことも
あるわけだけれども。
0428デフォルトの名無しさん
NGNG0429421
NGNGは
「バグはすべてアドホックな対応で良い」
って言ってるようなもんだ。
こわっ…
0430デフォルトの名無しさん
NGNG馬鹿に合わせるようなコードを書くのが基本だと思ってたけど。
誤解して欲しくないけど、馬鹿が書くようなコードじゃないよ(w
領域が重なるか重ならないか、それは当然コードを書いているときには判別がつくだろう。
だが後にメンテするとき、他人がそのコードを読んだとき、果たしてそれが明らかかどうか。
自分よりも優秀なやつがそのコードを読むかどうか。
デバッグしてるときに「どうもメモリブロックが壊されてる、ひょっとしてmemcpyの使い方が変?」
なんて心配するよりもmemmoveを使っておいたほうがはるかに楽になる。
ま、ライブラリのバグってのもありえないとはいえないけど、まず考えなくてもいいわな(w
その辺も含めてプログラマが判断しなくちゃならないと書いたつもりだ。
そのコストは、memcpyを使って得られるささやかな利点を補って余りあると思うよ。
無論絶対使うな、とまで言い切るつもりはないけどね。多分使うべき場合もあるだろう。
ただおれの経験ではmemmoveが使えない状況だと、memcpyさえも使えない、
性能に重大な問題がある場合だけだったけどもね。
だからmemcpyを使うべき状況というのはおれにはちょっと想像がつかない。
0431デフォルトの名無しさん
NGNG賛同
0432デフォルトの名無しさん
NGNGstrcpyは使わずに、常に自作関数を使っています。
ってか。
0433デフォルトの名無しさん
NGNG領域が重なっている時の動作が未定義なので
strcpyは使うべきではありません。
領域が重なっていても正常に動作する自作の同等関数を作成し
常にそちらを用いるようにすべきです。
0434デフォルトの名無しさん
NGNGなるほどね。430はそう考えるか。
うーん。俺は逆だな・・。
memmove 使うのは転送領域が重なるからだろう、
fixする時には注意が必要かもしれない。と考える。
まぁ・・どっちにしてもコメントをいれてもらえると助かるかな。
0435デフォルトの名無しさん
NGNG自 己 防 衛 に 必 死 だ な
0436デフォルトの名無しさん
NGNGはじめから領域が重なる可能性があるならmemmoveを使う必要があるんだし、
重なる可能性が(設計上)無いんなら、memmoveを使うと本当のバグの原因が
奥深く潜り込んでしまう罠。
「memmoveを使ってるけど、領域が重なる可能性があるのか?」なんて心配
するよりも(以下略
0437デフォルトの名無しさん
NGNGそれ、最後に「ってか」がつくんだよね?
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNG0440430
NGNGこのあたりは評価とかポリシーの差になるんで議論になるとは思ってた。
関数マクロの是非とか、構造化プログラミングって効率悪そうとか、
C++なんて無駄なコード吐くからCの方がよいとか、
いやそれならいっそアセンブラで書けとか。
そういう議論は過去に山ほどあったけど大抵は「馬鹿にわかるようなコードをかけ」という
ポリシーが大抵生き残っていると思う。勿論場合によるというエクスキューズがつくけど。
丁度今現在の性能を持つシステムでmemmoveとmemcpyを使うか使わないかというあたりは
議論が分かれそうだと思ってた。で、仕掛けてみた(w
>memmove 使うのは転送領域が重なるからだろう、
>fixする時には注意が必要かもしれない。と考える。
という視点はおれにとっても他人のコードを読むときに常に意識していることだったりする。
当然「そんなこと意識させんなよ」とかいらいらする自分もそこにいる(w
コメントについては賛成。
>>436
そういう視点があるとは思わなかった。
ちょっと自信が揺らいできたよ。
0441デフォルトの名無しさん
NGNGchar *strmove(char *dst, const char *src)
{
return memmove(dst, src, strlen(src) + 1);
}
0442436
NGNG領域が重なっちゃったら絶対バグになるような場面でmemmoveは、やっぱり
使いたくない。
だって、積極的に「ここは重なってもいいようになってます」ってコメント
入れてるようなもんだから。
「領域が重なるのが仕様上ありえること」なのか、
「重なったとしたら、領域の計算にバグがある」のかが選択の基準。
重なることがありえないはずなら、好きなほう。
おれはそういうスタンスで指導してるよ。
memmoveとmemcpyの場合は微妙だけど、こういう時の考え方って、
もっとクリティカルな場面に生きてくるから。
0443デフォルトの名無しさん
NGNGC++は似非とはいえOOPを実現するためにやっていることで
programmerに新しいパラダイムを与える。
その議論はパラダイムレベルで投資するコストと対効果の話で
memcpyとmemmoveのようにシンプルな関数でその次元で
語るのはいささか微妙かと思われ。
そういう懐疑を持つことはいいと思うが・・memcpyを全部memmove
に置きかえるほど一般的かというと。
俺的にはコメントしてあればどちらでもいいけど
ひとつ覚えれば済むことなんで、どちらが良いかとかはわからないなぁ・・
0444436
NGNGとりあえずバグが表面化しない、って時に、後ろめたさを感じながら
memmoveにすることは、たまにあるけど、ナイショ)
0445デフォルトの名無しさん
NGNG数字もそうでしたっけ?
int型とか
0446sage
NGNG0447デフォルトの名無しさん
NGNGんなわきゃないでしょっ びしっ。
0448デフォルトの名無しさん
NGNG文字列リテラルの最適化のことか?
0449二つ目のお気に入りとして
NGNGサイトを目指しています。しかも総合リンク
サイトとしては日本初のナビゲーションリン
ク機能を搭載して、全てのサイトを右フレー
ムに表示できるようにしてあり、あらゆるサ
イトをさくさく表示することができます。是
非ブックマークに登録して活用してください。
http://home9.highway.ne.jp/cym10262/
0450デフォルトの名無しさん
NGNGif(a!=b)とか考えたことないや。出来るのかな?
0451デフォルトの名無しさん
NGNGまずは比較する際の「意味」を考えれ。
struct Proc p, q; // プロセス構造体
if( p < q ) ・・・
もしこんな風に書けたとしても、
結局の所「何を」比較しているのか意味分かるか?
0452デフォルトの名無しさん
NGNGa==b・・・aとbが同じ
a!=b・・・aとbは違う。
0453デフォルトの名無しさん
NGNGレコードの比較。
違いがあるのかないのか。
等等の用途に。
比較したい時ってない?
メンバがいっぱいある時、一つずつ比較するのは面倒だろ。
1byte境界にしてmemcmpか? ちと嫌だ。鬱だ。
0454デフォルトの名無しさん
NGNGそろそろC++の時期
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNGC++で万事解決?
解説本でスパッと説明されているのを見たことないなあ。
入門編しか読んだことないからかな。
解説してくれるとうれしいです。
>>455
多種多様な構造体ごとに作るのは鬱にならないか?
指定された構造体が記録されているメモリブロックをユニークに
参照して、パディング位置が判別出来れば比較用関数1つで済むだろうが。
0457デフォルトの名無しさん
NGNG>指定された構造体が記録されているメモリブロックをユニークに
>参照して、パディング位置が判別出来れば比較用関数1つで済むだろうが。
そんな無茶苦茶な。アラインメントによる隙間だってあるかも知れんし
ポインタの参照先がデータ本体かも知れんし、上にもあったが
意味上の問題もあるし(リストの連結に利用するポインタの値が
違うからといって意味的に同値で無いとは限らんだろう?)
C++では演算子のオーバーロードが出来るし、ポリモーフィズムも
可能だから456の意向に近いことは出来ると思うがな
0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNG普通に定義したら、複数のCファイルでそのヘッダファイルをinclude
しているので、multiple definitionと言われる。
0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNGヘッダファイルに関数定義を入れないといけない理由は?
0462名無しさん@XEmacs
NGNG#ifdef xxxxx_h
とかやって、回避してください。
具体的な方法は、標準的なヘッダファイルに同じことが
普通はかいてあります。
たとえは、stdio.h などにも、ちゃんと多重定義しないように
そういう処理がかいてあるので参考にしてください
0463デフォルトの名無しさん
NGNG459の犯してる誤ちはそういうことじゃない
0464デフォルトの名無しさん
NGNG単に外部参照したいだけ?
externで解決か?
0465495
NGNGANSI Cの時間計測関数より正確に時間計測できる
関数ってOSによって異なってますよね。
それをラッピングするマクロがヘッダファイルに書いてあったんです。
しかし、そのままではどうしてもコンパイルが通らないんです。
よくよく調べてみたらマクロで定義できるほど単純ではないことに
気がついて、マクロではなく関数で定義しようとしたんです。
0466463
NGNG未来からのメッセージですか?
もう一度ヘッダファイルのなんたるかを再考してみよ
0467デフォルトの名無しさん
NGNG>465
とりあえず、問題のソースをはってみそ
0469デフォルトの名無しさん
NGNGヘッダでは関数宣言、別途.cファイルで定義を記述。
がベストだろ。
#ifdef HOGE
関数定義
#else
関数宣言
#endif
として、どこか1つのソースだけで、このヘッダを読み込む前に
#define HOGE
する手もあるが、お勧めできない。
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNGまさか、おれの知ってるやつじゃあるまいな。
そいつ、ヘッダに関数を定義するの得意だった。
0473デフォルトの名無しさん
NGNG3×3のマスの中にチェスのナイトが置かれている。
(1) 3×3の配列aを定義して、すべての要素を0に初期化。ナイトの位置は1で、空欄は0で配列に記録。
スクリーン上には、□で空欄を、★でナイトの現在位置を表示する。(ナイトの最初の位置はプログラマーが選択してよい)
(2) チェスのナイトは、将棋の桂馬と同じ動きをするが、前だけでなく左右や後ろにも桂馬飛びができる。
そこで、3×3の配列bとcを宣言して、それぞれに現在位置(i,j)から移動できるマスの番号を2桁の整数で入力する。
移動できるマスが(3,1)ならば31と入力する。(この問題では移動できるマスは常に2つなので配列bとcを使います。)
(3) 現在のナイトがいる配列bの要素を10で割った商と余りを利用して、移動できるマスを(i,j)の形でプリントする。
同様に、配列cの要素をプリントする。
(4) ユーザーからの入力を読み、上の(3)で求めた(i,j)のどちらかならばナイトを移動して、新しい状態をプリントする。
入力が-1,-1ならばプログラムを終了する。
(5) 上の(3)と(4)を繰りかえす。
条件:配列aを引数として、現在ナイトがいる場所をプリントする関数を作製すること。
0474デフォルトの名無しさん
NGNGがあったけど。
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1027756023/199
http://pc3.2ch.net/test/read.cgi/tech/1027756023/247-248
0478デフォルトの名無しさん
NGNGこういう人のために時間をかけるのはどうなのだろうか。
0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNG>問題の意味もいまいちわからないし。
つまり、俺らがめちゃくちゃな解答をしてあげても先生に
「できました!かんっぺきです!ボクは天才ですから!いやーハハハハ」
とかいって提出する可能性があるわけだな
0482おしえて〜
NGNGa=2.0;
b=3.0;
c=5.0;
c[0]=a+b+c;
c[1]=a+b-c;
c[2]=a+b*c;
c[3]=a+b/c;
c[3]=a-b+c;
・
・
・
数値は同じで演算子だけを+、-、*、/の全ての組み合わせで計算したいのですが、全て書くのは大変です。
何とかこのソースを簡単に出来きませんか?
教えて下さい。
0483おしえて〜
NGNGa=2.0;
b=3.0;
c=5.0;
d[0]=a+b+c;
d[1]=a+b-c;
d[2]=a+b*c;
d[3]=a+b/c;
d[4]=a-b+c;
・
・
・
0484デフォルトの名無しさん
NGNGそういうコードを生成するコードを書きなさい
0485おしえて〜
NGNGすいません具体的にお願いします。
0486デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
int i;
const char op[] = "+-*/";
for(i = 0; i < 16; ++i) printf("d[%d]=a%cb%cc;\n", i, op[i/4], op[i%4]);
return 0;
}
0487おしえて〜
NGNG0488デフォルトの名無しさん
NGNGここまで出たんだから、ソース吐かせずに
プログラム中で計算する方法を考えるべし
0489おしえて〜
NGNGたびたびすいません。やっぱり分かりません。
486のソースをどお変えればよいのでしょうか?
初心者なので教えて頂けないでしょうか。
お願いします。
0490デフォルトの名無しさん
NGNG演算子の順位がめんどくさそう
0491デフォルトの名無しさん
NGNGこんなもんかな。ただし演算子の優先順位は考慮してないよ。
#include <stdio.h>
static double add(double a, double b)
{
return a + b;
}
static double sub(double a, double b)
{
return a - b;
}
static double mul(double a, double b)
{
return a * b;
}
static double div(double a, double b)
{
return a / b;
}
int main()
{
int i;
double (* op[])(double, double) = {add, sub, mu\
l, div};
double d[16], a = 2.0, b = 3.0, c =&n\
bsp;5.0;
for(i = 0; i < 16; ++i)
d[i] = op[i/4](a, op[i%4](b, c));
return 0;
}
0492491
NGNGこっちが正しい。
#include <stdio.h>
static double add(double a, double b)
{
return a + b;
}
static double sub(double a, double b)
{
return a - b;
}
static double mul(double a, double b)
{
return a * b;
}
static double div(double a, double b)
{
return a / b;
}
int main()
{
int i;
double (* op[])(double, double) = {add, sub, mul, div};
double d[16], a = 2.0, b = 3.0, c = 5.0;
for(i = 0; i < 16; ++i)
d[i] = op[i/4](a, op[i%4](b, c));
return 0;
}
0493デフォルトの名無しさん
NGNGどうでもいいが、なんでそんなにエディタの幅がせまいの?
0494493
NGNG0495おしえて〜
NGNGすいません。実行できないんですが・・
0496491
NGNGインデントがちゃんと見えるようにスペースを に置換してる。
んで、面倒なんで行頭のスペースだけじゃなくてソースにあるスペースを全部
に置換してるから、やたら幅を食う(笑)
ちなみにエディタというかターミナルの幅は95にしてる。
0497デフォルトの名無しさん
NGNGちょっとはその足りない脳みそ使ってみろよ
0498491
NGNGありゃあ。一応こっちではコンパイル/実行してみてるんだけど。
実行できないというのはどのレベル?
・コンパイルできない
・コンパイルできたけど実行したら保護違反とかなんとか言われてしまう
・結果が表示されない
多分、結果の表示がなされてないとかいうことかな。してないな(w
mainのreturn 0;の前に
for (i = 0; i < 16; i++)
printf("d[%d] = %f\n", i, d[i]);
と入れてみてくれ。
0499おしえて〜
NGNG実行すると、
『実行時エラー:不正なアドレス参照』とだけでます。
0500デフォルトの名無しさん
NGNG#include <stdio.h>
static double add(double a, double b) {
return a + b;
}
static double sub(double a, double b) {
return a - b;
}
static double mul(double a, double b) {
return a * b;
}
static double div(double a, double b) {
return a / b;
}
int main() {
int i;
double (* op[])(double, double) = {add, sub, mul, div};
char str[] = "+-*/";
double d[16], a = 2.0, b = 3.0, c = 5.0;
for(i = 0; i < 16; ++i)
if ( i/4 < 2 && i%4 > 1 )
d[i] = op[i/4](a, op[i%4](b, c));
else
d[i] = op[i%4](op[i/4](a,b),c);
for( i = 0; i < 16; i++ )
printf( "%f %c %f %c %f = %f\n", a, str[i/4], b, str[i%4], c, d[i] );
return 0;
}
0501デフォルトの名無しさん
NGNGおおすばらしい。
でもこれなら、結局普通に式を16個書いたほうがいいね。
ぐふっ
0502おしえて〜
NGNG実行すると
エラー:無題:4行目:パーサーエラー、・E は間違っています。
と出るんですが。
0503おしえて〜
NGNG0504デフォルトの名無しさん
NGNG全角スペースをなおしたか?
0505デフォルトの名無しさん
NGNG「コンパイル」と「実行」という言葉を使い分けよう
0506デフォルトの名無しさん
NGNGツッコミにワロタ
0507おしえて〜
NGNG直しましたが、やはりできません。
0508おしえて〜
NGNGこっちも忙しいんです。
0509デフォルトの名無しさん
NGNGコンパイルエラーの出た行を貼ってくれ。(ソースの)
0510おしえて〜
NGNG0511デフォルトの名無しさん
NGNGごめんね。
0512デフォルトの名無しさん
NGNGerror C2018: 文字 '0x40' は認識できません。
がいくつか出てくるのだが・・・
0513デフォルトの名無しさん
NGNGマターリイイ!
0514おしえて〜
NGNGCmachineが原因でKERNEL32.DLLにエラーが発生しました。Cmachineは終了します。
と出てCmachine強制終了してしまいます。
0515デフォルトの名無しさん
NGNGそれおもいっきり全角スペースじゃん
0516デフォルトの名無しさん
NGNG全角スペースを除去しろよタコ
0517デフォルトの名無しさん
NGNGスマソ
忘れてた(w
0518おしえて〜
NGNG0520デフォルトの名無しさん
NGNGみんな分かっているから気にするな。
対象のソースを丸ごと貼ってくれい
0521おしえて〜
NGNGすいません。ソース待ちだったんですか。
#include<stdio.h>
static double add(double a,double b){
return a+b;
}
static double sub(double a, double b){
return a-b;
}
static double mul(double a, double b){
return a*b;
}
static double div(double a, double b){
return a/b;
}
int main(){
int i;
double(* op[])(double,double)={add,sub,mul,div};
char str[]="+-*/";
double d[16],a=2.0,b=3.0,c=5.0;
for(i=0;i <16;i++)
if (i/4<2&&i%4>1)
d[i]=op[i/4](a,op[i%4](b,c));
else
d[i]=op[i%4](op[i/4](a,b),c);
for(i=0;i<16;i++)
printf("%f %c %f %c %f=%f\n",a,str[i/4],b,str[i%4],c,d[i]);
return 0;
}
0522おしえて〜
NGNG0523デフォルトの名無しさん
NGNGまったくもんだいない。
Cmachineとやらの問題じゃないの?
0524デフォルトの名無しさん
NGNGCmachineを使うのは初めてかい?
以前に違うソースは実行できた?
0526おしえて〜
NGNGそうですか。どうしてもできません。プログラムを動かす基の部分が原因だと思うので諦めます。
ありがとうございました。
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNGprintfとかstrcpy程度。
0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNGやっぱりw
>>530
初心者向けCエディタとでも言えばよいのかな?
ちなみにフリー。
0533デフォルトの名無しさん
NGNGCでは以下のように複数のファイルで
同一名のグローバル変数を定義しても
C++とは違い、エラーになりませんが、
これは言語仕様でしょうか?
file1.c
int foo=3;
file2.c
int foo=7;
0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNGfile2.cの中でfooを参照すると7になります。
staticを付けてないので両方のfooは外部リンケージ
を持つのに 「外部リンケージを持つ変数はプログラム
の中でただ一つの定義を持たなければならない」という
規則に違反しないんでしょうか?
0536デフォルトの名無しさん
NGNGexternしなけりゃ外部リンケージ持たないとか?
staticにすると、externができなくなる、と。
0537デフォルトの名無しさん
NGNG解決できたのかな。とりあえず、そのCmachineとやらいう変な処理系捨てて、
まともな処理系、たとえばgccなりbccなりを使ってほしい。
じゃないと変な癖つくよ。まかり間違って職業プログラマになってしまって、
しかもCを書くようになったら、かなりの困ったチャンになってしまうよ。
http://pc.2ch.net/test/read.cgi/prog/1021560641/l50
このスレで晒されるような存在になってしまうこと必至(w
で、Cmachineを使わざるを得ないというのであれば、ちょっとだけヒントを。
ただ、これでも動くかどうかはわかんないけど、トリッキーなことやってないので、
多分動くのではないかと。
以下の関数をop[なんちゃら](かんちゃら, どうした)って呼んでる部分で
置き換えてみるとよい。evalの引数opはどうやって得るかは考えてね。
double eval(char op, double a, double b)
{
switch (op) {
case '+':
return a + b;
break;
case '-':
return a - b;
break;
case '*':
return a * b;
break;
case '/':
return a / b;
break;
}
}
0538デフォルトの名無しさん
NGNGリンクエラーになる。
0539デフォルトの名無しさん
NGNGCではリンクエラーにならんそうです
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNG0542API学くん
NGNGvoid *HENSU
という表現があったのですが、意味がわかりません。
ボイドへのポインタの意味を教えていただけないでしょうか。
voidは関数に付けて返り値のないものという認識だったのですが、
変数に付いてさらにポインタというところがわかりません。
0543デフォルトの名無しさん
NGNGどうしたらいいのでしょう?
vector<char []> list;
vector<char [256]> list;
いずれもだめなようで
vector<char *> list;
とするとOKなのですが
while (inifile.getline(ss,256)){
CorpusList.push_back(ss);
AfxMessageBox(ss) //この段階では表示される
}
AfxMessageBox(CorpusList[0]);//あれれ・・・表示されない
するとAfxMessageBox(MFCのダイアログ表示命令)
になにも表示されません・・・
0544デフォルトの名無しさん
NGNGスレ違い
0545デフォルトの名無しさん
NGNGstatic指定されてない外部宣言は外部リンケージをもつ。
>>538 >>540
VC++6.0だとエラーと出るが実行できるぞ。(SPあててない)
BCC5.5.1だとエラーにならずに実行できるね。
gccは試してないけど、これが正しいのか?
0546デフォルトの名無しさん
NGNG指す型のない汎用ポインタ
0547デフォルトの名無しさん
NGNGVC++6.0でどんなオプションをつければ実行ファイルが作成されるの?
0548デフォルトの名無しさん
NGNGif (message == WM_MOUSEMOVE || pMsg->message == WM_KEYDOWN 〜
こんな感じで、書いたんですが、マウスを動かして無くても
if内に入ってしまいます。正しいマウスの判定の方法を教えてください。
0549デフォルトの名無しさん
NGNGスレ違い
void*ってのはvoidとは無関係で「任意のポインタ」って意味だよ。
malloc()の戻り値の型などがそうだね。
>>543
そりゃssは単なる「ポインタ値」だから、配列の要素は全て同じオブジェクトを指してるよ。
そういう場合はstd::stringを使っ他方がいいと思うよ。
あと、このスレは「C言語なら、俺に聞け!」だから、今後はC++スレで聞いてね。
0551デフォルトの名無しさん
NGNGif (0) {
if (message == WM_MOUSEMOVE || pMsg->message == WM_KEYDOWN 〜
}
0552デフォルトの名無しさん
NGNGスレよごし、すいませんでした。
0553547
NGNG0554デフォルトの名無しさん
NGNG初期化しないとエラーにならないね
0555デフォルトの名無しさん
NGNG汎用ポインタのことじゃないの?
malloc()なんかはvoid型のポインタを返してくるよ
0556デフォルトの名無しさん
NGNGすれ違いにレスすいません。
さっそく試してみます。
0557デフォルトの名無しさん
NGNGマジデスカ( ゚Д゚)...
0559デフォルトの名無しさん
NGNGそもそもvoidは関数の戻り値がないという意味じゃないぞ。
型がないという意味。無効にすると言った方がいいか。
0560デフォルトの名無しさん
NGNGC++でもちょっとした質問くらいならいいと思うのは折れだけか・・・
C言語(C,C++)でしょ?
こんな事書くと糞レス扱いされるんだよな・・・
0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNGそれは当り前。
0563デフォルトの名無しさん
NGNGそれよりも、
> C言語だからDOS-Cじゃなくても
C言語==DOS-C説には突っ込まないのか?
0564デフォルトの名無しさん
NGNG0565デフォルトの名無しさん
NGNG{
printf("もうわけわかんねえや");
}
else
{
printf("そりゃあそうだね");
{
return ;
0566デフォルトの名無しさん
NGNGCマガ見たけど、これ恐らくgccだからだよ。
つまり実装依存。本文にはC++では多重定義エラーに
なるが、Cではエラーにならんと書いてあるけど、
Cの規格ではエラーだよ。というのはね、外部リンケージ
を持つ外部変数の記憶割り当てには幾つかのモデルがあって、
Unix系統のものは、それ独自のモデルを採用している。
詳しくは、C Rationalの3.1.2.2に書いてある。
http://www.lysator.liu.se/c/rat/c1.html#3-1-2-4
なので、例えば以下のように、初期値がなくても各ファイル
のfooは定義であり、宣言ではない。-->リンクエラー
file1.c int foo;
file2.c int foo;
これはK&R Second Editionの付録を読めばリンクエラー
になることが理解できる。邦訳版 A10.2
0567533
NGNGなるほど、見てみます。
失礼。Cマガでは初期値なしでした。
file1.c
int foo;
file2.c
int foo;
初期値があってもBCC5.5.1ではリンクエラーとならずに
実行できてしまいます。
0568566
NGNG規格には反してると思う。
0569デフォルトの名無しさん
NGNG#include <math.h>
main()
{
double x;
x = log(64)/log(2);
printf("%d \n", (int)x);
}
答えが変になります。どのように訂正すればいいのでしょうか?
答えは整数で出したいです。
0570デフォルトの名無しさん
NGNGint main(int argc , char **argv){
int x;
char name;
x = atoi(argv[1]);
name = argv[2];
とすると、int型はOKなのですが、char型がエラーになってしまいます。
char型の変数の保持方法を教えていただけないでしょうか?
0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNG> char name;
char *name;
0573デフォルトの名無しさん
NGNG別に何も変にはならんかったが?
>570
argv[2] は char * 型だ。先頭の1文字でよいなら
name = argv[2][0];
0574569
NGNG説明不足でした。
正確な答えは6ですが、プログラムの実行結果は5になるんです。
0575デフォルトの名無しさん
NGNGこういうときのためのMAPファイルだと思うんだが。
ちなみに両方とも初期値なしの場合、VC6.0では
Address Publics by Value Rva+Base Lib:Object
0003:0000266c _foo 0040866c <common>
という感じで共有の領域に取られるみたい。
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG四捨五入したら?
0578573
NGNGうちでは6になったが?コンパイラはgccだ
0579デフォルトの名無しさん
NGNGlog(64)/log(2) が 5.999... あたりになっているのではないかと思うのだが。
一度 double のまま printf させてみることをすすめるよ。
0580デフォルトの名無しさん
NGNGdoubleのまま6.0000...
intにキャスト5
0581573
NGNG0582デフォルトの名無しさん
NGNGそれは表示の仕方の問題だと。
0583デフォルトの名無しさん
NGNG四捨五入するとおかしくなるよ。
切り捨て+1が正しい
0584デフォルトの名無しさん
NGNG答えが整数にならんときに破綻するんじゃない?
0585デフォルトの名無しさん
NGNG何桁で表示させた?
桁数が少なかったら意味ないんじゃない?
表示だけ整数になればいいのならキャストせず %0f ではどうだろう。
0586デフォルトの名無しさん
NGNGそれがいいと思う。かってにまるめてくれるっぽいし
0587569
NGNG結局、どうすればいいんでしょう?
0588573
NGNGアフォか?それじゃgccな環境だと7になるぞ?
0589569
NGNG結果を整数のまま利用したいんです。
0590デフォルトの名無しさん
NGNG>>581
0591デフォルトの名無しさん
NGNG{
int x;
char name;
if( argv[1]!=NULL) x = atoi(argv[1]);
if( argv[2]!=NULL) strcpy(&name, argv[2]);
strcpyでコピー
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG0594573
NGNG(゚д゚)ハァ?
0595デフォルトの名無しさん
NGNGいけないの?
0596デフォルトの名無しさん
NGNGlog なんか使わない方が簡単確実かもしれん。
と、言ってみるテスト。
0597デフォルトの名無しさん
NGNGxが整数かどうかは関係ないでしょ?
式全体が整数になるかならわかるがと言ってみるテスト
0598569
NGNG計算結果が整数であればいいんです。
みなさん、どうもありがとうございました。
0599デフォルトの名無しさん
NGNG2のべきだけだけだったらlog使うまでも無いけどね。
0600デフォルトの名無しさん
NGNGああ それなら前にトリッキースレかどこかで書いたと思う
( n and (n-1) )=0 なら 2のベキ乗だから
(n-1) を2進で表現した時の1の個数を数えるんだ
数え方はビットをシフトしながら加算する
0602デフォルトの名無しさん
NGNGはいよ。xが2の何乗かを調べる関数。2のべき乗以外の数入れると-1かえす。
int log_2( int x ) {
int ans = 0;
if ( (x & x-1) != 0 ) return -1;
--x;
while ( x ) x >>= 1, ++ans;
return ans;
}
0603デフォルトの名無しさん
NGNGx = (x & 0x55555555) + (x >> 1 & 0x55555555);
x = (x & 0x33333333) + (x >> 2 & 0x33333333);
x = (x & 0x0f0f0f0f) + (x >> 4 & 0x0f0f0f0f);
x = (x & 0x00ff00ff) + (x >> 8 & 0x00ff00ff);
ans = (x & 0x0000ffff) + (x >>16 & 0x0000ffff);
が格好いいぞ
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNGあんたツッコミどころ満載
0606デフォルトの名無しさん
NGNGそれ何するプログラム?
0607603
NGNGint log_2( int x ) {
if ( (x & x-1) != 0 ) return -1;
--x;
x = (x & 0x55555555) + (x >> 1 & 0x55555555);
x = (x & 0x33333333) + (x >> 2 & 0x33333333);
x = (x & 0x0f0f0f0f) + (x >> 4 & 0x0f0f0f0f);
x = (x & 0x00ff00ff) + (x >> 8 & 0x00ff00ff);
return (x & 0x0000ffff) + (x >>16 & 0x0000ffff);
}
でしょ? 実行してみて 問題ある?
0608ぺーぺー
NGNGCで作ったコンソールアプリを
実行してDOS窓がすぐ消える
のを直す方法ってしってて言っ
てるの?
0609デフォルトの名無しさん
NGNG・「>>16」
0610デフォルトの名無しさん
NGNG0611603
NGNG0612デフォルトの名無しさん
NGNGwin2kでのやり方しか知らん
0613デフォルトの名無しさん
NGNG???DOS窓開いてその上で実行したら大丈夫じゃない???よく知らんけど
0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNGほよよ。そんなやり方知らんかったよ。どういう原理?
それ使ったらなんかいいことある?
0617デフォルトの名無しさん
NGNG一時、ループ使うと、最後に予測分岐が外れて大きなペナルティを払ってたから
ループ使わないテクニックがいろいろ作られたんだ
どうせやるなら、(x & x-1)の結果で0/-1を作って (ただ要アセンブラか)
最後にor して return すれば 完全な定クロックルーチンに出来るぞ >>607
0618デフォルトの名無しさん
NGNGsignedにはどっちにしろ適用できないじゃん
0619デフォルトの名無しさん
NGNG2の補数表現なら、 -!!(x & x-1) とか。
0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNG??
0622デフォルトの名無しさん
NGNG符号を2out-of5符号という。この条件を満足する符号語はちょうど10個存在するので、
0から9までの10種類の数字を表すことができる。たとえば数と符号を次のように対応
させる。
0=00011 1=00101 2=01001 3=10001 4=00110
5=01010 6=10010 7=01100 8=10100 9=11000
(1)ユーザーに、整数を2out-of5符号に変換するか、逆変換するかを尋ねる。(入力
が1ならば変換、2ならば逆変換とする。)
(2)変換の場合:3桁の整数をユーザーに入力させて、それを変数xに代入します。
(3)10で割った商と余りを利用して、xを3つの整数に分離します。
(4)それぞれの整数を2out-of5符号に変換して表示する。ヒント:2次元配列
a[10][5]の中にそれぞれの数の2out-of5符号を0や1で0入れておくと便利です。
(5)逆変換の場合:5桁の2進数を読み込んで、配列yに代入する。(1桁ずつよんでよい。)
(6)yの値を上の表と比較して、同じものがあればその数字をプリントする。該当する
ものがなければ「2out-of5符号ではありません。」とプリントする。
条件
1.配列yを2out-of5符号の配列と比較する部分を関数にする。
上の文章が問題です。自分で考えても全然わかりません。
お願いします。
0623デフォルトの名無しさん
NGNGマルチかよ!ゴルァ!
待ってろ、今書いてやるから
0624デフォルトの名無しさん
NGNGこれでええか?
#include <stdio.h>
static int a[][5] = {
{ 0, 0, 0, 1, 1 },
{ 0, 0, 1, 0, 1 },
{ 0, 1, 0, 0, 1 },
{ 1, 0, 0, 0, 1 },
{ 0, 0, 1, 1, 0 },
{ 0, 1, 0, 1, 0 },
{ 1, 0, 0, 1, 0 },
{ 0, 1, 1, 0, 0 },
{ 1, 0, 1, 0, 0 },
{ 1, 1, 0, 0, 0 }
};
void henkan( void ) {
int x;
int z[3];
int i;
printf( "3桁の数を入力してください: " );
scanf( "%d", &x );
for ( i = 0; i < 3; i++ )
z[i] = x % 10, x /= 10;
for ( i = 2; i >= 0; i-- ) {
int j;
printf( "%d:", z[i] );
for ( j = 0; j < 5; j++ )
printf( " %d", a[z[i]][j] );
putchar( '\n' );
}
}
0625624(続き)
NGNGint i;
for ( i = 0; i < 10; i++ ) {
int j;
int match = 1;
for ( j = 0; j < 5; j++ )
if ( y[j] != a[i][j] ) match = 0;
if ( match == 1 ) return i;
}
return -1;
}
void gyakuhenkan( void ) {
int i;
int y[5];
int x;
printf( "2out-of5符号を入力してください: " );
for ( i = 0; i < 5; i++ ) {
y[i] = getchar() - '0';
printf( "%d", y[i] );
}
printf( ": " );
x = hikaku( y );
if ( x == -1 )
puts( "2out-of5符号ではありません。" );
else
printf( "%d\n", x );
}
int main( void ) {
int x;
do {
printf( "変換(1) 逆変換(2)?: " );
scanf( "%d", &x );
} while ( x != 1 && x != 2 );
getchar();
if ( x == 1 )
henkan();
else
gyakuhenkan();
return 0;
}
0626デフォルトの名無しさん
NGNG『4000未満の4桁のアラビア数字を読み込んでローマ数字に変換せよ。
入力された数字を10で割った時の商と余りを利用せよ。
尚、アラビア数字、ローマ数字は、順に1=�T、5=�X、10=�]、50=L、100=C、500=D、1000=Mとなる。
たとえば、MMDCL�]�X�T�T=1000+1000+500+100+50+10+5+1+1=2667です。
また、桁の数が4、9の場合は、引き算を適用します。たとえば、�T�X=5−1=4、�T�]=10−1=9です。
対話的に入力しますので、その入力誤りに対しては、再度入力するように表示して再入力させます。 』
0627デフォルトの名無しさん
NGNGこのスレで簡単に答えられるようなレベルの質問じゃないだろ。
0628デフォルトの名無しさん
NGNG{
int a;
scanf("%d",&a);
printf("\n%d,%d",(a/10),(a%10));
}
0629デフォルトの名無しさん
NGNG宿題スレへ戻ってください。
0630622
NGNGありがとうございます!実行してみます.
0631622
NGNG実行してみたんですが4行目に使用できない文字がある、と出てきてコンパイル
できませんでした。どこが間違っているかわかりません。お願いします。
0632デフォルトの名無しさん
NGNG全角スペースを半角スペースに置換せよ。
0633デフォルトの名無しさん
NGNG行列積は、N*M行列とM*L行列の積を計算し、N*L行列を求める
ものである。
複素数は次の構造体型定義したcomplex型を用いる。また、複素数の和
、積を求める関数を作成し、それらを用いること。
typedef struct{
double re; /*実数部*/
double im; /*虚数部*/
}complex;
この問題がわかりません。よろしくお願いします。
0634デフォルトの名無しさん
NGNGcomplex add(complex alpha, complex beta)
{
complex gamma;
gamma.re = alpha.re + beta.re;
gamma.im = alpha.im + beta.im;
return gamma;
}
complex mul(complex alpha, complex beta)
{
complex gamma;
gamma.re = alpha.re*beta.re - alpha.im*beta.im;
gamma.im = alpha.im*beta.re + alpha.re*beta.im;
return gamma;
}
0635デフォルトの名無しさん
NGNGところで、こっち↓のスレの方が向いていると思うのだが、どうよ?
宿題手伝います
http://pc3.2ch.net/test/read.cgi/tech/1027756023/l50
0636633
NGNGプログラム全部おしえていただけるとありがたいです。よろしく
お願いします。
0637633
NGNGあまりいろいろな所で聞くとわけがわからなくなりそうなので、
できればここで教えてもらいたいのですが
0638デフォルトの名無しさん
NGNG「宿題」スレへ来てもらえると助かります。
話題的にもスレ違いなのは明らかだし。
今アドバイスしてくれそうな人が複数いるので、どうぞ。
0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNG教えてもらう立場なのに、すげーわがまま。
0641622
NGNGありがとうございました!無事に実行することができました。本当に助かりました。
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNGだからって、ここに書かれてもねえ。
0644デフォルトの名無しさん
NGNGどのようにすればいいでしょうか?
引数を使って,一つだけの種類を調べたり,3つ調べたりしたいのです
0645デフォルトの名無しさん
NGNGA. 同じ型なら配列にする。
B. 二つ関数を作る。それぞれで同じような処理をするのなら
その処理を行うもう一つの関数を作ってそれぞれから呼び出す。
C. 3つ+1つの引数を受け取る関数を作って一つの引数でどちらの
処理を行うか場合分けする。
お勧めはAかB。
0646デフォルトの名無しさん
NGNGD.関数ポインタを使用
0647デフォルトの名無しさん
NGNGenum arg_type
{
type_nil = 0, type_int, type_charp
};
void func(enum arg_type a_type, ...)
{
arg_type type;
va_list v;
va_start(v, a_type);
while ((type = va_arg(v, arg_type)) != type_nil) {
switch (type) {
case type_int:
...; break;
case type_charp:
...; break;
}
}
va_end(v);
}
func(type_int, 0, type_charp, "test", type_nil);
0648デフォルトの名無しさん
NGNGprintf の宣言(がどうなっているのか)を調べれ。
マクロで
a 1,0,0
b 1,2,3
とやろうかと思っているのですが,どうでしょうか?
これは楽な方に逃げてるだけ?
0650デフォルトの名無しさん
NGNGint func(int n, ...) {
/* 実装 */
}
素人にはお勧めできない。
0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNGthat's right
0653デフォルトの名無しさん
NGNGデータが0と1しか含まないと仮定して、以下の方法でプログラムを作成してください。
getcharコマンドで、入力データの1行目を読み取り、配列aに代入(1行に38文字あるが、最後の1文字は改行文字と仮定)してカウンターの値を1に初期化する。
<最初に読んだ文字(a[0]の値)が続いている間は、カウンターの値輪1ずつ増やして読んだ文字が今までと違った(文字の連続が終わっ
た)時点でカウンターの値をプリントして1の場合にはそのまま数字をプリ
ントして0の場合には、符号をマイナスにしてプリントする。カウンター
の値を1に再初期化>して<>の間を繰り返す。2行目以降を同時に処理し
てください。
条 件:・配列aを引数として、0または1の数をプリントする関数を作成してください。
・サンプルデータは
0000000000000000111100000000000000000
0000000000011111111111111000000000000
0000000000001100000000110000000000000
0000000000000111000011100000000000000
0000000000000011100111000000000000000
0000000000000011100111000000000000000
0000000000000001111110000000000000000
0000000000000001111110000000000000000
0000000000000111111111100000000000000
0000000000011111000011111000000000000
0000000001111000000000011110000000000
0000000011100000000000000111000000000
0000001110000000000000000001110000000
0000111100000000000000000000111100000
0001111000000000000000000000011110000
0001111000000000000000000000011110000
0000111100000000000000000000111100000
0000001110000000000000000001110000000
0000000001111111111111111111000000000
0000000000000111111111100000000000000
0000000000000000000000000000000000000
#include<stdio.h>
int main(void)
{
int i, j ,counter;
int a[20][38];
char ch;
for(i=0; i<21; i++){
for(j=0; j<38; j++){
a[i][j]=getchar();
}}
for(i=0; i<21; i++){
for(j=0; j<38; j++){
printf("%c",a[i][j]);
}}}
このプログラムの後に1行目は0が16個、1が4個、0が17個であるので16,4,17というように表示したいのですがで
きません。
16,4,17
11,14,12
:
:
:
:
と表示したいのです。どうぞお願いします。
0654デフォルトの名無しさん
NGNGいい加減にしとけよ。
宿題スレに(・∀・)カエレ!
0655デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void){
int i,j,x,y,next;
int a[3][3]={{1,0,0},
{0,0,0},
{0,0,0}};
int b[3][3]={{12,20,10},
{2,-1, 0},
{2, 0, 1}};
int c[3][3]={{21,22,21},
{22,-1,20},
{12, 2,10}};
while(1){
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(a[i][j]==0){ printf("□"); }
else{
x=i;
y=j;
printf("★");}
}
printf("\n");
}
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(a[i][j]==1) printf("(%d,%d)",b[i][j]/10,b[i][j]%10);
}
}
printf("\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(a[i][j]==1) printf("(%d,%d)",c[i][j]/10,c[i][j]%10);
}
}
printf("\n next : ");
scanf("%d",&next);
if(next==b[x][y]){
a[x][y]=0;
a[b[x][y]/10][b[x][y]%10]=1;
}else if(next==c[x][y]){
a[x][y]=0;
a[c[x][y]/10][c[x][y]%10]=1;
}else if(next==-1)break;
}
return 0;
}
0656デフォルトの名無しさん
NGNGvoid naito(int z[3][3])
{
int i,j;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(z[i][j]==0){ printf("□"); }
else{
printf("★");}
}
printf("\n");
}
}
0657デフォルトの名無しさん
NGNGでも戻り値は他のもっと大事なことに使うので使えません。
そこで広域変数にセットするかint *を渡してそこにセットする(0の場合はセットしない)かのどちらかにしようと思っています。
どちらがいいですかね?
ちなみにエラーチェックはプログラムの中で一度すればOKなのでint *を渡す方法を使うのは気が引けるんです。
0658657
NGNG0659デフォルトの名無しさん
NGNGできますが、なにか?
0660デフォルトの名無しさん
NGNG0661デフォルトの名無しさん
NGNGVC++6.0でコンパイルできちゃうんだけど
0662デフォルトの名無しさん
NGNG本当に一度しかチェックしないのなら、エラーチェックする関数を別に作って
今ある関数を呼ぶ前に実行する。
0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNGまたしてもCMachineのバグ発覚か!?
ちなみにエラーメッセージは何?
0665デフォルトの名無しさん
NGNG0=0011 1=0100 2=0101 3=0110 4=0111
5=1000 6=1001 7=1010 8=1011 9=1100
この符号を用いると、各桁の1と0を入れ替えたものが9の補数になる。
そこで、3桁の整数を読み込んで、3余り符号とその補数をプリントするプログラムを以下の方法で作製せよ。
(1)3桁の整数をユーザーに入力させて、それを変数xに代入します。
(2)10で割った商と余りを利用して、xを3つの整数に分離します。
(3)それぞれの整数を3余り符号変換して表示せよ。2次元配列a[10][4]の中に
それぞれの数の3余り符号符号を0や1で0入れておくと便利です。
(4)9の補数を求めたい数字と配列を引数として、9の補数をプリントする関数
を作製せよ。たとえば1の補数は8で、各桁の1と0を入れ替えた数になって
います。
(5)上の(4)で作製した関数を用いて、3余り符号の補数を2進数でプリントせよ。
条件
1.9の補数を求めたい数字と配列を引数として、9の補数をプリントする部分を関数に
すること。
友達に聞いても誰もわかりませんでした。どうかこの問題を解いてください。お願いします。
0666デフォルトの名無しさん
NGNG氏ね
0667デフォルトの名無しさん
NGNGとにかくコンパイルができずに終了しなければいけなくなる^^;
0668デフォルトの名無しさん
NGNGこれこれこうだからコンパイルできません。と出ない?
例えば変数iは宣言されていませんとか。
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNGもしかしてOSはXP?
0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNGとりあえず、違うコンパイラに変えることをすすめとく。
0673デフォルトの名無しさん
NGNG0674Rina ◆tI333vNE
NGNG0675デフォルトの名無しさん
NGNG今落としてきて試したけど、ちゃんとコンパイルできるよ。
バージョンは何?こっちは2.02だが。
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNGとりあえず新しいの落としてきたら?
XP+Cmachine2.02で実行できてる。
でも、できれば他のコンパイラに変えた方がいいと思うけど。
0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNGごめん。ファイルバージョンは1.0.0.1で同じだった。
やっぱりBCCでもダウンロードしてみて。
0681デフォルトの名無しさん
NGNGヘッダーファイルをみるとよくわかる。
0682
NGNGMSVC6.0では
2^5=7とでます。
2^5=2*2*2*2*2 ではないのですか?
お願いします。
0683デフォルトの名無しさん
NGNG2^5は2と5のビットごとの排他的論理和
ベキ乗はmath.hをインクルードしてpow()を使って。
double pow(double x,double y);
0684
NGNGできました!
デフォルトの名無しさん、
本当にありがとうございました。
0685デフォルトの名無しさん
NGNGチョトワラターヨ
0687デフォルトの名無しさん
NGNGとでもテンプレに入れとくかぁ。
0688デフォルトの名無しさん
NGNGおれはここや宿題スレにコードを貼る前に必ずgccでチェックしてるんだけど、
こっちでうまく実行できてるのにあっち(質問者)の環境だとうまく動かないというのは
例外なくCmachineで動かしてる場合だけだったな。
「またかよ」って何度も思ったもの。
だから動作保証できないって1もしくは2あたりに入れるのは賛成だな。
Cmachineってそんなにいいものなんだろうか。どういったところがいいんだろう。
使ったことないし使う気もないんだけど、どうなんですか、使ってる諸氏?
0690デフォルトの名無しさん
NGNGC++やC#の存在が気になります。
Cと比べて、どういった利点や欠点があるかおせーてください。
0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNGC++はいい匂いがするよ。
0693デフォルトの名無しさん
NGNGソースコードを書いた後スタートボタンを押すだけでコンパイルと実行を行えるところじゃない?
VC++でも似たようなことができるけれど高いし。
俺は使っていないけど・・・
0694デフォルトの名無しさん
NGNGスタートボタンを押しても、メニューしか出てこないのですが・・・?
0695デフォルトの名無しさん
NGNGつまらん逝ってよし!
0696デフォルトの名無しさん
NGNG#include<stdio.h>
int main()
{
char* p;
fgets(p, 10, stdin);
printf("p=%s\n", p);
return 0;
}
これって普通に実行できるもんでしたっけ?
segmentation fault させるつもりだったんですが普通に動いてしまって
「あれ?」という感じなんですが。
0697デフォルトの名無しさん
NGNGたまたま運がよかっただけ。
もう少し長く読み込んでみて。
期待通りに動くだろうから( ̄ー ̄)ニヤリ
0698697
NGNGpの値は不定(なはず)なんだから。
0699デフォルトの名無しさん
NGNG> これって普通に実行できるもんでしたっけ?
「未定義」では普通に実行できても良いし、 segmentation faultしても良いし、
鼻から悪魔が出てきても良いです。
0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG「未定義」の場合、ある1つを除いた、あらゆる動作に可能性があります。
「ある1つ」とは、もちろん、あなたの期待した動作です。
0703デフォルトの名無しさん
NGNGそれは間違いです。
たまたま期待したように動作したとしてもいっこうにかまいません。
もちろん期待したとおりに動作しなくてもかまわないわけですが
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNGOSをMeから2000に変えてから
system("cls");
による画面クリアができないんですがなぜでしょう?
エスケープシーケンスでの画面クリアもできないしど
うしたらいいんでしょうか?
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNG下記を動かすと"123"と出力されます
&&の法が優先順位が高く、||,&&とも左から結合なので、
"231"と出力されると思っていたのですが、
なにか見落としがあるのでしょうか?
printf("1")<0||printf("2")&&printf("3")<0;
環境:SunOS5.7+gcc3.0
0710デフォルトの名無しさん
NGNG0711710
NGNG0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNGショートカット?
0714デフォルトの名無しさん
NGNG演算子の優先順位と結合方向は、評価の順番とは関係ありません。
0715デフォルトの名無しさん
NGNG適当に答えとくと、実行結果が演算されてるからなんじゃねーの?
0716709
NGNGこの形で順序依存の副作用を期待する式は使用できないのですね
ありがとうございました
試しにやった四則演算も"123"となりました
printf("1")+printf("2")*printf("3");
0717709
NGNGフツーに使う気はありませんです
0718714
NGNGついでにいうと、&&、||、? :は、シーケンスポイントを作り、かつ、左が先に評価されることが保障されてる。
それから a が偽なら、b、c は評価されない。
優先順位とは a || b && c が a || (b && c) と評価されるってこと。
0719デフォルトの名無しさん
NGNG0720718
NGNGうそかいちった。
b が偽なら、c は評価されない。
です。
0721デフォルトの名無しさん
NGNGシーケンスポイントって副作用終了点?
0722デフォルトの名無しさん
NGNG> コンパイル後にする「リンク」とは何者なのでしょうか
オブジェクトファイルをつなげて実行ファイルを作成する作業
0723デフォルトの名無しさん
NGNGこれくと。
0725デフォルトの名無しさん
NGNGどの辺のアドレスにどう配置するかを決定する作業。
0726デフォルトの名無しさん
NGNGそれはリロケーションと呼ばれる、リンク作業の一部。
0727デフォルトの名無しさん
NGNGなんか、それだけ読むとローダーの仕事の感じもする。
0728デフォルトの名無しさん
NGNG#include <stdio.h>
int num(int,int);
int main()
{
int (*p)();
int a=1,b=2;
p=num;
a=(*p)(a,b);
}
本ではこれで成り立つはずなんですが
VC++でコンパイルするとエラーになります
変数宣言の部分で
int (*p)(int,int)
と引数の型と数を指定すればエラーにはならないのですが
これは本が間違っているのかVC++の仕様なのかわかりません
どなたか教えてください。
0729デフォルトの名無しさん
NGNGC++としてコンパイルしているに一票
0731デフォルトの名無しさん
NGNG正確にはVC++の仕様ではなくC++の仕様
Cの場合、func()はint func(...)と同じ意味だが、
C++の場合、func()はvoid func(void)と同じ意味
0732728
NGNGVC++で完全にC言語の仕様でコンパイルする方法はありますでしょうか?
0733デフォルトの名無しさん
NGNG0734728
NGNG0735728
NGNG0736デフォルトの名無しさん
NGNG.cにせい
0737728
NGNGコンパイルできました!!
ちなみにその本の名前は?
int (*)()にint (*)(int, in)を代入するなんて事を教えるのはおかしいよ。
0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNG0741デフォルトの名無しさん
NGNGComputer Language
0742デフォルトの名無しさん
NGNGB
BCPL
C
0744デフォルトの名無しさん
NGNGBCPL = BasiC Precompile Langageのことだよね
要するにBasicのソースコードを生成するプリコンパイル言語
昔はこれであの面倒なN88-Basicの行数を意識せずにBasicを作っていたものだ
0745デフォルトの名無しさん
NGNGは?脳内プログラマ?
BCPLとBasicは別物だよ
0748デフォルトの名無しさん
NGNGgoogleでも見てな!。
0750748
NGNGこれでもみな。
http://www.visti.net/~dwl/ci/intro.htm
分かったか丸禿。
0751デフォルトの名無しさん
NGNGすごく分かりやすかった。
0752デフォルトの名無しさん
NGNG0753デフォルトの名無しさん
NGNG744-745メアド見てみろ
0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNGfloat b=3.0;
のとき、
(a == (int)b)
は常に真ですか?
さっき調べたら、0〜16777216(floatの最大)までは真
だったんだけど、どうも自信がなくて。
0756デフォルトの名無しさん
NGNG自信が無かったらやめなよ。多分大丈夫だとは思うけど保証はない。
0757デフォルトの名無しさん
NGNG07581
NGNG0759デフォルトの名無しさん
NGNG別に16777215がfloatの最大じゃないぞ。
たしか、そのくらいで精度が1.0f超えた気がしたが
0760755
NGNG全部真だった。
でもやっぱり自信がない。
0761デフォルトの名無しさん
NGNGIEEE754(現在のほとんどのCPUで採用されている浮動小数点フォーマット)
について調べてみるといいと思われ。
単精度(float)の仮数部は23bit、正規化されてるので事実上24bitあって、
2^24=1677216だから、>>759の言うとおり1677215までの整数なら
誤差なく表現できる。
0762デフォルトの名無しさん
NGNG倍精度(double)の仮数部は52bit(同様に正規化により事実上53bit)なので、
32bitの整数なら誤差なく表現可能。
正規化しただけで、1ビット増えるわけではないのだが。
0764デフォルトの名無しさん
NGNG761じゃないけど、正規化で1ビット省略されてる分
> 事実上24bit
というのは正しいと思ったんだけど違うの?
0765764
NGNG∧_∧
(´Д` ) 切腹しますた
/ y/ ヽ
Σ(m)二フ ⊂[_ノ
(ノノノ | | | l )
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0766755
NGNGなぜだ?
0767デフォルトの名無しさん
NGNG>>761、762見た?
16777216と16777217.0Fも一致してないか?
0769デフォルトの名無しさん
NGNGポインタのキャストの意味が良くわからないのですが、実際のプログラムでポインタのキャストなんて使うことはありますか?
int dt[10];
char *p;
p=(char *)dt;
ポインタは先頭アドレスだけを指すんですよね? だったらこんな一時的にポインタをキャストしても仕方がないと思うのですが・・・
厨房の質問ですみません。 どなたか返事をお願いします。
0770デフォルトの名無しさん
NGNGいろいろとキャストなんて使うことはあります
0771デフォルトの名無しさん
NGNG次のプログラムを試してみそ。(実行する前に結果を予想してみること。)
int dt[10];
char * p;
p = (char *)dt;
*dt = 1234;
printf("%d %d\n",*p, *(int*)p);
0772デフォルトの名無しさん
NGNG一番ポピュラーな使い方はmallocでメモリを確保するとき。
mallocはvoid*を返すので、たとえば
char *cp;
cp = (char *)malloc(16); // キャストする
というふうにキャストが必要になる。
他にも使わざるを得ない局面はあるんだけど、
説明するのが面倒なんで略する。
0773デフォルトの名無しさん
NGNGレスありがとうございます。
>771
実行結果は -46 1234 でした。 *(int*)p の意味が良くわからなかったので
(int*)p でやって見たら -46 1245016 という良くわからない結果が出ました。
予想と全然違いました。 もうちょっと悩んでみます。
>772
そっちも頑張ってやって見ます。 ありがとうございます。
0774¥
NGNG拡張子を.cにしたいのですがどうすればよいのでしょうか
0775デフォルトの名無しさん
NGNG右クリックで名前の変更。
0776¥
NGNGそうやってみたんですけど
「ファイル名.c.txt」になってしまいます
0777デフォルトの名無しさん
NGNGrename file1 file2 で。
0778デフォルトの名無しさん
NGNG"test.c"
で保存してみそ
0779デフォルトの名無しさん
NGNGC言語と関係ない
0780デフォルトの名無しさん
NGNGdo { \
... \
... \
} while (0)
マクロで上のようなことをしているものを時々見るのですが、
これってどんな意味があるのですか?
マクロで関係ない変数を書き換えてしまったりするのを防ぐためなのかな、、
とか思うのですが外してるかも。
0781780
NGNGnavi2ch だと見えるんですが。
0782780
NGNG0783デフォルトの名無しさん
NGNGwhileの後に";"が必要だったりするし。
0784デフォルトの名無しさん
NGNGif (test)
MACRO(x);
って書いたときのことを考えてみな。
do〜whileでくくってある場合とそうじゃない場合と。
0785デフォルトの名無しさん
NGNGステートメント使ってるから関数のようには使えないじゃん
>>784
それなら{〜}でいいじゃん
なんでdo{〜}while(0)
0788785
NGNGそこまでしてマクロにする理由は何なんだ?
0789デフォルトの名無しさん
NGNG・マクロが好き
・本物の関数にするオーバーヘッドがもったいない
・それ以外
かなあ。一番目の理由でやってるやつには氏ねと言ってやるが。
こういったことが気になり始めたら
ttp://www.bk1.co.jp/cgi-bin/srch/srch_detail.cgi/3d48d6aa9290b01024e6?aid=&bibid=01331295&volno=0000
をよむよろし。面白いよ。do〜whileでくくったマクロの話も出てくる、と思った。
今手元にないので確認できん。
0790デフォルトの名無しさん
NGNGstruct A { int i; float f; };のようなstructを定義して、
これをmain()の中で、A *a=new a[10];(あるいは、A a[10];)
として、他の関数の中で使うには、その関数はどう定義
すればよいのでしょうか?void func(A* a[]){}ではダメでした。
ここでいうfunc()の中で、a[5]->iを使いたいのです。
よろしくお願いします。
0791デフォルトの名無しさん
NGNG> ・それ以外
関数で渡せる「値」以外のものを扱いたい場合は、マクロにせざるを得ないな。
名前とか、型とか、角度とか。
0792デフォルトの名無しさん
NGNGvoid func(A* a)
void func(A a[])
0794デフォルトの名無しさん
NGNG0795¥
NGNGできました
ありがとうございました
0796デフォルトの名無しさん
NGNG/*ここから*/
if(処理A) {
後始末;
return FALSE;
}
/*ここまでが何回か続く*/
後始末;
return TRUE;
な場合、
/*ここから*/
if(処理A)
goto LABEL;
/*ここまでが何回か続く*/
後始末;
return TRUE;
LABEL:
後始末;
return FALSE;
のようにgoto文使った方がいいのでしょうか?
それとも他に方法があるでしょうか?
(要は何度も後始末の処理を書きたくない。(後始末は関数化するようなものでもない))
ちなみに、マクロはあとあと読みにくいので却下の方向で。
0797デフォルトの名無しさん
NGNG意味不明。
おまえはとりあえずCはやめておいたほうがイイゾと、忠告しておく。
0798デフォルトの名無しさん
NGNGC++で例外でも書くか
0799デフォルトの名無しさん
NGNGそういうケースでgotoを使った方が分かりやすくなるなら、無理な書き方を
してまでgotoを避ける必要はないと思うよ。
>>797
意味不明かなあ? 言いたいことは一応理解できたが…。
0800!797
NGNG俺も意味不明なんだが?結局「後始末」2回書いてるし、前半と後半でどこが違うんだ?
0801デフォルトの名無しさん
NGNGif(.....) return TRUE;
else return FALSE;
と
if(......) return TRUE;
return FALSE;
をgotoをつかって悩むというつわものと見た。
0802796
NGNG0803799
NGNGあー、確かにそう言われると例が変か。
int result = FALSE;
初期化A
if (初期化A失敗) goto fail_A;
初期化B
if (初期化B失敗) goto fail_B;
初期化C
if (初期化C失敗) goto fail_C;
何かの処理
result = TRUE:
Cの後始末
fail_C:
Bの後始末
fail_B:
Aの後始末
fail_A:
return result;
gotoを使った方がシンプルに済む例。
>>796
ヲイ。C++でいいのかよ(笑)。
C言語スレだからCの文法の範囲で解決する必要があるのかと思ったら。
0805デフォルトの名無しさん
NGNG俺は↓こうするけどなあ。
初期化A
if(初期化A成功) {
初期化B
if(初期化B成功) {
初期化C
if(初期化C成功) {
何かの処理
result = TRUE;
}
Cの後始末
}
Bの後始末
}
Aの後始末
return result;
0806デフォルトの名無しさん
NGNG俺だったらこうだな。
int function(void) {
初期化A;
if( !(初期化A成功?)) {
Aの後始末;
return FALSE;
}
初期化B;
if( !(初期化B成功?)) {
Bの後始末;
return FALSE;
}
初期化C;
if( !(初期化C成功?)) {
Cの後始末;
return FALSE;
}
何かの処理;
return TRUE;
}
>805
処理Zぐらいまであったら26重ネストになってまともにコード見れないじゃん。
0807805
NGNG完全に勘違いしてると思われ
>>処理Zぐらいまであったら26重ネストになってまともにコード見れないじゃん。
それはまあ確かにそうなんだが、
そもそもそんなコードはgoto使ったって読みにくいし、他に解決策を探すべきだろう
0808デフォルトの名無しさん
NGNGてゆうか「何かの処理」にAもBもCも必要なんだろ?
と一応つっ込んでおいてやる
0809デフォルトの名無しさん
NGNG一瞬、みかかのソースかと思った(汗)
↓こんなの
int function(void) {
int status;
int ret;
status = TRUE;
ret = 関数A;
if(ret != FALSE) {
Aの後始末;
status = FALSE;
}
if (status != FALSE) {
ret = 関数B;
if(ret != FALSE) {
Aの後始末;
Bの後始末;
status = FALSE;
}
}
if (status != FALSE) {
ret = 関数C;
if(ret != FALSE) {
Aの後始末;
Bの後始末;
Cの後始末;
status = FALSE;
}
なんかの処理;
if (status != FALSE) {
ret = 関数D;
if(ret != FALSE) {
Aの後始末;
Bの後始末;
Cの後始末;
Dの後始末;
status = FALSE;
}
}
}
return status;
}
実際はステータスが10個以上あるから、どこで何してるかサッパリ。
0810809
NGNG× if(ret != FALSE) {
○ if(ret == FALSE) {
普通、エラーチェックは
if(ret != TRUE) {
だろっ!っていうのも今回のツッコミどころです。
0811デフォルトの名無しさん
NGNGまあ絶対マネしてはいけない例としてはよかったよ
0812806
NGNG確かに完全に勘違いしてた。スマソ。
で、代わりにこんなの考えて見たけど
typedef struct {
void (init*)(void);
void (after*)(void);
} FUNCS;
void init_a(void) {
初期化A;
return Aの初期化成功?;
}
void after_a(void) {
Aの後始末;
}
// 以下B,Cも同様に関数を定義
int function(void) {
FUNCS f[]= {
{NULL, NULL},
{init_a, after_a},
{init_b, after_b},
{init_c, after_c},
{NULL, NULL},
};
for(f++; f.init!= NULL; f++) {
if(!f.init()) {
for(;init!= NULL; f--) {
f.after();
}
return FALSE;
}
}
何かの処理;
return TRUE;
}
・・・変に関数大量に作らないといけないし、だめっぽいな。
俺は>803の方が良いと思う。
つーか元の話とずれて来るな。鬱。
0813806
NGNG× >805
○ >805=>807
× void (init*)(void);
○ int (init*)(void);
× void init_a(void) {
○ int init_a(void) {
スマソ。
> 普通、エラーチェックは
> if(ret != TRUE) {
> だろっ!っていうのも今回のツッコミどころです。
とか言っちゃうような香具師に文句言われたくないな。
0815デフォルトの名無しさん
NGNGあと、関数表をダウンロードできるサイトがあったら教えてください。
0816805
NGNG>>・・・変に関数大量に作らないといけないし、だめっぽいな。
うむ。しかも質問者は「後始末」は関数にしたくないと言うておるのに(^^;;;
0817デフォルトの名無しさん
NGNG>>ウェイト
sleep()またはusleep()
>>関数表
知らん
0818デフォルトの名無しさん
NGNGここでも見ればどう?
http://www.linux.or.jp/JM/INDEX/ldp.html
0819Rina ◆tI333vNE
NGNG表…というわけではないが、お金に余裕があるなら↓を買ってみる
(もしくは図書館などから借りてくる)ことをお勧めします.
http://www.amazon.co.jp/exec/obidos/ASIN/4774104329/ref=pd_bxgy_text_1/249-7034174-2719549
/*
* やっとデスマーチがおわりますた.
*/
0820デフォルトの名無しさん
NGNGありがとうございます。sleep使ってもエラーが出ていたので聞いたのですが、コンパイラが悪かっただけのようです。
>>818
ありがとうございます。勉強します。
0821デフォルトの名無しさん
NGNGお金に余裕なんてありません(;´Д`)
0822デフォルトの名無しさん
NGNGせっかくコテハンやってるんだからもっとレアな本紹介してくれよ
期待して見ちゃったじゃねーか。
0824デフォルトの名無しさん
NGNG標準的な方法はループとclock()を組み合わせる方法だけど、UNIX系ならsleepを、WindowsならSleepを使った方がよい。
0825デフォルトの名無しさん
NGNGsleepじゃなくてSleepにしてみたら?あ、windows.hをインクルードしてね。
0826デフォルトの名無しさん
NGNGウィン厨の夏
2chの夏
0827今更
NGNGif (p) {
処理(p);
後始末(p);
}
0828デフォルトの名無しさん
NGNGstruct hoehoe *mode1;
struct hoehoe *mode2;
} STRUCT_HOEHOE;
typedef struct hoge {
STRUCT_HOEHOE hoe;
long flg;
intfrag;
} STRUCT_HOGE;
と宣言して、
STRUCT_HOGE ahya;
というグローバル変数を確保して、
ahya.hoe->mode1 とか ahya.hoe->mode2 を参照した場合、何を参照していることになるの?
0829↑
NGNGstruct hoehoe {
struct hoehoe *mode1;
struct hoehoe *mode2;
} STRUCT_HOEHOE;
typedef struct hoge {
STRUCT_HOEHOE hoe;
long flg;
intfrag;
} STRUCT_HOGE;
と宣言して、
STRUCT_HOGE ahya;
というグローバル変数を確保して、
((STRUCT_HOEHOE *)(ahya.flg))->mode1 とか
((STRUCT_HOEHOE *)(ahya.flg))->mode2 という記述をした場合、何を参照していることになるの?
先輩のソースなんだけど何やってんのかさっぱりわからない
コンパイル通るしワーニング出てないので正しいんだろうけどわからない
0830デフォルトの名無しさん
NGNGそりゃ、キャストすれば何でも通るよ。
コンパイラにもよるが、この場合flgやfragがmode1やmode2の
代わりに使われる*かもしれない*ね。
0831829
NGNGtypedef struct hoehoe {
struct hoehoe *mode1;
struct hoehoe *mode2;
} STRUCT_HOEHOE;
ここのmode1とmode2は何を指すの?
あ、さっきはtypedef忘れてたんだけどね。
0832デフォルトの名無しさん
NGNGprintf("%p\n", &(((STRUCT_HOEHOE *)(ahya.flg))->mode1));
ってな感じに片っ端からアドレスを表示してみたら。
0833直った麦価なのに暇な人
NGNGSTRUCT_HOEHOE hoe; ←おそらくここのmode1,2を参照してるつもり
long flg;
intfrag;
} STRUCT_HOGE;
0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNGfragなんじゃない。一応そういう単語あるみたいだし…
0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNGどこが標準的だ。どあほ。
0839fish
NGNG0840デフォルトの名無しさん
NGNG暗号スレで聞いたら?
0841デフォルトの名無しさん
NGNG実行速度やコンパイルされたファイルのサイズで。
0842デフォルトの名無しさん
NGNGcygwinのランタイムより速い物を自前で書けるなら、
mingwの方がいいかもしれない。
0843デフォルトの名無しさん
NGNGchar a[]="なんらかの文字列";
という長さ・内容不定の文字列があり、始めから1文字づつTextOutでウインドウに表示したいのですが、
たとえば”あ”と”a”ではバイト数がちがうので、
int i=0;///グローバル
mainloop(){
TextOut(hdc,0,0,a,i);
i++;
}
なんてやるとローマ字はちゃんと表示されますが”あ”などの日本語になるとゴミになってしまいます。
かといってi+=2とやると今度はローマ字のところがおかしくなります。
この違いを自動認識するにはどうすればよいのでしょう。
0844デフォルトの名無しさん
NGNG環境依存の質問は各スレ屁。
0845デフォルトの名無しさん
NGNG全然関係ないが
> int i=0;///グローバル
> mainloop(){
> TextOut(hdc,0,0,a,i);
> i++;
>}
なんで
mainloop(){
static int i=0;
TextOut(hdc,0,0,a,i);
i++;
}
にしない理由を小一時間問いただしたい。
0846デフォルトの名無しさん
NGNGおそらく先頭から出力しなおすとかやるんだろうが、それなら普通
struct hoge {
int i;
char *a;
};
struct hoge x = {0, "なんらかの文字列"};
mainloop(&x);
としそうなもんだが、なんせ3年間文字種判別をやったことがないという御仁
だから、構造体も使ったことがないのだろう。
0847843
NGNGサンプルの関数は本モノを最小限に縮めて書いたものです。
ですから本来はあるクラスに
DrawText(int dx,int dy,char* str,int n)というメソッドがあり、nに何文字出力するか指定します。
0848fish
NGNGありがと、逝ってきます
0849デフォルトの名無しさん
NGNG判別する標準ライブラリ関数ってありますか?
0850デフォルトの名無しさん
NGNGC++でtypeid使うしかないな。
0851デフォルトの名無しさん
NGNGなにをするのか気になる。
0852デフォルトの名無しさん
NGNG---
if(A初期化失敗 || B初期化失敗 || C初期化失敗){
if(Aが初期化されてる){
Aの後始末;
}
if(Bが初期化されてる){
Bの後始末;
}
if(Cが初期化されてる){
Cの後始末;
}
return FALSE;
}
何らかの処理;
ABCの後始末;
return TRUE;
---
で良いのではないのか?
メモリ確保じゃなければ、
ABCそれぞれに初期化実施チェックフラグ
作ってチェックすればよいし。
後始末は関数に分けた方が、綺麗だと思うが。
激しく勘違いしてたらスマソ
0853しー…ぷらぷら
NGNGC言語ではDOSアプリケーションしか作れないのですか?
私はWin用のアプリケーションを作ろうと考えているのですが…
どうでしょう?やはりC++じゃないとだめですか?
それから、C言語でRPGを作ることは出来ますか?
0854デフォルトの名無しさん
NGNGもうすこし行順の制約や可変個数のパラメータを
持ち込んだようなファイルがあるのですが、
+SectionA
arg1:param1
arg2:param2a,param2b,param2c
+SectionB
:
:
このファイルの読み込みに、lex/yaccを使うのは
変ですか? 或いは無理ですか?
それとも、いたって普通の有りがちな実装方法ですか?
0855デフォルトの名無しさん
NGNG両方可能
>>854
やりすぎ
0856親切な人
NGNGヤフーオークションで、凄い人気商品、発見!!!
プランテック製の「 RX-2000�V 」を改造済み
にした、アイティーエス製の「 RX-2000�V 」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA#.2ch.net/
ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
ヤフー ID の無い方は、下記のホームページから、
購入出来る様です↓
http://www.h4.dion.ne.jp/~gekiyasu/#.2ch.net/
0857しー…ぷらぷら
NGNG0858デフォルトの名無しさん
NGNGwin32api
あたりでぐーぐれば吉
0860858
NGNGC言語でWindowsアプリ作りたいんでしょ?
0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNGあのね、
>858を解説するとね、
グーグルで「WIN32API 解説」という
キーワードで検索してみれば?
ということなのね。
0864デフォルトの名無しさん
NGNG某ダウソ住人ハケーン
0865デフォルトの名無しさん
NGNGWin32APIとはマイクロソフトが開発している
XBOXと次期Windowsの共通開発言語です。
h=(char(*)[50])calloc(10*50,sizeof(char));
hという配列を,関数にポインタで渡して使いたいのですが,
void kan(char *hairetu[50])
{
for(int i=0;i<10;i++)
h[0][i]=5;
}
ではおかしいですよね
どのようにすればいいのか教えてください
0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNGvoid kan(char (*hairetu)[50]) または void kan(char hairetu[][50])
0869デフォルトの名無しさん
NGNGvoid kan(char (*hairetu)[50])
0870デフォルトの名無しさん
NGNGっていうふうに渡すのでしょうか?
0871デフォルトの名無しさん
NGNGそういうソースをかくひととは仲良くなりたくありません。
こたえるのはイヤ。
0872デフォルトの名無しさん
NGNGkan(h) または kan(&h[0])
0873デフォルトの名無しさん
NGNGちがう。
0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNGポインタについて修業し直せ。
C言語はポインタに始まりポインタに終わる
0876デフォルトの名無しさん
NGNGchar (*h)[50];
h=(char(*)[50])calloc(10*50,sizeof(char));
これ自体理解してないのではない?
0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNGchar (*h)[50];
h=(char(*)[50])calloc(10,sizeof(char[50]));
のほうがよい
0879通行人M
NGNGchar *strcpy(char *dest,const char *src)
の↑にどうして*がないとだめなんですか?
なんとなく配列はかえせないからポインタをかえすんだろうな
というきはするんですが。 どなたかご教授お願いします。
0880デフォルトの名無しさん
NGNG0881通行人M
NGNGありがとうございます。
なかなか独学だと2,3回本呼んだだけで理解できないですね。
・・・・・がんばります。
0882デフォルトの名無しさん
NGNG厳密には配列というデータは存在しないという事は覚えておくといい。
このへん書いてある本少ないからしゃあないが。
0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNGchar型のポインタ:char型のデータを置いている場所を示す
この場合、char型のポインタとわかっていなければ該当アドレスにあるデータが何なのか分からないんでしょうか、
それとも何型のポインタとして用いるかはプログラマに任せられているのでしょうか
char *chptr;
chptr = "stringA";
int num;
num = *chptr + *(chptr + 1);
このようにすれば*chptrの指すデータ(s)と*(chptr + 1)の指すデータ(t)をint型と解釈して(それぞれ115,116)足すことになり、
numの値は231となるわけで…
こう見ると後者(何型のポインタとして用いるかはプログラマに任せられている)が正しいように思えるのですが、どうなんでしょうか
0885デフォルトの名無しさん
NGNGこれはchar型で加算を行なって、その結果をintにキャストしています。
ので、charがsignedな環境では結果は負数になるはず。
>何型のポインタとして用いるかはプログラマに任せられている
これは正しい
0886デフォルトの名無しさん
NGNG> *chptr + *(chptr + 1)
この両オペランドが演算時に char 型 から int 型に変換されるだけ。
0888デフォルトの名無しさん
NGNGsystem()を使うのは不可。
0889デフォルトの名無しさん
NGNGOSによる。
0890デフォルトの名無しさん
NGNGLinux(gcc), Win(Visual C)共に、mkdir(dir,attribute)で出来ました。
0891デフォルトの名無しさん
NGNGWindowsでは引数はひとつだぞ。direct.hをインクルードしないと文句言ってこないけど。
0892デフォルトの名無しさん
NGNGWinはAPIレベルではCreateDirectory。
0893デフォルトの名無しさん
NGNG>ポインタ:データを置いてる場所を示す(ポイントする)
データってなに?この考え方だと関数ポインタが説明できないよ。
関数がデータだっていうのならこれでもいいかもしれないが。
場所って言う言葉がでるあたりが理解してないんじゃないかなと感じるところ。
ポインタ:オブジェクトを指すオブジェクト。
ここでいうオブジェクトは名前付きのメモリ領域のこと。
0894ディフォルトの名有りさん
NGNGその1、clsを使うにはどのヘッダーファイルをインクルードすればよいのですか?
その2、sleep()を使うにはどのヘッダーファイルをインクルードすればよいのですか?
その3、DOS画面の背景の色を変えることは出来ますか?
0895デフォルトの名無しさん
NGNG2.Unix?Windows(windows.h)のSleep()しかしらない。
3.MS-DOSならANSIエスケープシーケンスをサポートしてるから
それでできるけども、Windowsのコンソールはどうだったか
0896ディフォルトの名有りさん
NGNGありがとうございます。
0897ディフォルトの名有りさん
NGNGって、出来ませんでした;
#include<stdlib.h>
main(){
system();
}
こういうことですか?
0898デフォルトの名無しさん
NGNG0899ディフォルトの名有りさん
NGNGやった!できました!どうもありがとうございます!
0900デフォルトの名無しさん
NGNG教えてください
0901デフォルトの名無しさん
NGNG0902ディフォルトの名有りさん
NGNG文字を画面の中心に表示させるにはどうすればいいのでしょうか。
0903デフォルトの名無しさん
NGNG>>902
OSは何?
0904ディフォルトの名有りさん
NGNGwindowsです。
0905デフォルトの名無しさん
NGNG油性マジック(OS非依存)
0906デフォルトの名無しさん
NGNG>>2
0907ディフォルトの名有りさん
NGNGってことは…できないのですか。
0908デフォルトの名無しさん
NGNG(80-半角で数えた文字列の長さ)/2個のスペースを入れればいいんじゃないの
0909ディフォルトの名有りさん
NGNG文字の大きさを大きくすることは出来ますか?
0910デフォルトの名無しさん
NGNGめんどい
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
int main() {
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE) ;
COORD cPos = {30, 12} ;
DWORD x ;
system("cls") ;
hConsole = GetStdHandle(STD_OUTPUT_HANDLE) ;
SetConsoleCursorPosition(hConsole, cPos) ;
printf("abcdf") ;
WriteConsole(hConsole, "ghijk",5, &x, NULL) ;/*Win32API*/
return 0 ;
}
0911デフォルトの名無しさん
NGNG環境に依存します。
0912デフォルトの名無しさん
NGNGおおきく・・・ですか?(*´Д`)はぁはぁ
0913デフォルトの名無しさん
NGNGアプリケーションをですね…あのですね、
終了させるにはですね、あの、
えーっと…どうすれば、いいのだったかな?
0914デフォルトの名無しさん
NGNG0915デフォルトの名無しさん
NGNGいや、そう言う意味じゃなくて…;
0916デフォルトの名無しさん
NGNGexit();
0917デフォルトの名無しさん
NGNGabort();
0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNG0920ディフォルトの名有りさん
NGNGmidファイルを再生させることは可能ですか。
もし可能なら、どうやるのですか。
0921デフォルトの名無しさん
NGNGネタは別のところでおながいします
0922デフォルトの名無しさん
NGNG配線ごと引き千切る。
(ヤマトの真田さん直伝)
0923ディフォルトの名有りさん
NGNGえ、できないのですか?
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG自分ができないことを棚に上げて、他人に「できないのですか?」なんて言うなYO!
0926デフォルトの名無しさん
NGNG検索するとできるようになるよ。
0927デフォルトの名無しさん
NGNG#include <math.h>
を使ったのですが
コンパイルしようとすると
ファイル名.obj(ファイル名): Undefined symbol :sqrt_
というエラーメッセージが出てプログラムがうまく動きません
これはどうすればいいのでしょうか
0928no name
NGNGint yukuri(int,int);
main(){
int m,n;
printf("??ツ?フ???????ヘ?ケ? ?,?");
scanf("%d,%d",&m,&n);
printf("?ナ??????ヘ%d?ナ?キ\n",yukuri(m,n));
}
int yukuri(int m1,int n1){ /*???[?N???b?h?ン???@(??ォ?Z)*/
if(m1=n1){
return m1;
}
else if(m1>n1){
return yukuri(m1-n1,n1);
}
else{
return yukuri(m1,n1-m1);
}
}
/*?P?Q?W?ニ?V?Q?ナ??チ?ト?ン?ス??セ?ッ?ヌ?、?ワ?ュ?「?ゥ?ネ?「??ナ?キ.HELP me!!*/
0929デフォルトの名無しさん
NGNGコンパイラ書かないバカには教えない。 -m
0930デフォルトの名無しさん
NGNG親切だなw
0931デフォルトの名無しさん
NGNG0932no name
NGNGint yukuri(int,int);
main(){
int m,n;
printf("??ツ?フ???????ヘ?ケ???,?");
scanf("%d,%d",&m,&n);
printf("?ナ??????ヘ%d?ナ?キ\n",yukuri(m,n));
}
int yukuri(int m1,int n1){ /*???[?N???b?h?ン???@(??ォ?Z)*/
if(m1==n1){
return m1;
}
else if(m1>n1){
return yukuri(m1-n1,n1);
}
else{
return yukuri(m1,n1-m1);
}
}
/*finish!!*/
0933デフォルトの名無しさん
NGNGいい加減SJISで書こうな。
man nkf
とかやってみ?
0934デフォルトの名無しさん
NGNG「C言語」にはMIDI再生機能はないよ
できるのはMIDIデバイスへデータを送信するくらいかなw
0935デフォルトの名無しさん
NGNG妙に簡単だけどね。タイミング考えないなら。
0936no name
NGNGすんまそん
0937デフォルトの名無しさん
NGNG-lmじゃなくて?
0938927
NGNGコンパイラは「lsic試食版」を使ってます
どうすればいいんでしょうか
0939デフォルトの名無しさん
NGNG言わない約束。
0940デフォルトの名無しさん
NGNGもしかして
★C言語で遊ぼう!★
http://pc3.2ch.net/test/read.cgi/tech/1028269762/l50
の人?
0941デフォルトの名無しさん
NGNG-lmath かな? いや、知らないけど
0943デフォルトの名無しさん
NGNG> lcc aaa.c -lmath
というように、オプションをつけてみろってことでは?
0944927
NGNGこんどは
llb @link.i
llb: math.lib: No such file or directory
とつっぱねてきました
0945デフォルトの名無しさん
NGNGちゃんと設定ファイルに LIBRARY のパスを設定してる?
0946デフォルトの名無しさん
NGNGヘルプぐらい読もうね馬鹿チン
-lmathlib
0948デフォルトの名無しさん
NGNG標準ライブラリに入っていない理由って、何でしょう。
外部の数値演算ライブラリをいろいろ使いたいからでしょうか?
コンパイラによってオプション指定がばらばらだから、
>>944のような質問が後を絶たない気がします。
0949デフォルトの名無しさん
NGNG普段使わないからだろ。
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG入っているぞ。
0952デフォルトの名無しさん
NGNGそりゃ、実行ファイルのサイズが大きくなるからだろ。
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNG使う関数だけリンクすればいいじゃん。
0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNG>>2
0957デフォルトの名無しさん
NGNG新スレよろ
0959デフォルトの名無しさん
NGNGファイルポインタを使って円の面積を計算するプログラム、教えてください。
ファイルポインタには半径1から10の数値があります。
出力結果は次のようになるようにして下さい
半径 面積
1
2
3
・
・
10
0960デフォルトの名無しさん
NGNG「ファイル上の10個の数値を使って・・・・」ならまだしも。
0961959
NGNG0962デフォルトの名無しさん
NGNG0963959
NGNG0964959
NGNG0965デフォルトの名無しさん
NGNGなぜわざわざC言語でfloatを使おうとするのか小一時間(略
0966デフォルトの名無しさん
NGNGtypedef float froat;
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNG結果的にはマルチ
0969デフォルトの名無しさん
NGNGファイルの入出力、円周率の計算、表示
の全てを聞いているなら以下様々な洗礼を受けると思われ。
0970959
NGNG#define PI 3.14 /* 円周率 */
main()
{
float r, S;
scanf("%g", &r);
S = r * r * PI; /* 円の面積 */
printf("%g\n", S);
}
こんな感じのを
*fp使って、ファイルには1から10の数字は与えられている場合どうするの?
0971959
NGNGを使いたいんだが
0972デフォルトの名無しさん
NGNGfloat ten_float_ctrl[10] = {0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0},ten_float[10];
FILE*stream = NULL;
stream = fopen( filename, "a+" );
if(stream){
//fwrite((void*)&ten_float_ctrl[0],sizeof (float),10,stream);
fread((void*)&ten_float[0],sizeof (float),10,stream);
fclose( stream );
}
あとはデバッガで追っていじってちょ。
0973959
NGNG#include <stdio.h>
main()
{
float r,s
FILE *fp
みたいな形で
0974959
NGNG#include <stdio.h>
main()
{
float r,s
FILE *fp
みたいな形で
0975デフォルトの名無しさん
NGNGお前は数値を一個づつファイルから読ませたいのかと。
・・・以下略
0976デフォルトの名無しさん
NGNGFILE *fp=fopen("num-list","rt");
float r; char s[80];
fgets(s,78,fp);
sscanf(s,"%f\n",&f);
printf("%f\n",r*r*PI);
}
0977デフォルトの名無しさん
NGNG天然君? 972のプログラムが理解できないならプログラムしないほうがいいよたぶん。
1から10まで与えられていることが分かっているのであれば、
こうでいいんじゃないか?
#include <stdio.h>
main()
{
FILE *fp = stdout;
fprintf(fp, "1 3.14\n2 12.56\n3 28.26\n4 50.24\n5 78.5\n6 113.04\n7 153.86\n8 200.96\n9 254.34\n10 314.0\n");
}
0979通行人M
NGNG#include <stdio.h>
main()
{
FILE *fp;
char buf[100];
printf("ファイル名を入力しなさい");
gets(buf);
/* getsならファイルに書き込みできるけど
* fgets(buf,100,stdin)ならファイルに書き込みできません。
*/
fp=fopen(buf,"w");
if(fp == NULL)
{
fprintf(stderr,"エラーです");
}
fprintf(fp,"123");
fclose(fp);
}
(getsのbuf)と(fgetsのbuf)は、何がどう違うのですか?
0980260
NGNG#define PI 3.14 /* 円周率 */
main()
{
float r, S;
scanf("%g", &r);
S = r * r * PI;
printf("%g\n", S);
}
こんな感じのを
*fp使って、ファイルには1から10の数字は与えられている場合どうするの?
0981260
NGNG0982260
NGNG1 3.14
2
3
・
・
な感じになるようにお願いします
0983デフォルトの名無しさん
NGNGgetsとfgetsの仕様の違いに引掛ってるな。
getsは末尾の'\n'を取り除くが、fgetsは取り除かない。
だから、たとえば
fgets(buf, sizeof(buf));
の入力待ちで
hoge[cr]
したとき、bufに入ってる文字列は"hoge\n"だ。
"hoge\n"なんてファイル名は普通ないから、それで開けないのだろう。
末尾の\nを取り除くべし。
0984983
NGNGfgets(buf, sizeof(buf)); /* × */
fgets(buf, sizeof(buf), stdin); /* ○ */
だったな。
0985983 ◆HIHn86y.
NGNG0986983 ◆HIHn86y.
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1028495798/
2にCmachineについての記述を追加してみました。
ただ、省略されちゃった。
0987通行人M
NGNGそうか!!
それを忘れてた!!!
ありがとうございます。
かれこれ5時間位なやんでました。
0988デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1028495798/l50
0989デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1028495798/l50
C言語なら、俺に聞け! <28>
http://pc3.2ch.net/test/read.cgi/tech/1028495798/l50
C言語なら、俺に聞け! <28>
http://pc3.2ch.net/test/read.cgi/tech/1028495798/l50
0990デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1028495798/
0993デフォルトの名無しさん
NGNG埋め立て
DigDug
0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG,,;;;;;;;;;;;;;;;;;;;;;;---、;:;:;:;:;:,,,
/;;;;;;;;;;,-'''" ゙'''ヽ;;;;;;ヽ
/;;;;;;;;;''' ヽ;;;;l
/;;;;;;;;;'" _ヽ、
r‐、'" ) i';;;;;;;;;;; ,,;;;;;;-=ヽ、
/ / / |;;;;;;;;;;| ,,,,,;;;;;;;;;-、 ‐'"゙_,,,,,,,_\
r‐、' ヽ/ヽ/゙l |;;;;;;;;/ /-─'''''''"ヽ "‐=二 ̄ヽ、 い〜ち
/ ノ / /、ノ |;;;;;;| '",,,-==‐ ヽ " 、 ヽ に〜い
/ヽ、/ヽ/ヽ/ / ,┴、;| ==ニ-‐'" , ヽ、 ゙i せんげっと
/ヽ、/ / /、_/ |l |ヽl /l .)\ i
/ /--/、/_ / \|lノl /└-‐ヽ-‐' ヽ i
/ ─'''" ''、/ l、 ゙| / ,,---'ニ=メ i .|
/ / ヽ-i i' /-l「ヽ┼+// ;; /
./ ─-、__,,-- / ヽ、 ヽ=ヽ─++-''ノ /、
/ / ̄ヽ ,,,,\ ヽ ゙‐─''''''"~ / ヾヽ、
/ / ゙\____,,-''''" \ / )
./ / l'" ヽ、 \ヽ、 / /
l l __,,,,ノ \ ゙''ヽ 、,,,__,,;-'" /
l ,,,-─''" ヽ、,,, ,,‐"
人 ,,,,,,─''" ゙゙゙'''''''''''''''"~
-‐''''"/
0998デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。