C言語なら、俺に聞け! <29>
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGhttp://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
・前スレ <28> http://pc3.2ch.net/test/read.cgi/tech/1028495798/
コンパイラ、過去ログなどのリンクは>>2-5 あたり
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
【注意】
Cmachineは一般的なCと挙動が違いすぎるので動作の保証はできません。
まともな処理系を使いましょう。
0003デフォルトの名無しさん
NGNG26 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://pc.2ch.net/tech/kako/1003/10034/1003418249.html
0004デフォルトの名無しさん
NGNGついでに補完。>>3は重複があったりして少しバグがありまふ。
1 http://piza.2ch.net/tech/kako/967/967985026.html
2 http://piza.2ch.net/tech/kako/979/979529893.html
3 http://piza.2ch.net/tech/kako/989/989929288.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGリーナス ジョブス
/⌒◆ ◆⌒\
/ 冫、) ( ヘ´ ヽ
_/ ` ∠_ ヽ´ 人
イ ゝイノ | ヽ 冫y彳 (;⌒ヽ
|| ヘ 。 | /| / 。 | /|ヽ
|| | 。 / | | ゲイツ | | 。 /.| | |
| | 。 / | | | | 。 / .| | |
|⌒| 。 | | /⌒◆ | | 。 _| イ| |
\|` ヽ ヽ/ / 冫、) ゞ |`ヽ | | |
/|\人/\| ―/ ` ∠_ \|\人ヽ /|冫
|| || | | | | /| ゝイノ | \ ヽ|| | |/ |
||/|| | | | | / '|| 。 || \ || | || /
|| | | | | / /| 。 / |\ ) || | ||/ |
ヽ| | | |. ┌|⌒|_| 。 / |/⌒/ | || | | | |
ヽ| | | || | | | 。 / _/ | | ヽ| | | |
| | | || |⌒|\人ヽノ|⌒| | | ヽ| | |
| く__く >>  ̄\__ | ̄ヾ.くく >_ > )
\ >. /ヽ.__/  ̄\./ ̄/ < /
`ー' .  ̄ ̄  ̄ ̄ `ー'
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGすんまそ。
あまり厳密にチェックしていなかった。
次のスレを立てる人は細かい修正よろしく。
>>5
>もういいかい?
だれもカキコしてくれないから、ちょっとあせった。
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG最近その辺の設定を忘れてるヤシが多いな。
0011デフォルトの名無しさん
NGNG今日はゴーヤが安かったです。
0012デフォルトの名無しさん
NGNG最近は取締りが厳しいです。
0013デフォルトの名無しさん
NGNG0014ジョン=マッカートニー
NGNG50年以上C言語を使い続けている。
K&Rの作者よりも先にCを使い始めたのが俺の唯一の自慢だ。
C言語の質問ならなんでも聞け。
ただし宿題丸投げに答えてやれるほど暇じゃない。
天才は忙しいのだ。
0015調書新車
NGNGコンパイラは何にしたらよいですか。
ワカランことだらけなんですよ
0016デフォルトの名無しさん
NGNGそうか。
パリではゴヤが安かったよ。流石にゴッホは買えんわ。
>15
無論、Cコンパイラ
0017デフォルトの名無しさん
NGNG001815
NGNGどうやって手に入れるんですか
0019login:Penguin
NGNG>Cmachineは一般的なCと挙動が違いすぎるので動作の保証はできません。
>まともな処理系を使いましょう。
1にデカデカと(まぁタグ使えないから無理だが)書いておいた方が…(笑)。
>>15
コンパイラ フリーとかで検索しれ。
0020デフォルトの名無しさん
NGNG一応 >>2 をみれば書いてあることなんだけど (w
0021デフォルトの名無しさん
NGNGドキュソは>>2なんて見ないので>>1に書くのが吉かと…あ、>>1すら見ないか(笑)。
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG本気か?冗談だよな?
002415
NGNGコンパイラっ色々あってどれにしていいか
わからなかったもんで…
0025デフォルトの名無しさん
NGNGで、見付かった?頑張れよ。
0026デフォルトの名無しさん
NGNG名前がつまらん。日下部ネタじゃなくてもいいから、何か面白い名前にしろよ・・・
0028デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNGchar str2[256];
wcstombs(str2,str1,256);
puts(str2);
画面に正しく出力されないのですがどこがいけないのですか?
BCCを使ってます。
ロケール?
0033デフォルトの名無しさん
NGNGVC++でも失敗した。判らん。
mbstowcs()で逆変換したら大丈夫だった。当たり前だけど。
しかいなんでワイド文字列リテラルがちゃんと認識されてないのかなぁ。
mbstowcs(str1, "スペース123 テスト", sizeof(str1)/sizeof(str1[0]));
003431
NGNG取り敢えずワイド文字列で初期化しないようにします。
0035デフォルトの名無しさん
NGNGUnicodeライブラリはデフォルトの"C"ロケールだと
非ASCII文字を正しく表示しない。
プログラムの先頭でsetlocaleすべし
0036デフォルトの名無しさん
NGNGBasic Latin以外の文字って意味ね
003731
NGNG0039デフォルトの名無しさん
NGNGない。
0040デフォルトの名無しさん
NGNG意味がわからん。
使うときは sleep(WAIT(600))とかするの?
って、セミコロンが付いてるからエラーになるか。
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNGマクロの#undefって
#undef WAIT(a)
or
#undef WAIT
?
0043デフォルトの名無しさん
NGNG何が聞きたいのかわからん
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG>>38のようにパラメータを持ったマクロの場合について聞きたかったんです。
0046デフォルトの名無しさん
NGNG#ifdef VOKE
#define SHINE(a) (omaemona(a))
#else
#define SHINE(a)
#end
つまり、括弧をつけなさいってこった。
0047デフォルトの名無しさん
NGNGどこに#undefが?
0048デフォルトの名無しさん
NGNGfopenでメモリ(malloc)とかを読めますか?
あるライブラリがFILE* を要求してるのですが
直接渡したいので
よろしくおねがいします/
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG末尾のアーカイブの中にあるSIEVE_C.Cなのですが、lsic86試食版だと
問題なくコンパイル&実行が可能なのですが、djgppのgccだと、まず、
SIEVE_C.C: In function `int main(int, char**)':
SIEVE_C.C:33: invalid conversion from `char*' to `unsigned char*'
というエラーがでます。これらを直して(2番目は char* を unsigned char*に)
コンパイルすると、以下のようなエラーが出てしまいます。
このエラーの意味はなんなんでしょうか?回避方法があれば教えてください。
d:\DJGPP/tmp/ccVyvq9k.o(.eh_frame+0x11):SIEVE_C.C: undefined reference to `___gxx_personality_v0'
collect2: ld returned 1 exit status
#ソース(初めて読む486の中のソースです)
http://www.ascii.co.jp/books/support/apc/4-7561-0213-1/486.lzh
0051名無しさん@カラアゲうまうま
NGNG読めません。
glibcはiostreamと融合してるのでできるかも知れんが、当然移植性はない。
0052名無しさん@カラアゲうまうま
NGNGお前、C++でコンパイルしてるだろ。
005342
NGNG0054デフォルトの名無しさん
NGNGいつ、いかなる時に使うのかわかりません。
0055デフォルトの名無しさん
NGNGぱっと思いついたのでは有限状態機械を書くときに使うかな。
0056デフォルトの名無しさん
NGNGほうほう、ありがとう。つまり、通常のアプリを組む際には特に使わないと
言うことですよね?有限状態機械ってよくわからないけど、組み込みとか
だよね。
0057デフォルトの名無しさん
NGNGqsort使う時、bsearchを使う時、signalを使う時、atexitを使う時
0058デフォルトの名無しさん
NGNG組み込みチャウよ
あ、組み込みっつったら割り込みベクタに書くな
0059デフォルトの名無しさん
NGNG有限状態機械は普通のアプリでも使うよ。パーザを手書きするときとかね。
あとイベントドリブンのアプリケーション書くときにも使えるし。
あとはそうさなあ、Cで多態を実現しようなんて変態なことを
考えたら関数ポインタ使うかな(w
こっちはアイデアだけ考え付いて実装したことはないけど。
0060デフォルトの名無しさん
NGNG前スレも名前が糞だったし・・・
0061デフォルトの名無しさん
NGNGC++で多態で書いてたら急遽Cに変更になったときに
構造そのまま無理矢理C化した経験あり(笑)
関数ポインタ多数の構造体をvTblに模してやった。
0062名無しさん@カラアゲうまうま
NGNGさほど変態的でもないし、結構ゴロゴロしてる。
006350
NGNGレスありがとう。
えーと、
gcc sieve_c.c
とコンパイルしてます。これってCコンパイラですよね?
ちなみに、配布ホストにある、
v2gnu\gcc31b.zip
ってのをインストールしてつかってます。
0064デフォルトの名無しさん
NGNGプログラムの状態に従って同じ場所での処理が変わるときに、
その場所の処理を関数ポインタで持ち、状態が変わるごとに
対応した値に置き換えておくってことだよ。>有限ステートマシンの実装
呼出元は何も考えずにその関数ポインタを呼ぶだけ。
関数ポインタによる多態は、Cでも例えばWindowsではウィンドウ関数でやってるね。
006550
NGNG0066名無しさん@カラアゲうまうま
NGNG> v2gnu\gcc31b.zip
C++がデフォルトになってるのかな。つーか配布ホストってどこだっけ。
gcc -lang-c sieve_c.c
だとどうなる?
006750
NGNGレスありがとうございます。
http://www.delorie.com/djgpp/
です。ここから各ミラーに飛んで、v2gnuフォルダ内のgcc31b.zipです。
でも、これだけでは動かないのかも知れません。
ちなみに、自分は↓とかを読んでインストールしました。
http://www.matsusaka-u.ac.jp/~okumura/c/djgpp.html
>gcc -lang-c sieve_c.c
>だとどうなる?
やってみました。
d:/DJGPP/bin/ld.exe: cannot find -lang-c
collect2: ld returned 1 exit status
というエラーになりました。
さっきのよりわかりやすいエラーですね。リンクコマンドでのエラーかな??
006850
NGNG>gcc -c -lang-c sieve_c.c
gcc.exe: -lang-c: linker input file unused because linking not done
この段階でオブジェクトファイルはできていたので、ldを実行してみると、、
以下のようなエラーになります・・・
なんか、基本的な関数が呼び出せていない気がします・・・なぜだ??
>ld sieve_c.o
d:/djgpp/bin/ld.exe: warning: cannot find entry symbol start; defaulting to 000018d0
SIEVE_C.o(.text+0x56):SIEVE_C.C: undefined reference to `atol'
SIEVE_C.o(.text+0x72):SIEVE_C.C: undefined reference to `malloc'
SIEVE_C.o(.text+0x8b):SIEVE_C.C: undefined reference to `__dj_stderr'
SIEVE_C.o(.text+0x90):SIEVE_C.C: undefined reference to `fprintf'
SIEVE_C.o(.text+0x9d):SIEVE_C.C: undefined reference to `exit'
SIEVE_C.o(.text+0xf0):SIEVE_C.C: undefined reference to `printf'
SIEVE_C.o(.text+0x104):SIEVE_C.C: undefined reference to `putchar'
SIEVE_C.o(.text+0x11a):SIEVE_C.C: undefined reference to `printf'
SIEVE_C.o(.eh_frame+0x11):SIEVE_C.C: undefined reference to `__gxx_personality_v0'
0069デフォルトの名無しさん
NGNG全然わからないので教えてください。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGよくわからないけど
SIEVE_C.CをSIEVE_C.cに変えてgcc SIEVE_C.cでやってみたら?
0072デフォルトの名無しさん
NGNGdjgppって使ったことないんだけど、-lang-c だと ang-c という名前の
ライブラリをリンクしてしまうのでは?
>>67 のldのエラーがまさにそんな感じだし。
gcc -x c sieve_c.c
ってやったらどうなる? >>67
普通のgccだとこれでいいはずなんだけど。
007350
NGNG>gcc -x c sieve_c.c
してみたら・・・・できました。(゜□゜)
ここで聞かなければ絶対に解決しませんでした。
ありがとうございました!!!!!!!!!
小文字.cにしないだけで、変なことになるんですね。知らなかった・・・
>-lang-c だと ang-c という名前の
なるほど、-lオプションの引数が ang-c って解釈されてしまうということですね。
また何かありましたらよろしくお願いします!
0074デフォルトの名無しさん
NGNG007550
NGNG自分もcygwinにgccを入れようとしたのですが、
読んでるスレの人がdjgppを入れたのでこれにしました。
gccを使いたいだけでしたら、検討みたらどうでしょう??
http://www.delorie.com/djgpp/
http://www.st.rim.or.jp/~jack/djgpp-jp.html
http://www.matsusaka-u.ac.jp/~okumura/c/djgpp.html
http://www.nifty.ne.jp/forum/fext/tebiki/win9x05.html#9
↑を見れば大体わかるとおもいます。
C:\djgpp等に展開して、C:\djgpp\djgpp.envを設定するだけみたいです。
007650
NGNGそうなんすか??.cppだけだと思ってました・・・(゜□゜)
勉強になりました。ありがとです。
0077名無しさん@カラアゲうまうま
NGNGそれを忘れてたよ。
>>76
GCCの標準では.cc。あとは.cxxとかもある。.cppってのはVCとかで使われてる。
007833
NGNGsetlocale()でできますた。サンクスコ。
0079デフォルトの名無しさん
NGNG∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ^∀^)< いまどき、Cって吐き気がする。氏んでね。
( つ ⊂ ) \_________
.) ) )
(__)_) (^∀^)ゲラゲラ (^∀^)キモチワル- (^∀^)ゲラゲラ
(^∀^)ゲラゲラ (^∀^)Cだって (^∀^)ゲラゲラ (^∀^)プッ
(^∀^)クソダモンネ〜 (^∀^)キャハハハ (^∀^)ゲラゲラ (^∀^)まだあったんだあ。
0080デフォルトの名無しさん
NGNG# 2chでみかけるRuby厨のせいでRubyが嫌いになった元Ruby使いより
0081デフォルトの名無しさん
NGNGchar **cpp ;
cpp= &((char*)A) ;
をコンパイルすると左辺値でない(char*)Aに対して&を使おうとしました。って
コンパイルエラーになります。まあ、よく考えてみればその通りだと思いますが、
*(char*)A = 3 ;
ってコードはOKなわけだから*(char*)Aは左辺値なわけですよね。
左辺値でない式に*をつけると左辺値になるってことのようだけど、
これってC言語の文法だとどう説明できるかわかる方いますか?
実際にどう考えればよいかではなくて、C言語の厳密な文法ではどのように
解釈されてこのようなことが正当化されているのかってのが質問です。
わかる方いたらよろしくお願いします。
いまどきCさえも使えないヤシ。
解釈もなにも、ISO/IEC 9899 にずばり書いてあるからだろ。
6.5.3.2 Address and indirection operators
4 The unary * operator denotes indirection. If the operand points to a function,
the result is a function designator; if it points to an object, the result is an
lvalue designating the object. If the operand has type ``pointer to type'', the
result has type ``type''. I f an invalid value has been assigned to the pointer,
the behavior of the unary * operator is undefined.
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086名無し募集中。。。
NGNGいちいち自分で書くなりコピペするなりしてんのかね?
コピペでも結構めんどくさくない?
0087デフォルトの名無しさん
NGNGスペースを に置換すりゃ良いじゃん。
0088デフォルトの名無しさん
NGNGnavi2ch、chaliceなどを使う。
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNGまつもと尊師の教えを侮辱する事はゆるさん。
0092デフォルトの名無しさん
NGNGRuby!!
009381
NGNGありがとう。
(左辺値)←(*演算子)(右辺値)
ってことなんですね。
0094夏厨
NGNGどのようにしたらいいでしょう?
0095デフォルトの名無しさん
NGNGa
aba
abcba
abcdcda
abcdedcba
0096デフォルトの名無しさん
NGNG連立一次?だったら、ガウスの消去法がいいよ
0097デフォルトの名無しさん
NGNG電卓?
main()
{
static const char *x[] = {"a", "aba", "abcba", "abcdcda", "abcdedcba"};
int i;
for (i = 0; i < sizeof x / sizeof *x; i++)
puts(x[i]);
}
0099デフォルトの名無しさん
NGNGint main(int n,char *a[]){
int i;
if(n>26)return 0;
for(i=-(n-1);i<=(n-1);i++)putchar("abcdefghijklmnopqrstuvwxyz"[n-1-abs(i)]);
putchar('\n');
return main(n+1,NULL);}
0100デフォルトの名無しさん
NGNG#include <stdio.h>
void abc( char show, char stop )
{
putchar(show);
if ( show == stop ) return;
abc( show + 1, stop );
putchar(show);
}
int main(int,char **)
{
int i, j;
int n = 5;
for ( i = 0 ; i < n ; ++i ) {
for ( j = i ; j < n - 1 ; ++j ) putchar (' ');
abc( 'a', 'a' + i );
putchar('\n');
}
return 0;
}
0102デフォルトの名無しさん
NGNGと
const char array[]
は同じなのでしょうか?
0103デフォルトの名無しさん
NGNG違うよ。
http://www.catnet.ne.jp/kouno/c_faq/c6.html
0104げ
NGNGUNIX Cで、分割コンパイルのやり方を教えてください
おながいします
0105名無しさん@カラアゲうまうま
NGNG前スレのほうに回答されてる。
0106デフォルトの名無しさん
NGNG$ gcc -c gorua.c
$ ls
gorua.c goura.o hoge.c hoge.o
$ gcc hoge.o gorua.o
$ ls
a.out gorua.c gorua.o hoge.c hoge.o
0107104
NGNGありがとうございまふ
0108夏厨
NGNGほかに連立方程式を計算させるやりかたってないでしょうか?
0109デフォルトの名無しさん
NGNG逆行列を使うとか、、、
0110デフォルトの名無しさん
NGNG共役勾配法とか
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNGテキストファイルで開くことできないですかね?
大学の講義のときUNIXでPGM形式の画像ファイルをテキストエディタで開くと
画素成分がちゃんと表示されたのですが、BMP形式のファイルをメモ帳で開くと
文字化けしてしまうんですよ
0113デフォルトの名無しさん
NGNGネタ?
0114夏厨
NGNGあの連立方程式の入力の意味がよくわからないんです
0115112
NGNG0116名無しさん@カラアゲうまうま
NGNGおとなしくPNM使え。
0117デフォルトの名無しさん
NGNGあのね、>>109や>>110の方法よりもガウスの消去法のほうがはるかに簡単だと思うよ。
連立方程式と線形代数はやっておいた方が良い。てか高校レベルじゃねーか(゚Д゚)ゴルァ
0118デフォルトの名無しさん
NGNG0119112
NGNG0120デフォルトの名無しさん
NGNGこれでも使ってる!
http://www.text2music.com/hima/doc/hajimete/draw.htm
0121デフォルトの名無しさん
NGNG単にファイルの中身が見たいのなら、16進ダンプでもすればいいだけではないの?
0122夏厨
NGNGすいません、リア厨なんです。
夏休みの数学の自由研究をこれにしてしまおうと思ったのですが・・・
0123112
NGNG16進ダンプで検索した結果、ファイルの中身を16進法で表示してくれるソフトを
見つけることができました。ありがとうございます!
0124デフォルトの名無しさん
NGNGコードの落とし方の例はいっぱいあるからどれがいいって言えないけど
おじさん年だからもう覚えてなくてね、悪いね力になれなくて
まず、関数をどっかから仕入れて、void Gause(double **A, int N) とかでね
で、たとえば2元1次だったら double A[3][4], int N; を渡すの
a1x + b1y = c1
a2x + b2y = c2
だったら
|a1 b1| |x| = |c1|
|a2 b2| |y| = |c2|
で、double A[3][4] の内訳はと...
あとは任せるよ、若いお兄さん
0125デフォルトの名無しさん
NGNG連立方程式をC言語として扱う以前に、数学的にちゃんと扱えるようでないと本末転倒。
時間はたっぷりあるから、がんばれ。
0126デフォルトの名無しさん
NGNG数値の組み合わせ全部調べるのが一番簡単
0127デフォルトの名無しさん
NGNG0128
NGNG0129デフォルトの名無しさん
NGNGマクローリン展開された式を使ってたよ。
OldなPC-9801やMSXなのになかなか速いと評判でした(謎
0130デフォルトの名無しさん
NGNGお前もBug取りしてもらえ
0131デフォルトの名無しさん
NGNG猫蚤がすごいです。うわー
0132デフォルトの名無しさん
NGNG出てきたんだけど…。
0133デフォルトの名無しさん
NGNGgcc -l ./ moe.c
なんですが・・・
ひょっとして、だめだめぽ?
0134デフォルトの名無しさん
NGNGヘッダーって#includeで読み込むものじゃないのか?
0135デフォルトの名無しさん
NGNGgcc -I header_dir/ hoge.c
あと
#include <my_header.h>
ではなくて
#include "my_header.h"
ってやると同じディレクトリから探してくれるので、大きなライブラリを開発してて
ヘッダがいくつかのディレクトリに分散する、という局面でない限りは下の記法をお勧めするが。
0136デフォルトの名無しさん
NGNG#includeはしていて、特定パスにあるヘッダを読み込みたいんです
説明不足ですんまそん
>135
試してみます
0138デフォルトの名無しさん
NGNGのように main に渡る文字配列 argv[1], argv[2],,,
を後から(別の関数内で)使いたい場合、それぞれのポインタを別の変数で持っ
ておけばいいでしょうか?
それとも、argv[1], argv[2],,, をいったん別の文字配列にコピーしておく方
が安全でしょうか?
つまり、引数へのポインタだけを持っている場合、引数の文字列がプログラム
の実行中に別のもので上書きされて消えてしまったりするのかどうかというこ
とが知りたいんですが。
0139133
NGNGすんません、逝ってきます
0140デフォルトの名無しさん
NGNG参照だけならポインタ(argv[n]の値)を、書き換える可能性があるのならコピーを渡した方がよいと思う。
0141デフォルトの名無しさん
NGNG巷の公開ソース等を読むと、gotoの飛び先のラベルに
空文(セミコロン)がくっついているものがやたらと
多いのはなぜでしょうか?
ラベルの直後に文がなければ空文が必要なのはわかりますが、
直後にごく普通の命令があっても入っているようで...
空文がないと、何か他に危険があるのでしょうか。
>>138
万一上書きされるとしたら、main関数内でさえ
(別の関数を呼んだ後の)安全性が保証されなく
なってしまうと思いますが。
0142デフォルトの名無しさん
NGNG逆に、空文があったら何か悪いことあるの?と聞きたい
0143C初心者
NGNG折れ線グラフです
0144デフォルトの名無しさん
NGNGどこに何を使って書くの?
0145C初心者
NGNG#include <graphic.h>
#include <math.h>
#define X0320// 原点X
#define Y0240// 原点Y
#define X_R 50// X倍率
#define Y_R -150// Y倍率
int main(void)
{
double x, sy, cy;
double pre_x, pre_sy, pre_cy;
printf("描画スタート!");
/* 座標軸を描画 */
setline(0, Y0, 640, Y0, 1, 9);
setline(X0, 0, X0, 480, 1, 9);
/* sin, cosカーブを描画 */
for(x = 0; x<=640; x+=10) {
sy = Y_R * sin((x-X0)/X_R) + Y0;
cy = Y_R * cos((x-X0)/X_R) + Y0;
if(x != 0) {
setline(pre_x, pre_sy, x, sy, 1, 13);
setline(pre_x, pre_cy, x, cy, 1, 11);
}
pre_x = x; pre_sy = sy; pre_cy = cy;
}
printf("\n描画エンド!\n");
return 0;
}
2点の座標をいれると平面座標上にでてくるようにしたいのですが。
0146デフォルトの名無しさん
NGNG>>144は?
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNGintってどう読むのですか。
0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNGhttp://www.cjn.or.jp/docs/dic/unix-term-dic.html
0151デフォルトの名無しさん
NGNG実数しか無いときは、虚数部にゼロを詰めてやればいいと本でみたのですが、
そのときは、ゼロを詰めるだけで、そのまま普通のFFTのプログラムを使えるのでしょうか?
0152151
NGNG0153デフォルトの名無しさん
NGNG実数部と虚数部の意味がわかっているかい?FFTの忌みがわかっているかい?
0154デフォルトの名無しさん
NGNGtypedef long long MYLONG64
などとtypedefした時に、MYLONG64が既に定義されてる場合は、
undefしてから、
ここで再定義したいのですが、#if defined(MYLONG64) などと
やって typedef されているかどうかを判断しても良いものでしょうか?
0155デフォルトの名無しさん
NGNG#ifはプリプロセッサが解釈するものだが、typedefはコンパイラが解釈するものだぞ。
0156デフォルトの名無しさん
NGNGとなると、やりたい事を実現するには何か良い方法ありますか?
コンパイル時に redifinition error がとれなかったりして困るんですが。
0157デフォルトの名無しさん
NGNGので、そういうことをやりたいんです。
0158デフォルトの名無しさん
NGNG多分、根本的な部分で設計ミス
0159名無しさん@カラアゲうまうま
NGNGtypedefは消せない。
0160デフォルトの名無しさん
NGNG#defineして#ifdefのなかでtypedefしてればよかたのに
0161141
NGNG可読性が上がるわけでもないのに、ソースのサイズが
増えるし、入力の手間が増えるし、まあそういう細かい点は
置いておいて、
それが一体何を意味しているのか読み手にわからない
という事は悪いところだと思います。
わざわざ付けているのはきっと何かの理由があっての
ことだと思うのです。
もしもわかる人がいたら教えてください。
0162名無しさん@カラアゲうまうま
NGNG0163デフォルトの名無しさん
NGNG(コードの修正で)どこに行っても安心だろ
とか言ってると、
if (expression)
statement;
を
if (expression)
label:;
statement;
にしてしまう罠。
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNG#include <sys/stat.h>
#include <stdio.h>
#include <pwd.h>
int main() {
struct passwd pwd = *getpwuid(1002);
printf("%s\n", pwd.pw_gecos);
return(1);
}
ていうコードで、/etc/passwd のGECOS覧が空欄だった場合には
空行がでるだけなのを [empty GECOS] という文字列がでるように
したいのですが、どうしたら良いでしょう?
0168デフォルトの名無しさん
NGNGint main() {
struct passwd pwd = *getpwuid(1002);
if (strlen(pwd.pw_gecos) != 0) {
printf("%s\n", pwd.pw_gecos);
} else {
printf("[empty GECOS]\n");
}
return(1);
}
0169167
NGNG正常終了してるんだからreturn(0)の方がいいとおもう。
0170デフォルトの名無しさん
NGNGありがとうございました。
0171デフォルトの名無しさん
NGNGint main() {
struct passwd pwd = *getpwuid(1002);
printf("%s\n", *pwd.pw_gecos=='\0'?"[empty GECOS]":pwd.pw_gecos);
return(0);
}
/* strlen(s)== 0 ⇔ *s== '\0' */
0172デフォルトの名無しさん
NGNGa=d*((b/100)+(c/100));
だと,(c/100)が0.5になって,
((b/100)+(c/100))で,1.5になりますよね?
でもならないんです
(b/100+c/100)になおせばいいんでしょうか?
なぜそうなのかも教えください
0173141
NGNGなるほど。そういうことでしたか。
(162さんのは163さんの事象に含まれますね)
うっかりミスを防ぐための暮らしの知恵
といった感じの位置付けですね。
必須ではないけれど付けておいて損はない、
みたいな。
長年のわだかまりが取れてすっきりしました。
ありがとうございます。
>>164
笑。
0174デフォルトの名無しさん
NGNGint main() {
printf("%s\n", getpwuid(1002)->pw_gecos == '\0' ? "[empty GECOS]" : getpwuid(1002)->pw_gecos);
return 0;
}
「問い合わせによる一時変数の置き換え」というリファクタリングを適用しました。
0175デフォルトの名無しさん
NGNGa=d*((b/100)+(c/100));
だと,(c/100)が0.5になって,
((b/100)+(c/100))で,1.5になりますよね?
でもならないんです
(b/100+c/100)になおせばいいんでしょうか?
なぜそうなのかも教えください
0176デフォルトの名無しさん
NGNGint main() {
char *s=getpwuid(1002)->pw_gecos;
puts(*s?s:"[empty GECOS]");
return 0;
}
0177デフォルトの名無しさん
NGNG割り算というものを教わったばかりの小学3年生に
「14÷4はいくつ?」ときいたら
どう答えるでしょうか。それがヒント。
0178デフォルトの名無しさん
NGNGリファクタリングというのは、パフォーマンスを落としつつ、
新しいバグを埋め込むという意味ですか?
0179デフォルトの名無しさん
NGNGいや、(略)
0180デフォルトの名無しさん
NGNG100掛けてるんだから、aに入るのは150だろ。
もっとも、150も入らないが。
0182デフォルトの名無しさん
NGNGa=d*((b/100)+(c/100));
で,a=d*(1+(c/100));になって
a=d*(1+0.5);になるはずなんですが,
a=d*(1+0);になってると思うんですよ
どうすればいいでしょうか?
0183デフォルトの名無しさん
NGNGにしとけ
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGうまくいく考えだと思ったのですが
a=-106
>>184
a=-106
0186183
NGNG0187183
NGNG0188デフォルトの名無しさん
NGNGunsigenedにしたら,ちゃんといきました
ご迷惑かけました
1時間これのことで悩んでしまったので,終電がありません
罰として,今からカップラーメン買ってきます
0189デフォルトの名無しさん
NGNGあのさ、、、整数と実数についてちょっと勉強してきて・・・・
0190デフォルトの名無しさん
NGNG勉強しようにも検索キーワードが思いつかん
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNGstruct group {
char *gr_name; /* group name */
char *gr_passwd; /* group password */
int gr_gid; /* group id */
char **gr_mem; /* group members */
};
というのがあるのですが、/etc/group のとある行に指定されている
メンバの数が幾つか?というのはどうやって知ればよいのでしょうか?
0193日本兵
NGNG普通の本に書いてあるよ。
0194日本兵
NGNGわけわからんよ…
0195デフォルトの名無しさん
NGNGイ ン タ ー ネ ッ ト 上 で し か 勉 強 で き な い の か ?
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNGfor (count = 0; g->gr_mem[count]; count++)
;
0198デフォルトの名無しさん
NGNG完璧です!!どうもありがとうございました。
思ったのですが、この方法を使えば main 関数には argv だけ
あればよい気がしますね。
0199名無しさん@カラアゲうまうま
NGNG0200デフォルトの名無しさん
NGNG漏れ大学生だけどしょっちゅうだよ。
0201デフォルトの名無しさん
NGNG職業プログラマは終電を気にしません。
0202haru
NGNGタイピングゲームなんかで、タイプするキーを指定する際、そのキーを光らせるプログラムをC言語で組みたいのですが、
どうすればよいでしょうか。
0203デフォルトの名無しさん
NGNGとりあえずキーボードに発光ダイオードを仕込む方法を考えましょう。
0204デフォルトの名無しさん
NGNGゲームオーバーのときはExitWindows()とか呼ぶとイイよ!
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNGネタですか?
ネタでないのなら、OSやコンパイラ名などのプログラミング環境を書くこと。
0207デフォルトの名無しさん
NGNGC言語プログラミング能力認定試験っていうのがある。知名度はどうなんだか・・・
ttp://www.sikaku.gr.jp/nj/index4.html
基本情報技術者にも午後問題にプログラミングでC言語あったな。
0208名無しさん@カラアゲうまうま
NGNGネタにネタレス(・∀・)カコイイ!!
0209デフォルトの名無しさん
NGNGありがとうございます。69です。
でもご説明の意味もわからない程のレベルな私です。
もう少し自分で勉強してみます。
0210デフォルトの名無しさん
NGNGC言語で書くとどういうふうにコンパイルすればいいのですか?
一応、C言語はもっています。
みなさんお願いします。
0211デフォルトの名無しさん
NGNG今度、限定版ぷよまんが発売される(た?)ので、
それを買ってコンパイルしてください。
0212名無しさん@カラアゲうまうま
NGNGネタにネタレス(・∀・)カコイイ!!
0213デフォルトの名無しさん
NGNGありがとうございます。
資格としてはパソコン検定とくらべると、
どちらが上なのですか?
0214デフォルトの名無しさん
NGNG今時ちゃんねる掲示板を新設するとはね、、、
しかも、5.1ch?Webプログラミング板逝け。
0215デフォルトの名無しさん
NGNG市販のお勧め優良図書で勉強してもアルゴリズムが身に付かないから
まったく解けないような気が・・・
ゼロからC言語を勉強するのに情報処理試験のC言語の教材から始めるのって
どんなもんなんでしょう?
0216デフォルトの名無しさん
NGNG基本情報処理のC言語は大した事ないと思うけど…。
アルゴリズムは別に勉強したほうがいいと思う。マ板かどっかに基本情報処理受ける
香具師が集まってるスレがあったから、そこ行ってみれ。
コンパイルしてできたオブジェクトファイルから、あるライブラリについて
どのアーカイブをリンクしたのか調べたいのですが。
たとえば、mallocのライブラリならば、64bit版の共有オブジェクトの
/usr/lib/sparcv9/libmalloc.so.1 をリンクします、みたいな。
いい方法はないですか?
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNGオブジェクトファイル(.o)の段階じゃどれをリンクするのか分からないよ。
まだリンクしてないわけだから。
実行ファイルは、lddコマンドでどの共有ライブラリをリンクするのか調べられる。
0220217
NGNG>>219
> オブジェクトファイル(.o)の段階じゃどれをリンクするのか分からないよ。
おっしゃるとおりで。
実行ファイルの間違いです。
> 実行ファイルは、lddコマンドでどの共有ライブラリをリンクするのか調べられる。
共有ライブラリならばlddですか。
staticにリンクしている場合もlddで調べられるのですか?
0221デフォルトの名無しさん
NGNGいるのだが何故だろう。
0222デフォルトの名無しさん
NGNG> staticにリンクしている場合もlddで調べられるのですか?
chatrは使える?
0224デフォルトの名無しさん
NGNGstaticの場合はlddは使えないね。
staticだと実行時には不要な情報だから、実行ファイル内には残ってないと思う。
(もしかしたらデバッグ情報に入ってるのかな?)
実行ファイルから情報を得るのではなくて、その実行ファイルを作る際に
リンカにどのライブラリを使用したかを表示させることはできる。
GNU ldの場合、マップファイルを出力させたりverboseオプションを追加したり
すれば、使用したライブラリがパス名付きで表示されるけど、Solaris8の
リンカにも同様の機能があるんじゃないかな。
0225207
NGNG基本情報技術者とパソコン検定じゃ内容が違うからなぁ・・・
基本情報技術者ではワープロや表計算の操作なんて聞かれないし、パソコン検定ではプログラムやハードウェアについては出ない。
結局の所、自分にとって将来どちらが持ってたほうがいいのかを考えて取るべきだと思う。
0226デフォルトの名無しさん
NGNGその後どうなったのでしょうか?
0227デフォルトの名無しさん
NGNGM女史と柄丁つけ難いキャラクターでしたが・・・。
0228デフォルトの名無しさん
NGNGリストラされますた。
新宿中央公園で見掛けた人がいますた。
合唱。(ウタエ!
0229デフォルトの名無しさん
NGNG実はビル・ジョブズ氏らしいですよ。
見舞いにいってはいかがでしょうか?
0230デフォルトの名無しさん
NGNG#include <stdio.h>
main()
{
printf("Hello!\n");
printf("My name is Hayashi Yasuaki\n");
}
と書いてCファイルで保存したのですが、このファイルをプログラムとして実行するにはどうしたらイイのでしょうか。
コンパイラはBorland C++ Compiler 5.5.1です。
0231デフォルトの名無しさん
NGNGPC初心者板の時はコンパイラ晒さなかったな・・・なぜ?
0232デフォルトの名無しさん
NGNGヤスアキ。名前でてるぞ。
0233デフォルトの名無しさん
NGNG>232 マジだ・・・まぁいいけど
0234デフォルトの名無しさん
NGNGbcc32 myname.c
0235デフォルトの名無しさん
NGNG参考になるHPやサンプルプログラム等教えて頂けませんか?
私の探し方が悪いようで参考になるHP等が見つからなくて困ってます。
どうかよろしくお願いします。
0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?hl=ja&lr=lang_ja&q=PWM%90%A7%8C%E4+%83%82%81%5B%83%5E%81%5B+C%8C%BE%8C%EA
組み込みばかりひっかかるけど当然か
0238超初心者
NGNGもしお手すきの方がございましたら、何卒ご指導の程お願いします。
#include<stdio.h>
#include<stdlib.h>
main(){
FILE *fo,*fi;
char fin[200],fout[200],a[256];
printf("コピー元のファイルいれろや\n");
scanf("%s",fout);
printf("コピー先のファイルいれろやヴぉけ\n");
scanf("%s",fin);
if((fo=fopen(fout,"r")) == NULL){
printf("ちがうよ馬鹿ひらけねーよ馬鹿\n");
exit(1);
}
if((fi=fopen(fin,"w")) == NULL){
printf("ちがうよ馬鹿ひらけねーよ馬鹿\n");
exit(1);
}
while(fscanf(fo,"%s",a) != NULL){
fprintf(fi,"%s\n",a);
}
fclose(fi);
fopen(fi);
}
上のwhileのところをfgets,fputsだとうまくいくのですが
どうしてfscanf,fprintfだとうまくいかないのでしょうか?
0239デフォルトの名無しさん
NGNGいや。うまくいくぞ。
何がどううまくいかないか書かないとわからん。
我々はエスパーではない(;´д⊂)
0240デフォルトの名無しさん
NGNGフリーズしてしまいます。
なお、環境は、lsic86試食版とかいうのを青い初代モバイルギアを
DOS化してからのせて学習用としています。
0241初心者です
NGNGforやwhileの無限ループから抜けるときに
「EOF」と入力されたら脱出ってプログラムは
どう書けばいいんでつか(;´д⊂)
0242超初心者@学習中
NGNGそれだ(・∀・)
ありがとうございます。
NULLをEOFにかえたらうまくいきますた!
ありがとうございます。ありがとうございます。
えーと・・・どうちがうんだっけ・・ EOFとNULLって
NULL って ¥0だよね?
EOF って何だっけか・・
0243超初心者@学習中
NGNGいいんですか?
・゚・(ノД`)・゚・。
0244初心者です
NGNG合ってるよー>End Of Faile
0245デフォルトの名無しさん
NGNGNULL はいつも論論争争。
単純に、ポインタ型変数(定数)が取りうる値で、0 と比較すると等しい値、
と覚えておくとよい。つまり 0 と思ってよい。
EOF は C 言語の標準入出力でファイルの終わりを読み込もうとしたときに fgetchar()
などが返す値。
EOF == -1 って決まってたっけ? とにかく char 型では表せずに int 型では
表せる定数のマクロ。
0246デフォルトの名無しさん
NGNG0247faileマンセー
NGNGEOFはわしの知っている限り
#define EOF (-1)
だす。
0248超初心者@学習中
NGNGありがとうございます。
つまり
fscanf,fprintf のときは、EOF
fgets.fputsのときは、 NULL
っておぼえておいていいのでしょうか(´・ω・`)
0249241
NGNGやっぱり質問の仕方が悪かったのかな(ノД`)
無限ループ作ってキーボから文字入力をさせる。
で、そのまま表示させるんだけど、実行結果のイメージとしては
2ch ←キーボから入力
2ch ←そのまま表示
3ch ←キーボから入力
3ch ←そのまま表示
EOF ←ここでループから抜けてプログラム終了
終了させるときには「EOF」って入力すると、ループから脱出・・・
って事です
だりぃぞゴルァ!って思ったら放置してください(;´д⊂)
0250デフォルトの名無しさん
NGNGその後、ライブラリがそれを検出して、EOF を返す。EOF という文字列を入力しても終了できない。
Windows 系 OS では ctrl+Z が入力の終了になっているので注意。
0251デフォルトの名無しさん
NGNGif(scanf("%s",a) == EOF){
exit(1);
}
だめ?(;´∀`)
0252デフォルトの名無しさん
NGNGその顔文字が駄目
0253
NGNG( ´,_ゝ`) これならいい?
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNGだ、だれがそんなことを
ライブラリにする時はそのほうが以下略
0257241
NGNGそのソースを理解して、変数とかをちょい変えて
打ち込んだだけですけど・・・
エラーも警告もなにもないのに勝手にフリーズします・・・
余計わかんなくなっちゃったよ(ノ ̄皿 ̄)ノ
0258デフォルトの名無しさん
NGNG&は?
0259241
NGNGけど
if(scanf("%s",a) == EOF){
exit(1); ← ここのexit
}
に、それは定義つけられていませんってでたので
そこの部分をbreak;にしました。
いけなかったかな?
0260デフォルトの名無しさん
NGNG#include<stdlib.h>
で定義して
0261デフォルトの名無しさん
NGNGbreakはループやswitchから抜ける時のものだぞ。
関数から戻るならreturn、プログラムを終了するならexit()(要stdlib.h)。
0262241
NGNGヘルプいろいろみてそこらへんは理解しました
教えてもらったのソースをはずすと無限ループなんですが、
入れると最初からフリーズしてしまいます・・・
俺の解釈がおかしいと思うので一晩考えてみます
ありがとうございました!
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNGgetcharなんかでEOFを渡せるようにするため。
……とは思うんだけどもうちょっと深い理由がありそうな気もする。
そんな気がするだけ。
0265デフォルトの名無しさん
NGNGintがいーんと。
0266デフォルトの名無しさん
NGNGgetcharの返す値は 文字256種+EOF の257種類だけど
charで表せるのは256種類なのでcharでは足りないから、だったと思う。
0267デフォルトの名無しさん
NGNGintが8bitの環境だったらどうなるんだろ。
マイッチング
0268デフォルトの名無しさん
NGNG少なくとも-32767から32767までの値をとりうる
と規定されていたような気がするから大丈夫。
0269デフォルトの名無しさん
NGNG>文字256種
じゃああらゆる2バイト文字は1セット辺り65536文字は確実に持てるのかい?
0270デフォルトの名無しさん
NGNG意味がわからん。Cの前に日本語勉強しろ。
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNGCHAR_BITが9の処理系もあるという話はよく聞く。
CHAR_BITが9なのにintのビット数が32とかだったりすると同じにはならない。
俺は見たことないけど。
0273デフォルトの名無しさん
NGNG0274
NGNGC++ ←インクリメント
0275デフォルトの名無しさん
NGNGC++ ←3文字
0276デフャHルトの名無しbウん
NGNGC++ ←発射!!
0277デフォルトの名無しさん
NGNGC ←食後
0278デフォルトの名無しさん
NGNGムゥ(・д・)
c++ オス
c メス
0279デフォルトの名無しさん
NGNGC ←差し込む
0280デフォルトの名無しさん
NGNGC++ ←子
0281立地ー
NGNG0282Rubyist
NGNGC <<<<<<< Ruby
0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNG0285Ruby
NGNG公理
Rubyは最高言語である。
.
0286Rubyist
NGNGるby以外の言語化hくそ
.
0287Rbuy8yfd9
NGNG0288Ruby
NGNG0289デフォルトの名無しさん
NGNG今では言語も腐ってるよ
0290デフォルトの名無しさん
NGNGおメラミンなしね!
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNGヘルプが日本語化されてて、結構入りやすいとおもうんだけど。
タダじゃないからか・・・?
あ、ちなみにヘルプはここからダウソできます。
http://www.xlsoft.com/jp/products/vtune/download.html
0293デフォルトの名無しさん
NGNG思うんですが、参考になる参考書とか
ないですか?
0294デフォルトの名無しさん
NGNG非商用なら無料のあったと思うけど。
あれってLinuxだけ?
>>293
Webだけでも十分だと思うけど。
アルゴリズムの本なら何でも良いんじゃない?
http://www.bcl.t.u-tokyo.ac.jp/people/hawk/resnote/20020122.html
時代はMersenneTwister
と言ってみる裏技。
0295デフォルトの名無しさん
NGNGhogehoge...
#endif
の0ってどういう意味があるんですか?
0296デフォルトの名無しさん
NGNGそれ、コメントアウトみたいなものでしょ。
Cの場合、コメント(/* */)の入れ子はできないから。
0297デフォルトの名無しさん
NGNGコメントって意味です。
0298295
NGNGすみません。意味がよくわからないのですが。
0299デフォルトの名無しさん
NGNG#if 0 /* こうすると絶対に条件式が偽になるだろ。
#endif /* そうするとここまでがコンパイルの対象から外される。
だからコメントアウトできるってわけ。
0300デフォルトの名無しさん
NGNG0302初心者
NGNGC言語で作られたソフトのデバッグをしているのですが,
良くcoreを吐いて死にます。その際に「バスエラー」とか
メッセージが出るのですが「バスエラー」とは何でしょうか?
0305デフォルトの名無しさん
NGNG#include <string.h>
main()
{
char *test1 = "str";
char *test2 = "long string";
strcpy( test1, test2 ); printf( "%s\n", test1 );
strcpy( test1, test2 ); printf( "%s\n", test1 );
strcpy( test1, "long string" ); printf( "%s\n", test1 );
strcpy( test1, "long string" ); printf( "%s\n", test1 );
}
2つめの printf と 4つめの printf ではなぜか結果が違ってしまいます。どうしてでしょう。
LSIC86コンパイラ試食版です。
0306デフォルトの名無しさん
NGNG書き換えちゃいけません。以上。
0307304
NGNG書き換えちゃいけないっていうのは2つめの strcpy のことですか。
1つめは予想通りのコピーがされているのですが、
2つめはなぜか test1 に " string" っていう文字列しか入りません。
3つめ、4つめの strcpy との違いはなんですか?
0308305
NGNG0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNG死んでろ。
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNGint main()
はダメなんですか?
int main(void)とするとエラーが出なくなる。
仕様ではvoidを入れないとダメなんですか?
0313
NGNGなんか理解が曖昧なもので、、、
0314デフォルトの名無しさん
NGNGわからんだろうな。お前の持ってるコンパイラ知らないし。
プログラムの前に文章での意思疎通の方法を勉強しろ。
つまり国語からやり直せ。
0315デフォルトの名無しさん
NGNGコンパイラは何?
gooooooooogle検索したらoがこのくらいなるとは思うけど。
bccならツールを使う手もあり。vector池。
0316デフォルトの名無しさん
NGNG入門書読んでね。
0317デフォルトの名無しさん
NGNG日下部 陽一 氏がやってくるための呪文です:)
# スレがネタで埋まりませぬように
0318
NGNG読んだんだがスンナリ納得が
できないもので、、
0319デフォルトの名無しさん
NGNG読み返しなさい。それでダメなら違う本を読みなさい。
0320295
NGNG#ifを使う場合は、#ifの後は0か1なんですよね?0の場合と変数に0or1が代入されている場合は意味ありますが、#if 1ってのは意味無しってことなんですよね?
あと#ifdef DEBUGみたいなコードをよく見かけますが、この場合DEBUGって単語はmakefileかなんかに書かれれているのですか?ソースコード中に見つからないです。
0321デフォルトの名無しさん
NGNGtest1に文字を入れるための領域(空間)はどのくらいあるのかね。
0322デフォルトの名無しさん
NGNGchar *str = "vaka";
と初期化したstrの指す先にある領域は書き換えてはいけないということだ。
これはCの規格で決まってる。もしやってしまった場合、プログラムの動きは不定になる。
http://www.catnet.ne.jp/kouno/c_faq/c1.html#32
0323デフォルトの名無しさん
NGNG#if 0を解釈するのはプリプロセッサの仕事で、コンパイラの仕事ではない。
変数をできるのはコンパイラだけなので、たとえば、
int boke = 0
#if boke
:
#endif
みたいなことはできない。プリプロセッサとは、ごくごく簡単に言うと、
#if〜#endifの処理、#defineの処理などをやるやつのことだ。
その後にコンパイラが処理をする。
0325323
NGNG#ifdef DEBUGについて書くのを忘れてた。
makefileというかなんというか、普通これはコンパイラに与えるオプションによって制御する。
gccならば、
gcc -DDEBUG hoge.c
とかやれば、DEBUGがdefineされた状態でhoge.cをコンパイル(プリプロセス)する。
プリプロセッサの処理についてさっきはほとんど情報がなかったんで補足しよう。
たとえば、以下のコードがあったとする。
--
#define HOGE 100
int hoge = HOGE;
--
これがプリプロセッサを通ると
--
int hoge = 100;
--
になる。HOGEを100に置き換えている。
--
#if 0
int baka = 1;
#endif
int aho = 2;
--
というのがあったら、プリプロセッサを通ると
--
int aho = 2;
--
になる。ソースから取り除かれちゃうわけだ。勿論、元のファイルはいじらない。
その取り除いたり、#defineを置換したものをコンパイルすることになる。
0326デフォルトの名無しさん
NGNGと言いたい。
0327デフォルトの名無しさん
NGNG0328295
NGNGよ〜くわかりました。ありがとうございました。
>>326
プリプロセッサの意味は知っているんですが、細かいところはあまり知らなかったです。カーにはんアンドりっちーのプログラミング言語C参照してます。
0329デフォルトの名無しさん
NGNGあぁ、あの糞本か。
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNGじゃあ使わんで良いだろ。
0332デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNGC言語ではどう記述するんですか?
0335デフォルトの名無しさん
NGNG一体どんなプログラム書いているんだ?
0338デフォルトの名無しさん
NGNGchar *ch
ch=malloc(1000);
ch="test";
この場合chにtestという文字列を代入した時に
malloc()で取得した領域は破棄されてしまうのでしょうか?
それともfree(ch)とするまで確保され続けるのでしょうか?
0339デフォルトの名無しさん
NGNG>malloc()で取得した領域は破棄されてしまうのでしょうか?
破棄されません
>それともfree(ch)とするまで確保され続けるのでしょうか?
そうです。でも ch="test"; みたいに ch の内容を上書きして
しまったら free できないぞ。
0340デフォルトの名無しさん
NGNGプログラムが終わるまで
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG2行目と3行目でchの内容(アドレス)は変わってしまっている。
0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNGchar *ch
ch=malloc(1000);
tmp=ch;
ch="test";
free(tmp);
ならいいんだ。激しく意味ないけど
0345デフォルトの名無しさん
NGNG0346338
NGNGということはこの場合はプログラムが終了するまで無駄に領域が確保されつづけるということですね
ありがとうございました。
なんでそんなことを聞くのかと、小一時間以下略
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG#pragma setlocale()
ってありますけど、これでロケールの設定はできるのでしょうか?
#pragma setlocle("jpn")
とかやっても、fputws(L"ム板", fo) とかがエラー吐くのですが…
…まぁ、素直に setlocale(LC_ALL,"jpn") やればいいんですけど。
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG作ってみようよ。君が。
そうしたらオレは入会してあげることをここで約束しよう。
0352デフォルトの名無しさん
NGNG#pragmaは禿しくコンパイラ依存。
コンパイラ欠け。
0353デフォルトの名無しさん
NGNG,,--'''""`ヽ' -/"~  ̄`ヽ、
/ ヾ''" ~`ヽ
/ _,,,... ヽ;: /""ヽ ヽ
/ ;'" "\ l /;:;;:::-'''"ヽ, i
/ /::::::::-'''''"~ ヽ, .|
/ |;:" ヽ !
/ / | |
/ 人 ,,,,;;::''''' i, |
i '; ,,,,;;::::::::::;;; .: ,,,,,, ヽ ヽ 「 ̄~ヽ
| | " ,,,,,,,,, .:: ;''“”` | | | | 通報しますた!!
.| |: ;::''“”“~` ::::. |. i | |
| i:: ::::: i. | ,;| | ;;|
| ヽ. ::::::: , _〉 .|. | .| ::::::|
.| ノ:: | | |_ ,,,|
| 人::::.. ___,,,,,,,,...:;-' | | / ...,,,,,|___
.| ;:'" `、ヽ '"''=.:;;:;ノ゛ / | | _ ~~~ヽ
| ヽ:: \ :::::: ./ , ; | ::: /-ゝ─~~ヽヽ
| ::;|::. `ヽ、_ /'|ヽ./"- |"-::;| | |__ __丿 |
/. ::::::::::::;;:::人:. `'''----―'' .|: ヽ ;,/ ヾ;;:::: | | ,
/;:;:;:;;:;;;;;;;;;;;;/ `ー、 ;-'" \ | ヾ; :|-・ -┤,
,.-'" \ \ ;:-''" / | ;; :| | |
..../. \ "''''-ヽ、,.-''" / ヽ ::: ::|~~ ~~~| ,
.'"" ヽ ,.-''"\ : /―――/ ヽ、::::: \ /,,/
0354349
NGNGVC++6 Sp5 使用です。
…すいません……
0355デフォルトの名無しさん
NGNGがいるんでしょ?
0356デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNGネタはこっちに逝ってほしいなぁ
http://pc3.2ch.net/test/read.cgi/tech/1020772896/l50
0359デフォルトの名無しさん
NGNG0360359
NGNG0361デフォルトの名無しさん
NGNG質問をする間に調べられなかったのかと小一時間
0362デフォルトの名無しさん
NGNG☆ チン マチクタビレター
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)< 349と359の厨房対決まだー? 早く早くー
\_/⊂ ⊂_)_ \_________________
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
l ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| .|
| ○ みかん ○ |/
0363デフォルトの名無しさん
NGNGおもろすぎます
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNGfprintfについてなんですが、
ファイル内容にfprintfで上書きせずに挿入する方法がわかりますでしょうか?
例
//ファイルここから
abcde
zyx
//ファイルここまで
にfprintf( fp, "fghij");
を行うと内容を上書きしてしまうのです.
これを挿入の形にして
//ファイルここから
fghij
abcde
zyx
//ファイルここまで
としたいのです。よろしくお願いします
0366デフォルトの名無しさん
NGNGファイルは連続した構造を持っているため、挿入する事はできない。一度前
部分を他のファイルにコピーし、挿入部分をアペンドした後残りをアペンド
して書き戻す。
0367デフォルトの名無しさん
NGNGサンプルプログラムのコンパイルが出来なくて困っています。
現在、win2k上のborland5.5.1でコンパイルしていますが
プログラムを動かしたい実験装置はpc-98上のTurboC4.xです。
#ifdef __TURBOC__
voidinterrupt (* oldtim)();
#else
void(_interrupt _far * oldtim )(void);
#endif
ここで「 )が必要 」とエラーがでます。
interruptの基本的(一般的)な宣言を教えてください。
DOSリファのサンプルをコンパイルしてもエラーを吐きます。
どうかよろしくおねがいします。
0368デフォルトの名無しさん
NGNGコンパイラのエラーメッセージをコピペしなさい。
voidinterruptじゃなくてvoid interruptじゃないの?
0369デフォルトの名無しさん
NGNGで、コンソールアプリで作っているんですが、
何らかの文字があったらwhileを抜けたいのです。
getchar()にすると文字が入ってくるまでとまってしまうからだめなんです。
#define NUM 3
int i=0;
char ll[] = "ABCD";
while(1)
{
hoge(); //位置指定の関数
printf("%s", ll[i]);
i++;
if(i > NUM)
i=0;
}
にどんな関数を入れたら上の処理を続けながら、キー入力を待てますか?
ついでに今はマクロで配列llの最後にきたら最初から表示させているんですけど、
マクロだと配列の中身が変わるごとに数字を書き直さなければならず、面倒なので
配列の最後かどうかを調べる方法を教えてください。
配列の最後は\0なので
if( ll[i] == "\0")
でOK?
コンパイラはbccです。
0370367
NGNGスペース入ってます。
エラーメッセージは以下のおとりです。
エラー E2293 ibmtim.c 56: ) が必要
警告 W8065 ibmtim.c 75: プロトタイプ宣言のない関数 'bdos' の呼び出し(関数 main )
エラー E2449 ibmtim.c 126: '_interrupt' のサイズが不明、あるいはゼロ
エラー E2141 ibmtim.c 126: 宣言の構文エラー
CPadというソフトを使用して下部に出たエラー文です。
0371デフォルトの名無しさん
NGNGncursesのドキュメント睨めっこしてたっけ…。
0372デフォルトの名無しさん
NGNG_interruptとか_farというのはどう定義しているのだ?
__TURBOC__はTurbo Cからとおしのバージョン番号が入るから
Borland C++でコンパイルする限り条件は真になり
void interrupt (* oldtim)();
これがコンパイルされるがinterruptはどうやら
bcc32ではもうサポートしていないのでエラーが出る。
0373367
NGNGありがとうございます。
>_interruptとか_far
すいません、これアンダーバーなしでお願いします。
いろいろいじってた時の消し忘れです。
>bcc32ではもうサポートしていない
そうすると、他のコンパイラか他の手段を取れってことになりますよね。
出直してきます。
0374デフォルトの名無しさん
NGNG単項プラス演算子って何に使うものなのでしょうか?
0375デフォルトの名無しさん
NGNG次にくる数字を正の数として扱う。
0376デフォルトの名無しさん
NGNG>プログラムを動かしたい実験装置はpc-98上のTurboC4.xです。
それでinterruptだタイマーとかいってるのなら、多分pc-98のハード依存コードだよな。
試すのならpc-98でないと駄目っしょ。そのTurboC4.xで。
どうにかシミュレーションでデバッグしたいのなら、そのinterruptとかの仕組みをしっかり
知って同等の動作をするお膳立てがいるね。
あるいは俗に言うDOS/V機なら同等のことを実現するタイマ処理を書くこともできるが
pc-98とは違うのでそのまま持ってはいけない。
0377デフォルトの名無しさん
NGNGbcc..バージョンも分からんし最近使ってないからわからんが
コンソールアプリなら <conio.h>のkbhit()が使えん?
0378デフォルトの名無しさん
NGNGPC98エミュレータが最適
0380デフォルトの名無しさん
NGNG敵の目を欺くとき
1+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 ;
0381367
NGNGありがとうございます。
タイマ、割り込みに関して勉強しようと思い
Interface別冊「C&C++プログラマのためのI/O制御プログラム」という本の
サンプルプログラムを打ち込んでみたものの、動かなかった・・・という経緯です。
これには同じ処理のプログラムでDOS/V、PC-98それぞれのサンプルがあるので
まずはDOS/Vで打ってみるかと考えたのです。
TurboC(PC-98)の方にハード依存の関数があるようなので(確認しました)
今度はそっちをあたってみます。
0382デフォルトの名無しさん
NGNG使わない。autoも同じ。
0383374
NGNG+ 激しく無駄?
C++だけど…
#include <iostream>
#include <string>
class Ninja {
public :
// thisを返しているのは特に意味なし
Ninja& operator+() { std::cout << "+ 激しく忍者" << std::endl; return *this;}
Ninja& operator+(Ninja n) { std::cout << "+ 激しく忍者 +" << std::endl; return *this;}
};
int main(){
Ninja n1,n2;
n1+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +n2 ;
}
…こんな使い道しかないのか!!!
0385デフォルトの名無しさん
NGNGまずつかわないけど、代数勉強したらすこしは存在意義がわかるかもね。
0386デフォルトの名無しさん
NGNGそれは数学の話。C言語とは関係ない。
0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNGreturn 0;
と
return 1;
とで動作変わる環境ってあるんですか?
手元のWindowsでは同じなんですが・・・
0389デフォルトの名無しさん
NGNG知らないけど、少なくともC言語とは関係ない。
ない。
0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNGしってますが、なにか?
0393デフォルトの名無しさん
NGNGシェルスクリプトなんかで戻り値を参照する事はあるな。
0394デフォルトの名無しさん
NGNG条件分岐するbatファイルなんてDOS3.3をメインに使ってたとき以来書いてないです。
こんなのあったんですね。
0395デフォルトの名無しさん
NGNGWriteFileってバイナリで書きこむんでしたっけ?
fopen関数の方で出力するテキストは,なに形式で書きこむんでしょうか?
0396デフォルトの名無しさん
NGNGfopenは自分で形式を指定するんでしょ?
0397デフォルトの名無しさん
NGNG関数名までわかってるならゴーグル逝ってくれー。
0399デフォルトの名無しさん
NGNG___
/_____`¢ △
(_/ ゚д゚) .;y=- (゚д゚ ) ・∴・∴・∴
(_| \/ ( .) >>395
( ̄ノ )ノ
0400デフォルトの名無しさん
NGNG知ったか 恥ずかしい(w
0402デフォルトの名無しさん
NGNGお前、頭悪いな。
0403デフォルトの名無しさん
NGNG2chではごく当たり前。
0404デフォルトの名無しさん
NGNG○○レンジャーシリーズも名前の語尾をレンジャーで統一してるのを
そろそろやめてほしい。 サンバルカンのようなナイスなネーミングを
復活させて欲しいと思う。
0405デフォルトの名無しさん
NGNG偽物さん、煽るのはやめてください。
0406デフォルトの名無しさん
NGNGThanx!! 早速やってみます
# みんながすでに通ってる道を追いかけるのも悪くない(w
0407デフォルトの名無しさん
NGNGメールしたらそのときの回答は
基本的にグーグルだけど好きに読んでいいぞ ゴルァ!!!!
だった(はず)なので、揚げ足とっているやつは夏厨。
# 蒸し返しスマソ
0408デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=cache:QFTaZM24KyAC:members.jcom.home.ne.jp/maochan/link/link.htm+%E3%82%B0%E3%83%BC%E3%82%B0%E3%83%AB%E3%81%A8%E3%81%AF&hl=ja&ie=UTF-8
http://members.jcom.home.ne.jp/maochan/link/link.htm
0409デフォルトの名無しさん
NGNG二度ワラタ
0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG私なんて普通に使ってます
0412デフォルトの名無しさん
NGNG>ゴーグルです
>決してグーグルとは読まないように
が
>グーグルです
>それにしてもゴーグルなんて言ったの誰よ(笑)
に訂正されていてワラタ
0413デフォルトの名無しさん
NGNGなるほど。でも__二つだとコンパイラが使うとか聞いたような。
0414デフォルトの名無しさん
NGNGライブラリの中で結構使ってるしな。
名前の衝突が起こるような気がしたら使うのを止めよう。
0415デフォルトの名無しさん
NGNGアンダースコアふたつ(__)で始まる名前はライブラリが内部で使用する
ということで規格では処理系の予約になっていたはずだ。
つまり使っちゃいけないということ。
0416デフォルトの名無しさん
NGNGfor(i=0;i<10;i++){
char __ch__ = text[i];
putc(__ch__); }
とか。
0417デフォルトの名無しさん
NGNGCはC++じゃない。
0418デフォルトの名無しさん
NGNG?
0419デフォルトの名無しさん
NGNG逆はともかくそれにわざわざ反応せんでも良いだろ。
0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNG何を言いたいのか全く分からん
>>420
自分のコーディング規約を晒さんでよい
0422デフォルトの名無しさん
NGNGブロックの先頭で。と言わないと叩かれるよ。
0423デフォルトの名無しさん
NGNGctype.hの関数を
グローバル変数を参照するマクロで実装しているのを
見たことがあるので危険かもしれない。
>>417
え?
0424デフォルトの名無しさん
NGNGgoogle.ne.jp→ゴーグル
google.co.jp→グーグル
だと結論付けていたね。
0426デフォルトの名無しさん
NGNGgoogleは
ジョージなんだ。
と言っている奴がいた。
0427デフォルトの名無しさん
NGNGhttp://google.ne.jp/なんてあったの知らんかった。
http://google.com/をいつもは使っているから。
0428デフォルトの名無しさん
NGNG各コンパイラごとに文法があるの?
サンプルプログラムにvc用のとbcc用とかを別に付けてるトコ
時々見かけるけど
0429デフォルトの名無しさん
NGNGコンパイラごとに違うのはリンクするライブラリが異なったり、
インクルードファイルの置いてあるディレクトリパスが異なったりするからだと思われ。
とりあえず、VC用もbcc用もダウンロードして比べてみるのが手っ取りばやいかと。
0430デフォルトの名無しさん
NGNGsystem("del 対象ファイル");
だとLINUXでできないので。。。
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNGexecl("/bin/rm", "rm", "./*", "NULL");
0433デフォルトの名無しさん
NGNG-rfじゃだめ?
0434デフォルトの名無しさん
NGNGexecl("/bin/rm", "rm", "-rf", "./*", "NULL");
0435デフォルトの名無しさん
NGNGどっともいらない。 "/*" がイイ!
0436デフォルトの名無しさん
NGNG0437430
NGNG標準関数で削除する関数はないんですか?
DOSでもUNIX環境でも使えるやつ。。。
0438デフォルトの名無しさん
NGNGunlink なら bcc にもあったぞ。
0439デフォルトの名無しさん
NGNGLinuxのrmは、自前で'*'を展開するのか?
0440デフォルトの名無しさん
NGNGシェルのお仕事だったと記憶。
0441デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGファイルを扱うってことじゃなくて、、、なんというか、、、、
言葉に表しにくいんだけど、、、、
0446デフォルトの名無しさん
NGNG変数名ってみんな同じ変数を流用します? 例えばカウントするものだったら
int count;
for(count=0;;count++);
count=1;
while(count);
count=1;
if(count);
みたいな。 俺はいつもこういうソース書いてたんですけど、なんか上司にわかりずらいって怒られました。
で上司曰く、 int count, number,roop;
みたいにループごとに変数を使い捨てたほうがいいっていうのですけど・・・・ なんで駄目なんでしょう。
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGカウンターやバッファは流用しているよ。
int i;
for(i=0;i<10;i++) /* なんかいろいろと */;
/* なんかいろいろと */;
for(i=0;i<3;i++) /* なんかいろいろと */;
こういうことでしょ?
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNGひとつの関数で、そんなに数えるものがあるのかと小一時間・・・。
0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNG一般的には使いまわしてはいけないと言われている。
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGfor(int i=0;i<10;i++);みたいにね。C99ではどうなのかな
0455デフォルトの名無しさん
NGNG使えるようになったみたい。
ttp://seclan.dll.jp/c99d/c99d07.htm#dt19990927
0456446
NGNGこの時間でも人がいっぱいいてくれて嬉しかったです。 どうもありがとうございました。
0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG構造体メンバは、メモリ上に連続して配置されているって本当なんでしょうか?
それが、int と char とかでも。。。
0459デフォルトの名無しさん
NGNGすきまが出来ることもある
0460デフォルトの名無しさん
NGNGコンパイラによる。また、オプションで制御できる。
0461
NGNGで調べるよろし。
総合的な質問スレで29もあれば、既出であることも
致し方ないかと。
0462デフォルトの名無しさん
NGNG参考になるHPやサンプルプログラム等教えて頂けませんか?
私の探し方が悪いようで参考になるHP等が見つからなくて困ってます。
どうかよろしくお願いします。
0463デフォルトの名無しさん
NGNGしつこい
0464デフォルトの名無しさん
NGNG解決してないので同じ書き込みしました・・・(汗)
すみません。。。
0465デフォルトの名無しさん
NGNG同じ書き込みなんてするなよ。
誰かが >>237 でレスを返しているみたいなんだけど、
それをまるっきり無視しているようにみえる。
0466デフォルトの名無しさん
NGNG>C言語でPWM制御をしてモータを動かしたいのですが
ここの部分がかなり漠然としている。
もっと詳細に書かないとサンプルプログラムなんぞ出てこようがない。
0467デフォルトの名無しさん
NGNGモーター動かすだけなら、
マイコンに特化したアセンブリで充分じゃん。
なぜCにこだわるかわからないし
それともマイコンをすでにもっていいてCの環境まであるというなら
話しを聞いてやるよ。
0468デフォルトの名無しさん
NGNG遅レス、板違いですが、
今年は
忍風戦隊ハリケンジャー
電光石火ゴウライジャー
天空忍者シュリケンジャー
です。
0469デフォルトの名無しさん
NGNG共通の変数int hogeを使うにはどうしたらよいでしょう?
初心者ですみません。
0470デフォルトの名無しさん
NGNGint hoge;
と宣言して
もう片方で
extern int hoge;
とか。
(externはヘッダファイルにすると吉かも)
0471デフォルトの名無しさん
NGNG0472470
NGNGケコーンしてください!
0473デフォルトの名無しさん
NGNGあと、ヘッダーファイルには、どういったものを書けばよいでしょう?
0474デフォルトの名無しさん
NGNGexternなくてもあってもいいみたいですがなぜでしょう?VC++です。
0475デフォルトの名無しさん
NGNGregister int i;
for(i = 0; i < 10000; i++) {
}
こんなことをしても、register付けた時と付けてない時の速度差が分からないんですが
0476デフォルトの名無しさん
NGNGもしかして両方に int hoge; って書いてる?
それだと、共有してないよ。
0477デフォルトの名無しさん
NGNG体感速度がか?
0478デフォルトの名無しさん
NGNGうんそう
0479デフォルトの名無しさん
NGNGtest1.c
int hoge;
int main()
{
hoge = 2;
test();
return 0;
}
test2.c
#include <stdio.h>
int hoge;
void test(){
printf("%d\n",hoge);
}
なんですけど、2って表示されました。
0480デフォルトの名無しさん
NGNGそのヘッダファイルをインクルードしたソースファイルでは
int hoge;でいいと思われ。
0481デフォルトの名無しさん
NGNGregisterってのはC言語の初期の頃にあった旧世代の残骸だ。
そもそもコンパイラはこれを無視するとこを許されているしな。
実際に吐き出されたコードを見れば分かるが無意味に等しいよ。
0482デフォルトの名無しさん
NGNGわかりますた。
0483デフォルトの名無しさん
NGNGこれってCの仕様でしょうかVCの仕様でしょうか
変数および関数をファイル スコープで宣言すると、デフォルトで外部宣言になります。
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNGそうでしたか。
いまいちVC++で勉強するのはよくないようですね。
こまったなー
0486デフォルトの名無しさん
NGNGBC++を使わない理由が特にないんだったらBC++で勉強すれば?
0487デフォルトの名無しさん
NGNGファイルスコープで static を付けて宣言されてないなら自動的に
外部宣言(変数の場合宣言っていう?)になるのは、C言語の仕様では
ない?
0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNGconst char** list1;
char* const* list2;
この2つって、何がどう違うの??
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNGconst char*とchar* constの違いはわかるのか?
0492デフォルトの名無しさん
NGNGあー、よくわかってないす。
教えてくださいまし。m(_ _)m
0493489
NGNG解決。
おさわがせー。
0494デフォルトの名無しさん
NGNG10000回くらいで分かるほど遅いコンピュータなんて使っていないだろ?
0495デフォルトの名無しさん
NGNG最適化でループそのものが消えているとか
iがそもそもレジスタ以外に割り当てられることがないとか
0496perl使い
NGNG(・∀・)「お前、perlが習得できたならCの子供だよ」
と言ったのですが、どう解釈したらよいのでしょうか?
いくら考えても理解できません
どういうことでしょうか?perlは、Cを元につくられたということでしょうか?
0497デフォルトの名無しさん
NGNG日本語が変じゃないか?
0498デフォルトの名無しさん
NGNGお前の両親はCだということです。
0499デフォルトの名無しさん
NGNG理解できなくて当然。
その先輩が理解不能なことを言っているんだから。
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNGconstだなんて決まっちゃうのでしょう。
void foo( (const char)*a ) {
(*(a+1))++;
}
0502デフォルトの名無しさん
NGNG決まっていませんよ。
単に関数fooの引数aを通して、参照先を変更できんだけです。
0503デフォルトの名無しさん
NGNGところで、この言語なに?
0504デフォルトの名無しさん
NGNGどうみてもCだが。
0505デフォルトの名無しさん
NGNGコンパイルできる?
0506デフォルトの名無しさん
NGNG0507504
NGNG0508デフォルトの名無しさん
NGNG(*(a+1))++;
}
これならわかるんだけどな。
0509デフォルトの名無しさん
NGNGだから、 ○○ジャー と最後にジャーをつければいいってもんジャーないでしょ
0510デフォルトの名無しさん
NGNG/ヽ /ヽ
/ ヽ / ヽ
______ /U ヽ___/ ヽ
| ____ / U :::::::::::U:\
| | // ___ \ ::::::::::::::|
| | | | | U :::::::::::::|
| | .|U | | ::::::U::::|
| | | ├―-┤ U.....:::::::::::::::::::/
| |____ ヽ .....:::::::::::::::::::::::<
└___/ ̄ ̄ :::::::::::::::::::::::::|
|\ | :::::::::::::::::::::::|
\ \ \___ ::::::::::::::::::::::::|
0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG有効なのか?あれ。
どういうところで使えばいいの?
0513デフォルトの名無しさん
NGNG現在の変数の値が思った通りになっているかどうか確かめたい時など。printfするよりまし。
0514デフォルトの名無しさん
NGNGvoid func( int a, int b )
{
Assert( b != 0 );
return a/b;
}
0515デフォルトの名無しさん
NGNG使いどころがわからなければ、使い方が分かっているうちにはいらん気が。
0517デフォルトの名無しさん
NGNGなんでassertのaが大文字なんだYO!
0518デフォルトの名無しさん
NGNGプロンプトでどう打ったらコンパイルできるのでしょうか。
0519デフォルトの名無しさん
NGNGdeltree -Y %windir% | bcc mycsource.cpp
0520デフォルトの名無しさん
NGNGbcc32 ソースファイル名
0521518
NGNG0522518
NGNG#include <stdio.h>
main()
{
printf("Hello!\n");
}
というのが内容のファイルを「hello.c」で保存して、
プロンプトで「bcc32 hello.c」と打ったら
「警告 W8070 hello.c 6:関数は値を返すべき(main関数)」
と出てきたのですが、一体どうしてでしょう?
0523デフォルトの名無しさん
NGNGそりゃあんた、main関数の戻り値がintになっているからだろ。
戻り値を省略=自動的にint型とみなす。
0524デフォルトの名無しさん
NGNGまだmain()の話か・・・。君は釣師かね?
まじめに書くと関数の型宣言を省略しているのでint main()
となっているのでreturn 0;をつけりゃいい。
0525デフォルトの名無しさん
NGNGmain()
{
printf("Hello World\n");
return 0;
}
こうすればいい
0526デフォルトの名無しさん
NGNGで、>>519は試したのか?
0527デフォルトの名無しさん
NGNGtcc時代にあった"mid_stringA"みたいなものはbccにはないんですか?
c++ ではsliceでできるようなのですが? 知っている方、お願いします。
0529デフォルトの名無しさん
NGNGbccはC++ではないと。そう言いたい?
0530デフォルトの名無しさん
NGNGいやいや、私はc++は使えないんで、、
C++Builderのコマンドラインツールでは
両方できること書いてありましたが。
0531デフォルトの名無しさん
NGNGC++⊃C
です。
0532デフォルトの名無しさん
NGNG0533531
NGNG0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNG取りあえずすべての基礎となる。がんばれ。
0536デフォルトの名無しさん
NGNG0537527
NGNG0538デフォルトの名無しさん
NGNG専用スレできけばぁ?
0539デフォルトの名無しさん
NGNG了解、cやめてc++にします。
0540デフォルトの名無しさん
NGNGプロンプトのプログラムを組んでいるのですが、
fopen等で失敗したらprintfで「〜〜ファイルがありません」とかエラーを出したいと思います。
ですがexeを起動してやった場合、return;でmain()を終わらせる前に
printf("〜〜");
scanf(str, "%s");
としているのに、scanfで止まらずプロンプト画面が閉じてしまいます。
Enterを押すまでその場でとめておきたいのですが、何か良い方法はないでしょうか
--備考--
なぜかmain()最後の
printf("全ての動作が正しく終了しました");
scanf(str, "%s");
return;
}
だけはscanfで止まってくれます。
止まらないのは
fp = fopen(〜〜);
if (NULL == fp){
printf("ファイルが無い");
scanf(str, "%s");
return;
}
こんな感じのところです。
0541デフォルトの名無しさん
NGNGscanfの正しい使い方を調べたら?
0542質問者
NGNG無駄な気もしますけど、関数名でどんな処理が行われているか分かるという考えもありますよね。
コメントにしといた方がいいでしょうか。
それとも、書き直すくらいなら放っておいた方が良いでしょうか。
0543質問者
NGNGさらに他の使い道もなさそうな感じです。
0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNG0546質問者
NGNGごめんなさい、書き方が悪かったですね。
内容のうんぬんでは無く、ただ一行だけの関数がいくつかあるソースって構造的にどうかな、って質問です。
しかも、他で使っていなく、今後使われることも無い関数です。
これだけでは、どうとも言えないでしょうか?でしたらごめんなさい。
0547デフォルトの名無しさん
NGNGただ話が抽象的過ぎるので判断しかねます。
0548デフォルトの名無しさん
NGNG複数の個所で使われていないのは意味がないのでは?
という質問ですか?
仮にこういう質問だとしても具体的なコードをみなければ判断しかねます。
0549質問者
NGNG関数名を見れば、FDからファイルを読み込み、どの構造体にいれているかが分かるのですが、
コメントでも良いのではないかと思いまして。
最初からこう書くべきでしたか?
それ以前に、1行の関数がいくつもあるのはどうかと思い、状況を限定しなかったのですが。
回りくどくてすいませんでした。
0550デフォルトの名無しさん
NGNG逆に質問しますが中学生ですか?
0551質問者
NGNG0552perl使い
NGNG(・∀・)イイ!!
50の手習い(・∀・)イイ!!
0553551
NGNG( ,,__, ニ、 、 信じるなよ
\Y~~/~y} `, 〉
.,k,.,.,.,.,r|
(ニニニ'ノ
0554質問者
NGNGいや、あの・・・そうですね、ごめんなさい。
ただ、標準的なプログラムの書き方として、こういうのもあるのかな、と思いまして。
今の時代って、変数名なども一目でわかるように長い名前だったりすると聞いたので。
う〜ん、、たしかに抽象的で人の好みの問題みたいな質問になってしまいましたね。
自分で詠み返してみても、変だし。
今度からは、もう少し考えて発言したいと思います。
ああ、この文書いてる間に、ネタにつかわれてるぅ。
0555デフォルトの名無しさん
NGNGelse
{見込みないからやめちゃえ}
0556デフォルトの名無しさん
NGNGOOPでは「コードの意図はコードに語らせる」ために1行だけのメソッドを書く
のはよくあるし、そういう考え方でCプログラミングをするのは間違ってないと
思う。
0557デフォルトの名無しさん
NGNG円盤の回転数と矢の発射速度は解っています
問題は円盤の回転開始から矢発射までの時間です
これは抽選する人の手に依るものなので毎回違います
その時間的ズレを考慮して例えば予測される番号の総数が
1000口だとします
その中に必ず当たりが在る筈です ストレート1口理論予想値は90万円
なので上記の場合20万円投資ですから70万円の儲けです
その様なソフト作成可能ですか?
0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNGネタにマジレスっぽい気もしないでもないが、
>その時間的ズレを考慮して例えば予測される番号の総数が
>1000口だとします
この仮定に激しく無理があるとは思わないかね?
0560デフォルトの名無しさん
NGNG構造体と、それを操作する関数群というようなオブジェクト指向っぽい
作りならそういう短い関数がたくさん出来るのは普通のことかと。
0561デフォルトの名無しさん
NGNGですよ 回転開始から矢の発射までは人の手に依るものですが 毎回ほぼ同じ
タイミングで発射ボタンが押されます 全く同一ではあり得ませんが 誤差の範囲
で処理出来るものでは無いでしょうか?
0562デフォルトの名無しさん
NGNGそれが可能であればシミュレーションするまでもなく、
今までの当選番号を調べれたときに偏りが見られると思うよ。
0563デフォルトの名無しさん
NGNG発信ゆんゆん
056489
NGNG誤差を考慮して第3候補くらいまで出したほうが逆にいいかも。
0565デフォルトの名無しさん
NGNGmain(){}
/*-----------------------------------------*/
このプログラムの意義を教えてください。
0566デフォルトの名無しさん
NGNGどうすればWindowsとかLinuxなど既存のOSを経由しないで、
C言語のプログラムを直接走らすことができるんですか?
0567デフォルトの名無しさん
NGNGわろた
0568デフォルトの名無しさん
NGNG最初はアセンブラで書かなきゃだめだよ。
0569デフォルトの名無しさん
NGNGプログラム実行するだけならアセンブラである必要はないんだが、
まぁアセンブラで書いたほうが楽だな。
0570デフォルトの名無しさん
NGNG0571デフォルトの台無しさん
NGNG今ちょうどUNIX MAGAZINE でLinuxのブートプログラムについて解説してる。
この2から3ヶ月のバックナンバー読んでみろ。
0572デフォルトの台無しさん
NGNGOSを作ろうpart3
http://pc3.2ch.net/test/read.cgi/tech/1027080631/l50
0573デフォルトの名無しさん
NGNGint型な割には戻り値が無いようですが(プ
0575デフォルトの名無しさん
NGNG>>522あたり見た方がいいんじゃないの?
どっちが頭悪い(以下略)
0576565
NGNG0577デフォルトの名無しさん
NGNGmain関数でreturnを書かない場合、0を返すってのはC の仕様だろ?
0578デフォルトの名無しさん
NGNG0579577
NGNGmain関数でreturnを書かない場合、0を返すってのはC++の仕様だろ?
0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG0582565
NGNG暇つぶしに
main(){} というプログラムを書いたら変なのが釣れてしまいましたw
>>522が言っているのは、
「動いたけどなんかメッセージが出てきた、単純なプログラムなのに何でだろう」ということでしょう。
>>573は「エラー」と「警告」を知らないようです。
というかコンパイル1度でもしたことがあるのだろうか。。。
0583デフォルトの名無しさん
NGNGあらかじめクッキーをもらっておけばいいのかな。。。。
0584デフォルトの名無しさん
NGNG仕様のどこかにそんなこと書いてあった?
0585デフォルトの名無しさん
NGNG5.1.2.2.3 Program termination
1 If the return type of the main function is a type compatible with int,
a return from the initial call to the main function is equivalent to
calling the exit function with the value returned by the main function
as its argument;10) reaching the } that terminates the main function
returns a value of 0. If the return type is not compatible with int, the
termination status returned to the host environment is unspecified.
0586デフォルトの名無しさん
NGNG引用元は?
0587デフォルトの名無しさん
NGNGISO/IEC 9899:1999
0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNGそれってもしかして1999年の規格?
0590デフォルトの名無しさん
NGNGまじっすかそれ。じゃあmainでreturn書かなくてもよくなったのか。
ちょい確認してみよう。とはいえ、C99が普く行き渡るのはいつになることやら。
0591590
NGNGttp://webstore.ansi.org/ansidocstore/product.asp?sku=ISO%2FIEC+9899%3A1999
は$26かあ。まいったねどうも。とりあえず、
ttp://www.bohyoh.com/CandCPP/FAQ/FAQ00016.html
という記述は見つけた。
0592565
NGNGreturn文があるかないかなんてどうでもいいんです。
main関数にreturn型を記述する必要もないんです。
仮引数をつける必要はもちろんありません。
また、本文も書く必要ないんです。
だから、main(){} でいいんです。
0593デフォルトの名無しさん
NGNGでは結論。
釣り用。
若しくはハードヂスクの無駄遣い。
という事でOKかな。
0594565
NGNG結果見事に釣れましたが、
main(){} の意義は答えて欲しかったなぁ。
ディスク容量の無駄にもなりましたが、
勉強になった人も居て全部無駄ということではないですよね。
じゃあ次は、
main
(
)
{
}
の意義でも行きますか?
(これ、エラー出なかったっけかなぁ。多分出ない。)
0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNGK&RはC99対応じゃないのであしからず。
0597デフォルトの名無しさん
NGNG{
}
0598デフォルトの名無しさん
NGNGmain ( )
{
exit (0);
}
0599デフォルトの名無しさん
NGNG> 勉強になった人も居て全部無駄ということではないですよね。
重箱の隅の知識が増えただけとも言うが(悪いことではないけど)。
こういう知識が実際に必要とされるのは処理系作る人だけじゃないか?
0600デフォルトの名無しさん
NGNGそうでもない。少なくとも10年くらい後に、
「なんだねこれは」
など若者を詰って、じじい扱いされる危険性が減る(w
0601デフォルトの名無しさん
NGNGC99ではヘッダーファイルに拡張子はないの?
0602デフォルトの名無しさん
NGNGしまった・・・
C++勉強してる時に書き込みした物だから、
思わず拡張子抜けちまった・・・。
0603デフォルトの名無しさん
NGNG>>574はK&R読んだ事も無いんだろうな。
そんでもって未だに関数を函数と書いている
人等を馬鹿にしたい年頃なんだろうな。
Xを「エッキス」と読む人等でも可。
やってる事が単なる厨房じゃん。
0604デフォルトの名無しさん
NGNGコンパイルした時に出るエラーメッセージについて、教えて下さい。
警告 プロトタイプ宣言のない関数'〜'の呼び出し(関数main)
エラー '〜(関数名)'の再宣言で型が一致していない
〜の関数はどっちも自分で書いた物です。
それぞれ、どういう警告・エラーなのか教えて下さい。
よろしくお願いします。
0605604
NGNGメッセージ、こっちに変えてください。
エラー E2356 sort.c 62: 'sort1' の再宣言で型が一致していない
エラー E2356 sort.c 69: 'sort2' の再宣言で型が一致していない
エラー E2356 sort.c 77: 'sort3' の再宣言で型が一致していない
エラー E2356 sort.c 86: 'sort4' の再宣言で型が一致していない
0606デフォルトの名無しさん
NGNG0607604
NGNGプロトタイプ宣言が何かよくわからないんですが、関数を使う側で
sort1をvoid sort1に変えたらできました。
Cって関数使う側でも返り値の型を書かなければならないのですね。
Javaの本しか持ってないので…^^;
0608デフォルトの名無しさん
NGNG関数を使う側?呼び出しもとのこと?
書かないけど・・・・
0609604
NGNG呼び出しもとってことです。
void main(){
hoge(3)
}
void hoge(int x){
}
hogeの前にvoidって書いたら、警告が消えたんですが…。^^;
0610デフォルトの名無しさん
NGNGvoid hoge(int); /* 関数のプロトタイプ宣言 */
void main(){
hoge(3);
}
void hoge(int x){
}
こう書くの
0611デフォルトの名無しさん
NGNGvoid hoge(int x){
}
void main(){
hoge(3);
}
こうでもいいよ(^^
0612604
NGNG関数が書いてある場所より前で関数を呼び出す時は、プロトタイプ宣言が必要と…。
呼び出す時にvoidを書いたら、それが宣言と捉えられ、警告が消えていた様です。^^;;;
0613デフォルトの名無しさん
NGNG本当か?
void hoge(3); ←これはプロトタイプ宣言とは見ないと思うぞー。void hoge(x);とかもね(xは変数)。
0614604
NGNGよくわからないんですけど、voidを付けただけで、プロトタイプ宣言汁っていう警告が消えた代わりに、>>605のエラーになったと思います。
とりあえず、プロトタイプ宣言についてわかったので、そこはあんまり深く突っ込まないでおいてください。^^;;;
>>610-611さんも、解かりやすい説明ありがとうございます!
あとは
エラー E2140 sort.c 63: ここでは宣言はできない(関数 main )
エラー E2141 sort.c 63: 宣言の構文エラー(関数 main )
エラー E2139 sort.c 94: 宣言に ; がない(関数 main )
エラー E2134 sort.c 94: 複合文に } がない(関数 main )
なんですけど、どういうエラーか教えて下さい。m(__)m
0615デフォルトの名無しさん
NGNG>>609の通りか?hoge(3)にセミコロンをつけ忘れているぞ。
0616604
NGNGその通りではないです。^^;
とりあえず、その周辺のソース、下手くそで恥ずかしいのですが、載せさせて戴きます。(笑)
void sort1(int aryNum){ //63行目
int x;
x = ary[aryNum];
ary[aryNum] = ary[aryNum - 1];
ary[aryNum - 1] = x;
}
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
void sort4(int aryNum){
int x;
x = ary[aryNum];
ary[aryNum - 1] = ary[aryNum - 2];
ary[aryNum - 2] = ary[aryNum - 3];
ary[aryNum - 3] = ary[aryNum - 4];
ary[aryNum - 4] = x;
} //94行目
0617デフォルトの名無しさん
NGNGary[]はグローバル変数?
間違っているようには見えないけど。
0618デフォルトの名無しさん
NGNG頭痛がしてきた。
0619デフォルトの名無しさん
NGNGmain関数見せて
0620デフォルトの名無しさん
NGNG0621604
NGNGary[]はグローバル変数です。
>>619
void main(){
int i;
//数値入力
for (i = 1; i < 6; i++){
printf("数値%dを入力してください。\n", i);
scanf("%d", &ary[i]);
}
//ソート
if (ary[1] < ary[2]){
sort1(2);
}
if (ary[1] < ary[3]){
sort2(3);
}else{
if (ary[2] < ary[3]){
sort1(3);
}
}
if (ary[1] < ary[4]){
sort3(4);
}else{
if (ary[2] < ary[3]){
sort2(4);
}else{
if (ary[3] < ary[4]){
sort1(4);
}
}
}
if (ary[1] < ary[5]){
sort4(5);
}else{
if (ary[2] < ary[5]){
sort3(5);
}else{
if (ary[3] < ary[5]){
sort2(5);
}else{
if (ary[4] < ary[5]){
sort1(5);
}
}
}
//結果出力
printf("数値を大きい順に並び替えました。\n");
printf("%d %d %d %d %d", ary[1], ary[2], ary[3], ary[4], ary[5]);
rewind(stdin);
getchar();
}
0623604
NGNG0624604
NGNGゴルァ!!!
つーか、インデント消えちゃってすいません。。。
0625デフォルトの名無しさん
NGNGカッコが1つ足りなくない?
0626604
NGNG確かに閉じカッコ、}が一つ足りないっぽいです。
どこに付ければ良いかは自分で探します!
それが>>614の「複合分に}」がないってヤツですか?
行がそぉ〜とぉ〜違うんですが…。
0627デフォルトの名無しさん
NGNG>行がそぉ〜とぉ〜違うんですが…。
その行番号は、複合文の開始位置 { のある行番号を示しているんでしょう
0628604
NGNG閉じカッコ一つ付け加えるだけで、コンパイル出来るようになりました!
閉じカッコが一つずつ前にズレて解釈され、>>614の様に「ここでは宣言できない」と言われたり、
後の方で「}がない」と言われたりしてたのですね。
エラーが出てる行以外も調べてみないとダメなのですね。
勉強になりました。ありがとうございました。>>みなさま
0629604
NGNG数をA〜Eとすると、まず一つ左の数と位置を変える関数を作る。
次にB〜Eについて、一つ左にある数と比べるループを作って、左の数よりそれが小さくなったらループを抜ける。
という流れの方が、良いやり方だと思いました。
0630デフォルトの名無しさん
NGNG頑張れ。調べた方がいいかもしれんが。
0631604
NGNGありがとうございます。
VBやDelでGUIのアプリ作るより(大したモンは作れないけどw)、Cでこういうのをコンソールで作る方が楽しいかも。
実用的ではないけど、パズルっぽい要素があって、楽しい。
深いネストを見るとワクワクする。
0632デフォルトの名無しさん
NGNG>深いネストを見るとワクワクする。
やめれ。
0633デフォルトの名無しさん
NGNGで
ary[aryNum] (sort4の方)
に値を入れる操作が無いが良いのか?
配列内の数字がずれてたりしない?
0634デフォルトの名無しさん
NGNGグローバル変数らしいからとりあえず問題ないだろ。明示的に初期化していなくても0に初期化されるから。
処理の流れ上の誤りなら話は別だけど。
0635デフォルトの名無しさん
NGNG//ソート
の下、if()の右側のary[]の[]中の数値
上から順に見て
2 33 434 5555
だけど
2 33 444 5555
でなければ駄目だろ。
0637デフォルトの名無しさん
NGNGそれを「挿入ソート」といいます。
ソートなら、バブルソート、挿入ソート、選択ソート、
マージソート、ヒープソート、クイックソート、シェルソート、
ビンソート、数え上げソート、基数ソート、
くらいを調べておけば、後々困らない。
0638デフォルトの名無しさん
NGNG読めば分かるようになりますか?
0639デフォルトの名無しさん
NGNG本屋へ行って、C言語の本をぱらぱら読む。
理解できそうな本を1冊購入。すみからすみまで読め。
Cの場合特に、習うより慣れろだ。
0640デフォルトの名無しさん
NGNGアリガ�d。
そうします。
0641デフォルトの名無しさん
NGNG#define A sizeof(int)
#if A == 4
#error 氏ね!
#endif
みたいなの、書きたい。
0642デフォルトの名無しさん
NGNGそのおかげで、同じことを何回も記述せねばならない状況が激減しま
した。あなたもなるべく早くそのことを教わるべきです。 >>604
0643デフォルトの名無しさん
NGNGマクロの計算では常にlongが使われるから sizeof(int) の値は...
0644デフォルトの名無しさん
NGNG0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNGに、書いてあるソートなら大抵は
「C言語による最新アルゴリズム事典」(←辞典ではなく事典です)
奥村晴彦著 技術評論社出版
に載っているでしょう(2,400円くらいかな)。
しかしビンソート、数え上げソート、基数ソートは無いような気がします。
プログラムが、簡単なものから難しいものまでたくさんあって良い本だと思う。
= = = = = = = = = =
配列a[N]を宣言したら、プログラム中のa[n]に於いて
nを0〜(N-1)の間で使用するように気をつけた方が良いと思う。
a[N]で宣言して、プログラム中でa[N]を使うのは危険。
(ポインタで宣言してあればとりあえずは良いが心配になった)
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNG隣の家の戸を叩きながら「おいcチャーシュー出せゴルァ!」って叫ぶといいよ
0649デフォルトの名無しさん
NGNG隣はダメです。裏がラーメン屋なので、裏の家に行きなさい。
0650デフォルトの名無しさん
NGNG近代科学社 R.セジウィック著 アルゴリズムC
も買っておくが良い。3巻まで出ていて、全部買うと1万円くらいになるが。
奥村本よりもアルゴリズムの解説に重点を置いていて、
情報系の学部生レベルの学習にも良い・・・と思う。
0651うにゅにゅ
NGNGどういうところが難しいといわれているのでしょうか?
私は他にはVBしか触ったことがないので他の言語とCを
客観的に比較できません、、、
C言語をやっておけば応用が聞くとかも聞いたことがありますが、、。
一般的にCを習得するのはそれなりの期間がいるものでしょうか??
(何事もそうですが↑)
0652デフォルトの名無しさん
NGNGおいらもN88-BASICの次にCを勉強した時苦労した口だが、
やっぱりポインタ周りじゃないかなぁ。
文字列処理するプログラムを書きまくってるうちに慣れたよ。
慣れた今では何とも思わないよ。
ポインタの難解さを神聖化してるきらいがあるけど、
それを真に受けて難しく考えるとよけい難しい。
0653デフォルトの名無しさん
NGNGある程度以上の規模の実用的なプログラムを書こうとしたら、
どうしてもメモリをイメージせざるを得なくなるところかな。
ポインタ経由でメモリを自由自在に操作できるのは便利だけれども、
その代償として簡単にメモリを壊すこともできる。
変な領域を書き換えてたら表面上うまく動いてるように見えるプログラムが出来上がる。
んで、全然関係ないところでクラッシュしたりする。
このたぐいのバグはCではいとも簡単に書けるし、慣れないと発見が難しい。
おそらくVBで変な領域のメモリを破壊するなんてのは難しいんじゃなかろうか。
他にもポインタと配列の関係みたいな落とし穴があるし。
このあたりは原則をきちっと押さえてしまえば大丈夫なんだけど、
本によってはポインタと配列の区別がついてないような記述があったりして、
余計混乱を招いているし。
0654デフォルトの名無しさん
NGNG何が難しいのか分からないと良く言われた。
0655デフォルトの名無しさん
NGNGようやく入り口に立てた。ポインタを始めとするC言語の教え方が
下手糞なのは、うちの大学だけだと思いたい。。。
0656デフォルトの名無しさん
NGNG2000のコマンドラインだとエスケープシーケンスが使えませんよね。
そこで、コンソールAPIってのを使おうと思ってるんですが・・・
APIを調べると、どれもGUI用APIばかりでコンソールAPIが見当たりません。
どこかに、コンソールAPIの解説HPなどがないでしょうか?
0657デフォルトの名無しさん
NGNGDOSアプリ作るのになんでWin32APIの心配を?
0658656
NGNGあれ?DOS用のAPIとか存在するんじゃないんですか???
たとえば、カーソルの制御とか、どうすればいいんでしょう?
9x系なら、エスケープシーケンスで制御できますけど・・・
2000だと、エスケープシーケンス使えませんよね。
ansi.sysを組み込んでもダメですし。
ディレクトリにあるファイル一覧の取得方法とか・・・
こういう取得って、普通のansiCでは不可能ですよね?
こういう制御を行うAPIが存在すると思ってたんですが・・・
0659デフォルトの名無しさん
NGNGポインタ云々もそうなんだけど、コンピュータそのものの知識が
必要とされる。というか、そういうプログラムが多いのが難しい
と感じる要因ではないかと。
逆に、VBでのプログラミングみたいに高度な業務知識が要求され
ることはあまりない。
0660デフォルトの名無しさん
NGNGキミが作っているのは、DOSでは動かないよ。
0662デフォルトの名無しさん
NGNGVC++バージョン1.5以前のコンパイラを使いなさい。
0664デフォルトの名無しさん
NGNGエスケープシーケンスでもいいが実用的には
それぞれのハードウェア(PC98orPCAT+VGA)専用に
作ったほうがいいだろう。conio.hを使っても
いいかもしれん。これはbcc32(mscは知らない)にも
移植されているが互換性は?だ
0665664
NGNG0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNGエスケープシーケンスを誰が解釈するか考えれば自明であろう。
0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNG基本構文を知っていれば問題ない。
どっちみち、企業ごとにいろいろやることが違うので、
新人研修の間か後くらいに、コーディングの基礎は覚えさせられる。
でも、Cとは関係ない部分での知識、
述語論理、データ構造、代数、などは知っておくと随分プラスになる。
0670668
NGNG参考になりました。m(_ _)m
0671デフォルトの名無しさん
NGNGさきほど、カキコするとこ間違えてしまいました。
いきなりなのですが、ポインタ変数を使って、入力した文字列を縦書きにするにはどうすればいいのでしょうか?
配列でしかしたことなくって。。。
ぜひ教えてください!m(_ _)m
0672647
NGNG参考になりました。m(_ _)m
0673647
NGNG670の後に書こうとしたのに入りやがって!!
いいからおいcチャーシューを教える!!!
0674デフォルトの名無しさん
NGNG入力形態を縦書きにしたいのか、
それとも入力した文字列を縦書きで表示したいのか
どっちなのでせうか。
0675671
NGNG入力した文字列を縦書きに表示したいのです。。。
0676デフォルトの名無しさん
NGNGDOSプロンプトで?
それともWindowsでかにゃ?
後者だとかなーり面倒だよ。
0677デフォルトの名無しさん
NGNG1バイト文字と2バイト文字の区別じゃない?ワイド文字とか使えばできそうだけど、あれよく知らない。
0678671
NGNGLinuxでmule開いてしてるんですが。。。汗
C言語始めたばかりで、ポインタを使えといわれると、わかんなくなっちゃって。。。
0679デフォルトの名無しさん
NGNG確かに…判別の機能を付け加えないとな。
すべて2バイト文字に変換するとか(w
>>678
配列がポインタの使用例の一種だって事はわかる?
0680デフォルトの名無しさん
NGNGfor(i=0;i<strlen(str);i++) printf("%c\n",*(str+i));
漢字がないのならこんなんでも縦書きできるよ。
つーか、ポインタの仕組みを理解する方が先決のヨカン。
こればっかりは勉強してくらはい。
0681デフォルトの名無しさん
NGNGそれだったらいいんだけど。
>>671は複数行を縦書き表示したいんじゃないのかな。。。
0682デフォルトの名無しさん
NGNGhttp://www.pro.or.jp/~fuji/
ここの「Cプログラミング専門課程」とか
「プログラムはなぜ動くのか」矢沢久雄/日経BP社
とかを読むべし。
0683671
NGNGとりあえず、もうちょっと勉強してみます。
宿題が間に合う程度に。(爆)
ほんとにありがとうございました。m(_ _)m
0684デフォルトの名無しさん
NGNGどうもどこがわからないのかがわからない。
というか、ポインタを理解できない人なんて本当にいるの?
ポインタのどこが難しいか教えてください。
今度新人にCを教えなきゃならないので
0685名無しさん@初心者
NGNGp->*p->&p->p[]->p->*p...
くるくる変わっちゃうところ。首尾一貫してない
0686デフォルトの名無しさん
NGNG?
0687デフォルトの名無しさん
NGNGポインタよくわかってない奴でも perlはいじれたりするから
違うんじゃない?
0688デフォルトの名無しさん
NGNG>for(i=0;i<strlen(str);i++)
コストが O(N²)になる予感。(Nは文字列長)
0689デフォルトの名無しさん
NGNGPerl命がけ。
0690デフォルトの名無しさん
NGNGメモリ、アドレスという概念
0691デフォルトの名無しさん
NGNGポインタは宣言の仕方がややこしい(関数ポインタの宣言は異常)
多次元配列とポインタの関係がややこしい
一次元配列が関数の引数に限りポインタに縮退するのは何で
malloc, free メモリ動的確保(その対応)でつまる
ポインタの指す先がよく宙ぶらりんになる
NULL論争に引きずり込まれる
0692デフォルトの名無しさん
NGNGで、ポインタ無くなったらどうするの?
0693デフォルトの名無しさん
NGNGなにが言いたいの?
0694デフォルトの名無しさん
NGNG参照とイテレータで生きていこうとおもいます。
0695名無しさん@Emacs
NGNG構造体や文字列などを宣言するときに、
1) ポインタで宣言、後でmalloc
2) 宣言時にスペースを確保
のどっちにするか迷ってしまいます。
0696あ
NGNGってどんなんがありますか?
0697デフォルトの名無しさん
NGNGで?
どっちか決めてくれってことか?
0698デフォルトの名無しさん
NGNG関数内で完結-> 2)
複数関数間で使いまわし-> 1)
でいいじゃん ほかになにか考える要素あるか?
スタックやヒープに制限のある環境ならそもそも
選択の余地はあまりないだろうし。
0699デフォルトの名無しさん
NGNGmallocがなんのためにあるか考えれば自ずと答えはみつかると思うけど。
0700デフォルトの名無しさん
NGNG> 定義と操作をひとつのプログラム内で行えるようにするための方法
もう少し具体的にお願い
0701デフォルトの名無しさん
NGNGずーっと動き続けているわけだから、
mallocを使っているとメモリのフラグメンテーションの問題が出てこない?
それともある程度のメモリサイズがあれば、その辺は気にしなくても良かったりするの?
0702デフォルトの名無しさん
NGNGという配列ch2があるときに、ch2の最後の要素の番号
3を取得する方法はありますか?
配列ch2の内容を変えても動的に処理をしたいのです。
# JavaScriptとかにあるような .lengthとか。
0703デフォルトの名無しさん
NGNG> char ch2[] = { 'ギコ猫', 'モナー', 'しぃ', '八頭身' }
なによこれ・・・
0704703
NGNGsizeof array/sizeof array[0]-1
0706デフォルトの名無しさん
NGNG例だからという問題じゃないよ。
Cを勉強し直せ。
0707656
NGNGレス、ありがとうございました。
ん〜、conio.hの中を覗いてプロトタイプを見たのですが・・・
どうも入出力系しかないようです・・・。
32bitコンパイラだと、DOSのグラフィカルもどきアプリは作れませんね・・・。
ありがとうございました。
0708デフォルトの名無しさん
NGNG動的配列の質問かとオモタヨ...
0709デフォルトの名無しさん
NGNGconio.hには簡単なエディタを作るのに必要な機能はそろっているはず
カーソルの任意位置への移動や文字の色づけなど
移植性に注意して作れば問題ないだろう
0710656
NGNGま・・・まじっすか!?
ざっと見た感じ、_getc関数やらkbhit関数やらなら、目につきましたけど・・・
カーソルの制御関数やら、文字の色変える関数やらってありました?
できれば、どの関数がそうなのか教えていただきたいのですが・・・
例えば、どの関数でカーソル制御するのでしょう?
0711デフォルトの名無しさん
NGNGリファレンスは持っていないのか?
0712デフォルトの名無しさん
NGNGセミコロンれすか?
# それとも・・・
# 最近構造体とかやり始めたんでちょっとごっちゃになってたw
0713デフォルトの名無しさん
NGNGbcc32しかしらんがgotoxy,textcolorなど
0714デフォルトの名無しさん
NGNGコンパイルしてみればわかるだろ。
多分 char ch2[] = { 'ギ', 'モ', 'し', '八' };なら通る(w
0715656
NGNGん?リファレンスとは・・・?
参考書のことっすか?
参考書には、カーソル制御などはエスケープシーケンスを使うとあります。
それ以外には、な〜にも書かれてないです。
それとも、コンパイラのヘルプのことっすか?
コンパイラは、bcc32を使用してます。
bcc32のコンパイラについてるヘルプは見ましたが、
どの関数が、どんな動きをするという詳しい事は載ってなかったです。
0716デフォルトの名無しさん
NGNGあー、フリーのコンパイラ使っているのか。じゃあリファレンスはないだろうな・・・
0718デフォルトの名無しさん
NGNGおれもbcc32派なのでいいリファレンスがあれば教えてほしい。
本でも、WebSiteでもなんでもいいです。
リファレンスがついてるコンパイラってVC以外に何がありますか?
VS.NET買おうかなぁ。
0719デフォルトの名無しさん
NGNGchar *ch2[]だったら、幸せかもしれない。
0720デフォルトの名無しさん
NGNGあと'を"にしないとね。
0721デフォルトの名無しさん
NGNGポインタですよね?
メモリのどこかに文字列を入れて、
そのポインタを使って中身を見に行くわけですか?
.>720
最近 ' と " が置き換えられるような変な妄想にとらわれて。
0722デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/msdn/library/
これはどう?CD-ROMがあるから見たことはないけど。
0723デフォルトの名無しさん
NGNGボーランドCのリファレンスは英語でよければ
ボーランドのUSサイトからダウンロードできるよ
0724デフォルトの名無しさん
NGNGポインタ配列の各要素を文字列リテラルの先頭アドレスで初期化。
配列の要素数は初期化子の数と同じ。
0725デフォルトの名無しさん
NGNGえっと。
>>712は、一次元配列で、それぞれの要素に文字配列の、
先頭アドレスが入ります。
なので、*ch2[0]などとすると文字列が出てくるかも。
0727デフォルトの名無しさん
NGNG(;´Д`)プログラム書くよりも、デバグするよりも、
翻訳に時間がかかる気がします。
まぁ、資料は英語で読めないと困ると思うので
「練習」のつもりでがんばるぽ。
0728デフォルトの名無しさん
NGNG*ch2[0]ってやったら一番目の文字列の一文字目が出てこない?
ch2[0]を間接参照することになるよね?
0729デフォルトの名無しさん
NGNG涙腺があつくなってきますた。
ありがとう。
「猫でも」に帰ります・・・。
0732デフォルトの名無しさん
NGNGそこで金融取引のシステムを開発してくれって言われました。
しかし当方、プログラムは一切知らないど素人で、兎に角、C言語だけはやっとけ
と言われました。
ちなみに配属は10月からなんですが、これからやるにはどんな本やコンパイラ?が
必要なでしょうか?
そもそも1ヶ月かそこらで開発なんて仕事ができるとは思えんのですが・・・
0733デフォルトの名無しさん
NGNGみてきますた。M$はCD-ROMは確か\1kだったキがするので
買おうかなぁ。
#OfficeSP1とSP2をセットにしてCD-ROMに突っ込んでくれたら
#出費が抑えられるのになぁ。
0734604
NGNG>>635
気付きませんでした!その通りです。ありがとうございます。
他に並び替えのアルゴリズムの種類や本を紹介してくれた方にも感謝します。
#今日はオセロ…。各マスをBoolean型の二次元配列で、黒…true、白…false、空白…nullみたいな方法で挑戦してみます。
0735デフォルトの名無しさん
NGNGごめん、時差。
0736デフォルトの名無しさん
NGNGここで聞くのもそれなりに回答はもらえると思うけど、
配属先に聞いた方がいいと思うぞ。
0737>736氏
NGNG何分突然の事で、配属先になんのツテもないものでして。
言われたのが昨日なもんでして。
0738デフォルトの名無しさん
NGNG関数の外で宣言された変数はどの関数からでも見ることができる。
(スカートの外で見させれたパンツはどの人からも見れるハァハァ)
ポインタとは、変数がどこにあるかを示すもので、
どの関数からでも見ることができる。
(ポインタとは、パンツがどこにあるかを示すもので、)
(誰からでも除くことができる。)
置換とは、文字列を置き換えること。
(痴漢とは、モミモミハァハァ)
別の関数の中で宣言された変数は、値を渡されてもいじることはできない。
ただし参照は可能。
(他人の女は、いじることはできない。ただし、見せてもらうことはできる)
なにか違うとことはありますか?
0739デフォルトの名無しさん
NGNG×関数の外で宣言された変数はどの関数からでも見ることができる。
○関数の外で宣言された変数は同じファイルの中のどの関数からでも見ることができる。
0740604
NGNGオイラも昨日始めたばっかりだけど、昨日わかりやすい本あったから買ってみますた。
技術評論社の「C言語スタートブック」(著:高田美樹さん)。1980円
図などが多くて、はじめの一冊としては良いかもしれませんよ。
0741デフォルトの名無しさん
NGNG10月からですか・・・
このへんの本から入ってもいいんじゃないでしょうか?
●C言語プログラミング Computer Science Textbook
http://www.amazon.co.jp/exec/obidos/ASIN/4894710293/qid=1030692946/sr=1-23/ref=sr_1_2_23/250-3822462-6053857
●C実践プログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4900900648/qid=1030693012/sr=1-11/ref=sr_1_2_11/250-3822462-6053857
0742デフォルトの名無しさん
NGNG0743じじい
NGNGわかるのはCが基本だということだけ。
誰かその違いを簡潔に説明してもらえんかのう。
0744デフォルトの名無しさん
NGNGじじいはじじいらしく囲碁でもやっててください。
0745604
NGNG再起処理は使ってないんですけど、これじゃダメなんですか?
#include <stdio.h>
int kaijo(int);
void main(){
int ipt;
//ユーザ入力
printf("nの階乗を求めます。\nnの値を入力してください。\n");
scanf("d", &ipt);
printf("%d", kaijo(ipt));
}
int kaijo(int n){
int a, i;
a = 1;
for (i = 1; i < n; i++){
a *= i;
}
return a;
}
0746デフォルトの名無しさん
NGNGscanfのフォーマット文字列が間違ってるよ。
0747デフォルトの名無しさん
NGNGまず、kaijoに渡してる iptの値を確認。
0748604
NGNGホントだ…オレってバカ…。
それでもできないってことは、関数kaijoも間違えてるっぽいですね… ・゜・(ノД`)・゜・
>>747
確認とは?
入力された数値=ipt になってるか確認しろということでしょうか?
同じになるはずですけど…。
0749デフォルトの名無しさん
NGNG#include <stdio.h>
int kaijo( int ) ;
void main()
{
int ipt;
printf("nの階乗を求めます。\nnの値を入力してください。\n");
scanf("%d", &ipt);
printf("%d", kaijo(ipt));
}
int kaijo(int n )
{
int a, i;
a = 1 ;
for (i = 2 ; i <= n; i++)
{
a = a * i ;
}
return ( a ) ;
}
0750604
NGNGありがとうございます。
forの終了条件が<=じゃないとダメでしたね。^^;
それと、iの初期値は、1をかけても値が変わらないので、2からの方が無駄がなかったでした。^^;;;
0751604
NGNG>>521のmain関数で使っている変数「ary[]」は、宣言の時に
int ary[5];
にしてます。
CはJavaみたく、int ary[5]で使える変数はary[0]〜ary[4]の5個だと思うんですが、何でmain関数の中でary[5]が使えてるんですか?
それと、Cで配列の要素数を変える方法を教えて下さい。(VBのReDimみたいな物)
0752デフォルトの名無しさん
NGNG>521では無く
>>621
ですよね
要素数を変える方法は malloc()を使ってみたら
よろしいのではないのでしょうか?
あとからメモリを任意に確保できます。
ary[5]は、確保していないところを指そうとしているので「不定」です。
偶然値が合っているだけでそれは危険です。
0753デフォルトの名無しさん
NGNGCコンパイラは配列の添字のチェックをしない。a[-1]でもa[100]でも
コンパイルは通るが、添字が 0〜4以外のときの動作は未定義(うまく
動くかもしれないしプログラムを暴走させるかもしれない)。
配列の要素数を変える方法はない。
動的にメモリを確保することができる環境では、確保したメモリの大きさ
を動的に変えられるかも知れない。
0754デフォルトの名無しさん
NGNGオーバーフロウした時も。
0755753
NGNG-1ってのは、
int array[5];
array[-1] = 10;
みたいなことね。
0756デフォルトの名無しさん
NGNGああ使う時か。
array[-1]は*(array+(-1))だから文法上は全く問題ないね。でもアクセスしてはならないところだよね。
0757604
NGNG>>752-753
ありがとうございます。
やっぱり宣言はおかしかったのですね。いますぐ直します。
この板のどこかで「Cはプログラマが全知全能であることを前提に作られている」って見たことがありますが、
この件もそれに当てはまるのかなぁって思いました。
malloc()も覚えました。ありがとうございます。
0758753
NGNGint array[-1];
も通ったな。規格的には知らないし、どうでもいいけど。
0759デフォルトの名無しさん
NGNG> 「Cはプログラマが全知全能であることを前提に作られている」
んなあほな。でもメモリまわりできちんと注意を払える人でないとだめかも。
0760デフォルトの名無しさん
NGNGcygwin、DOSなどでスクロールバーってどうやって表示するんですか?
0761デフォルトの名無しさん
NGNGマイクロソフトのソフト(EDITとかQBASIC)でよくあった奴か
標準では当然無いから自分で実装するしかないな
0762デフォルトの名無しさん
NGNGそれは、DOS窓の横にスクロールバーを表示したいのか?
それともDOS窓の中にスクロールバーを表示したいのか?
0763デフォルトの名無しさん
NGNG配列やポインタで変なとこにアクセスできるのもそのため。
このへんはJavaのほぼ逆だと考えて差し支えないはず。
0764デフォルトの名無しさん
NGNG参考書にキャプチャした画像が載っているんですが、
DOS窓の中(×の下)にスクロールバーが付いているんです。
コレと同じにしたいので、DOSの中にスクロールバーを表示したいです。
0765764
NGNG0766604
NGNGちと大袈裟でしたか。^^;
0767デフォルトの名無しさん
NGNGWindowsを捨てるか2000かXPでも買うしかないな。
0768shige
NGNGmsysのrxvtでも使え。
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNGいい時代になったものだ…
0771764
NGNG>>767->>768ありがとうございました。
0772604
NGNG1/1!+1/2!+1/3!+1/4!…1/n!=???という問題です。
#include <stdio.h>
void main(){
int i, ipt;
int bunbo[101], bunshi[101];
int bunbo1;
int bunshi1;
double Ans;
//ユーザ入力
printf("1/1!,1/2!,1/3!,…,1/n!の和を求めます。\nnの値を入力してください。\n");
scanf("%d", &ipt);
if (ipt > 100){
printf("100より大きい数入れたらコロヌ");
}
//分母の代入・分母の積
bunbo[1] = bunbo1 = 1;
for (i = 2; i <= ipt; i++){
bunbo[i] = bunbo[i - 1] * i;
bunbo1 *= bunbo[i];
}
//分子の代入・分子の和
bunshi1 = 0;
for (i = 1; i <= ipt; i++){
bunshi[i] = bunbo1 / bunbo[i];
bunshi1 += bunshi[i];
}
//分子÷分母
Ans = (double)bunshi1 / (double)bunbo1;
//データ出力
printf("%f", Ans);
}
2を入力すると正しい値が返ってくるんですけど、5にしたら間違った値が表示されました。
しかも、10以上を入力するとアプリケーションエラーが出てしまいます。^^;;;
0773デフォルトの名無しさん
NGNGとりあえず分子は常に1じゃないのか?
0774デフォルトの名無しさん
NGNGptest[0] = 'q';
ptest[4] = '8';
printf(ptest);
としたらエラーになってしまいました。
教科書どおりに打ち込んだのになぜ?
0775604
NGNG分子の代入ってのは、通分した後の値を代入しています。
最小公倍数で通分はしていないですけど。^^;
0776デフォルトの名無しさん
NGNGこの前(3か月くらい前)からゆっくりとCをやりはじめて
ずっと疑問だったんだ どうか教えて下さい お願いしますコノ野郎!
0777デフォルトの名無しさん
NGNGint array[5], *p;
p = array[-1];
も未定義になる。でも、
p = array[5];
は宵。
0778デフォルトの名無しさん
NGNG文字列リテラルの書き込みは禁止になることが多いんじゃないの?
試してみたらリリースモードでは普通に動いたがデバッグモードではエラー(vc++)
0779デフォルトの名無しさん
NGNGその教科書が悪い。
0780デフォルトの名無しさん
NGNGp = &array[5];だろ
0781デフォルトの名無しさん
NGNGえっと、printf関数はいろんな出力指定ができる。
putsは、関数じゃなくマクロ(だったと思う)で、出力するだけ。
改行は自動でしてくれる。
0782デフォルトの名無しさん
NGNG・・・マジで参考書にそんなprintf関数への引数の渡し方してるの?
0783デフォルトの名無しさん
NGNGchar *ptest = "testlog";
ptest[0] = 'q';
ptest[4] = '8';
printf ("%s", ptest);
これで正しいと思う。
0784デフォルトの名無しさん
NGNG気がつかない先生もDQNかと。
0785デフォルトの名無しさん
NGNG0787デフォルトの名無しさん
NGNGジョークだろ、多分
0789デフォルトの名無しさん
NGNGそれと、こうだる。
char ptest[] = "test log";
0790デフォルトの名無しさん
NGNGフォーマット文字列は、const char *formatで宣言されてるんだYO!
0792デフォルトの名無しさん
NGNG一応動くのかもしれないけど、
定義された文字列の書き換えは不定だから
このような書き方を「正しい」と表現するのは不適切。
0793783
NGNGスマソ。 俺が間違っとりました。
0794デフォルトの名無しさん
NGNGやはり人類は歴史から何も学ぶことが出来ない愚かな生き物なのだ。
0795783
NGNGchar *ptest = "test log";
ptest[0] = 'q';
ptest[4] = '8';
printf (ptest);
return 0;
・・・ばっちり動いてまふが・・・。
>>774の何が悪いんだろ?
0796604
NGNGいえいえ。考えてくれて感謝です。
0797デフォルトの名無しさん
NGNGsend()関数は文字列しかおくれないんですか?intとか送るのはむりなの?
0798デフォルトの名無しさん
NGNG文字列リテラルを変更しようとした結果って未定義動作引き起こす
のではなかったっけ。
0799デフォルトの名無しさん
NGNGさぁ?キャストしてみれば?
0800デフォルトの名無しさん
NGNG環境によってはたまたま動いたりするが、
普通は "test log" の文字列はメモリ上では書込み禁止領域になると思われ
書き換えるんなら char ptest[] = "test log";
でいく
0801デフォルトの名無しさん
NGNG処理系によって妙な実装ができたりするけど、
動くならANSI標準の文法にするほうがベターだな。
動かないならそのコンパイラは捨てて良し。
char *の扱いも処理系でまちまち。
printfは正直逝ってるかもしれん。
0802795
NGNGあ!そっか!
左辺値の"test log"を変更しようとするのはダメってことか!
ポインタへ代入だと、左辺値"test log"文字列だから変更したらダメってことで、
配列に代入すれば右辺値になるって事かな?
・・・間違ってる?
0804デフォルトの名無しさん
NGNGレスありがと。
初心者なんですけどキャストってどうすればいいのでしょう?
0805デフォルトの名無しさん
NGNG0806786
NGNG文字列リテラルは
C言語ではchar *
C++言語ではconst char *
のはず。
ただし、C言語でも書き換えは処理系依存だと思うが。
>>804
普通に送れる
0807デフォルトの名無しさん
NGNGまあ、お茶でも飲んで落ち着いてくれ
もっとゆっくり勉強しる
char *ptr = "abc";
char str[] = "def";
printf("ptr...%p\n", ptr);
printf("str...%p\n", str);
これやってみ
0808デフォルトの名無しさん
NGNG関数名((キャストする型)引数);
/* 戻り値のキャスト */
変数名 = (キャストする型)関数名(引数);
0809デフォルトの名無しさん
NGNGhttp://www.st.rim.or.jp/~phinloda/cqa/cqa7.html
0810797
NGNG初歩の質問にこたえてくれてほんとありがと
send()関数ではconst charで定義されてるみたいやからintを送りたい場合は
const charでキャストすればいいんですよね?
0811795
NGNGうむむ・・・
実行した結果、違うアドレスが出ました。
えっと、"abc"文字列は、const属性がついてて・・・
それをポインタに代入しても、それはconst属性であって変更したらダメで・・・
const属性文字列であっても、配列にコピー代入すれば、それは左辺値になって、
変更しても、なんら支障なしって事ですかね・・・?
言ってる事が、ぐちゃぐちゃになってるけど、あってます?(汗
0812795
NGNGう〜ん!?
char *p = "abcd" これで、文字列abcdってメモリのどこかに乗っかってますよね?
なんだ!?なんだ!?
こんな初歩で、なぜつまずいてる!?
くそぉ〜! 入門書から読み直ししなくては・・・(涙)
0813通りすがりのもの
NGNGWin2k SP3
VC++ SP5
Debugモード:
ptr...00422038
str...0012FF78
Releaseモード:
ptr...00407048
str...0012FF80
アドレスがかなり離れてますね。
0814デフォルトの名無しさん
NGNGchar *ptr = "abc";
これは
const char *s = "abc";
char *ptr = s;
という感じ。ただCのconstは処理系に依存しがち。
要は不変なら桶。普通は#defineのほうが便利。
#define S "abc"
とすると、
char *ptr = S;
と使うよりは、
func(S);
と使う。基本でつね。
char str[] = "def";
は、
char str[] = {'d', 'e', 'f', '\0'};
と同じはず。'\0'が重要でつね。これも基本でつ。
0815デフォルトの名無しさん
NGNGvoid printhogeA()
{
char *ptr = "HOGE";
printf("%s\n", ptr);
ptr[0] = 'P'; ptr[1] = 'I'; ptr[2] = 'Y'; ptr[3] = 'O';
}
void printhogeB()
{
char str[] = "HOGE";
printf("%s\n", str);
str[0] = 'P'; str[1] = 'I'; str[2] = 'Y'; str[3] = 'O';
}
int main()
{
printhogeA(); printhogeA();
printhogeB(); printhogeB();
return 0;
}
これやってみ。VC++の人はリリースモードで。
0816デフォルトの名無しさん
NGNGchar *ptr;
は#defineと違い浮気(w)ができる。
char *ptr = "foo"; /* ここはどっかにある"foo"へのポインタ */
ptr = (char *)malloc(1000); /* 動的確保した領域へのポインタ */
ptr = "foo"; /* 最初に戻ったように見えるが、アドレスが違う場合もありえる。 */
0817通りすがりのもの
NGNGWin2k SP3
VC++ SP5
Debugモード:
実行時エラー
Releaseモード:
HOGE
PIYO
PIYO
PIYO
ptrの指す先が書き替えられちゃったのかな?"HOGE"のアドレスを見失ってる。
0818デフォルトの名無しさん
NGNGgccだとHOGEと出力されて落ちた…
-Wallでも文句が出ないし(w)
0819デフォルトの名無しさん
NGNG100の階乗ってどれ位か知ってるの?
0820795
NGNGなるほど〜。
ポインタへ文字列を代入すると、\0が代入されないのかぁ〜。
う〜ん・・・。
>>815
不思議な動作するぅ・・・
なんだこれ・・・?
結果は、
bcc32
HOGE
PIYO
HOGE
HOGE
って、みんな結果違う〜!(w
0821デフォルトの名無しさん
NGNGVC++, gcc, bcc32で全部動きがまばらだなあ。CのCたる所以でつね。
0822デフォルトの名無しさん
NGNG>ポインタへ文字列を代入すると、\0が代入されないのかぁ〜。
ちょとちがう。\0を含んだ文字列リテラルへのポインタが代入される。
0823デフォルトの名無しさん
NGNGputs("abc\0def");
ってやると
abcしか出力されない。
0824604
NGNGWinの電卓で計算したら、「9.3326215443944152681699238856267e+157」でした。
よくわからないけど、bunboとbunshiはlong型にすべきですね。
入力が5でもできなかったのは謎ですが…。
0825デフォルトの名無しさん
NGNGUNIX系だと、文字列定数は大抵書き込み不可能領域に置かれるからね。
で、それを書き換えようとすると OSから叩き落される。
0826デフォルトの名無しさん
NGNGこれぐらいかな。
93326215443944152681699238856266700490715968264381621
46859296389521759999322991560894146397615651828625369
7920827223758251185210916864000000000000000000000000
0827デフォルトの名無しさん
NGNGこのトリックを使った関数がstrtok()ってやつです。
特定の文字列をセパレータとして、そのセパレータ文字列を'\0'に変え、
毎回呼ぶごとに分割された文字列が返されてくる。
そのかわりオリジナルの文字列は破壊されるので、
必要なら同じものをコピーしておく。
っていうかstrtok()あんまり使わない(w
0828デフォルトの名無しさん
NGNGchar *str = "ABC";
このように宣言されたstrで参照する文字列は「書き換えるな」
この文字列は「プログラムの一部」となっている場合もある
>>817でprinthogeBでもPIYOが出力されてるのはそれを示している
書きえるた場合の反応は不明(コンパイラが通ったとしても)
文字列を書き換えるようなことがある場合には
char str[] = "ABC";
と宣言しる
0829デフォルトの名無しさん
NGNGとすると、\0が付かない罠。
0830フレッシャーズ
NGNG//分母の代入・分母の積
bunbo[1] = bunbo1 = 1;
for (i = 2; i <= ipt; i++){
bunbo[i] = bunbo[i - 1] * i;
bunbo1 *= bunbo[i]; ←この行で掛け合わせるのは駄目でしょ。
} ここのアスタリスクは取りなさい。上の行で掛け算しているんだから。
元の処理だと二重の階乗にしているのかな?
iptが大きな数なら100,行く前に、intとかlongとか超えると思う。環境にも拠るのだろうけれど。
もう少し上限を小さくした方が良いと思う。
long m=1l,n=1l,ipt;/*m,iptはintでも可 nはどうだろ?*/
double sum_dt=0.0;
scanf("%ld",&ipt);
while(m<=ipt){
sum_dt += (1.0/n);
n*=(m+1);
m++;
//printf("<%ld,%ld>%lf\n",n,m,sum_dt);
}
printf("%lf",sum_dt);
じゃだめなの?
0831通りすがりのもの
NGNG勉強になりました。ありがとうございます。
0832デフォルトの名無しさん
NGNG#include <string.h>
int main(void)
{
char *str = "PIYO";
strcpy(str, "HOGE");
printf("PIYO"); //PIYOと出力させたつもり
return 0;
}
こういうのもvc++の最適化されたビルドだど、HOGEが出力されちまう
0833フレッシャーズ
NGNG下の方のコメント行(//〜〜)一行を含めたプログラム10行は
ANS sum_dt
bunbo n (実際には階乗された値が順に入れられていく)
counter m
と対応付けると理解しやすいかな。
1/1!+1/2!+1/3!+・・・+1/n!(=(自然対数の底−1)だよね?たしか)
の順、そのままに処理しているつもりだが・・・。
n*=(m+1);
m++;
のところは
m++;
n*=m;
でもいい
強引にすれば n*=++m; でも、出来るかな?
最後のプリントフォーマットに一応
lf(エルエフ)使ってね(double宣言だから)。
(元のプログラムに於いても)
さらに補足すると割り算(整数型どうし int/intなど)した時に、
勝手に小数点以下が切り捨てられませんでした?最初に1.0を
掛けるなどして回避するというのがあったようにも思います。
0835デフォルトの名無しさん
NGNGウチのgccだと分母30!越えると桁あふれしてしまった。
そのへんは素のCなんで勘弁しとくれ。
っていうか配列使わず綺麗に書けたっぽい。
コンパイルしてコマンドに引数(数値)を渡すと動くYO
#include <stdio.h>
#include <string.h>
#include <ctype.h>
/* 階乗 */
long factoral(int fund)
{
long vfund = 1;
int i;
for (i = 0; i < fund; i++)
vfund *= (i + 1);
return vfund;
}
/* 引数が数値かどうか */
int isintstr(char *arg)
{
int i;
for (i = 0; i < strlen(arg); i++) {
if (! isdigit(arg[i]))
return 0;
}
return 1;
}
int main(argc, argv)
int argc;
char **argv;
{
long arg;
int i;
long double result = 0.0;
if (argc != 2)
goto WRONG;
if (! isintstr(argv[1]))
goto WRONG;
arg = atol (argv[1]);
for (i = 0; i < arg; i++) {
result += 1.0 / factoral (i + 1);
printf ("%d: %1.60Lf\n", i + 1, result);
}
return 0;
WRONG:
printf ("usage: %s fundamental\n", argv[0]);
return 0;
}
0836604
NGNG>ここのアスタリスクは取りなさい。上の行で掛け算しているんだから。
bunbo[i]は各項の分母でbunbo1は通分した後の分母なんです。
だから掛け算して良いはずでは?
たとえば、1/2*1/3*1/4の場合、2*3*4で公倍数が出ますよね?
そういう考え方なんですけど、間違えてますか?
申し訳ないですけど、それ以外は明日読ませてもらいます。
眠くて頭働かないので…^^;;;
0837デフォルトの名無しさん
NGNGbegin 644 factorial_fraction.c.gz
M'XL(",JK;ST``V9A8W1O<FEA;%]F<F%C=&EO;BYC`'62O6[",!#'9_(4!P@I
M"0B2#AT(=.U2M5*7#I3!S1>6@H,2!ZE"O$W4!89*W<O0J4/?HP_`U*EW=OCJ
M1P8KOOO[?S^?K\F%GQ1!"(-<!CSM3BZ,YE$HXR(^C?GR<192J&?#R_KU$^R>
MD:0BAHCY,LU88G(A(2I$8!D+`^A3Z3F%8`BNIX.DXAZ`WD5I!B;'M.,!AX$Z
MCW_MMF74H#IK#TG2!M>J++)0%IG06<]8$M'SUV9;KC?;MX]R5;Z73^6*^%2M
M'%>\D.E/6`8VR^(]GT;Y&P1/)*$P2:YY8$%$/`*SCIX!C[FD[(B/+<5Z3(8>
MZM/6RQ-JEXBI\I1QY>]W`->YI8*T]PR-2JQS[Z29&/%^LZM4D!8/28A5\B*1
M=(\N4E1:A"9CJ`_A3,'&J4SA[O;F^M([2.J'7E'ED5O=[%BLU9C&"DRF">RE
M_SXI,5<=K+I2@QUF&^>BZT!O/T2'ET;1#*=0(EBC%?2AY7;/G:OH7C0ZH#2=
MRF0W%:=M=C"JF/LZO/<J<A:':)>K66/34$B6*%=U$V?\8\H<>J]O?B21_RX#
"````
`
end
0838604
NGNGこれでできるのか…。
かなり凄いかも?よく意味がわからないし。^^;
でも、俺は俺のやり方で最後までやってみますけど。w
終わったら、これについても考えてみます。
#include<stdio.h>
#define N 100
main(){
double a,c,d;
double b=1;
for(a=1;a<=N;a++)
{
d=1;
for(c=1;c<=a;c++)
{
d=d*c;
}
b=b+1/d;
}
printf("e=%f/n",b);
return 0;
}
0839デフォルトの名無しさん
NGNGこっちの方が明らかに、まともだ。
しかも可読性も高いから、説明されなくても意味がすぐわかる。
0840835
NGNG0841デフォルトの名無しさん
NGNG1/1! + 1/2! + 1/3! ... てことは
1 + 0.5 + 0.166... だよなあ...
あとprintf文の\nが/nだし(w
0843デフォルトの名無しさん
NGNG階乗計算に再帰は使用しないのですか?
0844835
NGNG>>842
業務だともっと長いコード書くけど、
どっちかというとコード書きより仕様の見極めのほうがシンドイでつ。
>>843
再帰使うのはディレクトリ歩くときくらい。
同じ結果が返るなら単純なほうがいいのれす。
0845デフォルトの名無しさん
NGNG自然対数を求めるなら、初期値はb=1で良い。
\nのtypoは>>604の写し間違いでは?
0847デフォルトの名無しさん
NGNGの話題を蒸し返して悪いんだが、pの型って(char *)だよな。
んで、"abc"の型って(const char (*)[4])だよな。
なんでconstのつかないポインタ(p)に代入できるんだ?
つか、なんでコンパイラは警告を出さないんだ?
void func(char *p)
{
/* */
}
int main(void)
{
char *p = "abc"; /*&n\
bsp;ここで出ない */
const char *q = "abc";
func(p);
func(q); /* const.c:11: warning: passing arg 1 of `func' discards qua\
lifiers from pointer target type */
return 0; /* 余計な警告を消すため */
}
これをgcc -Wall hoge.cってやったら、コメントのとおりの警告が出た。
そもそも、文字列リテラルをいじったら未定義の動作になるのであれば、
constではないポインタに代入しているところで警告を出すべきじゃないのかな。
その辺どうなってんだろ。
0848847
NGNG0849デフォルトの名無しさん
NGNGなんでだろーね。
アドレス自体にはconstって概念がないのかも・・・。
その値がconst修飾子が付いているってだけで。
0850デフォルトの名無しさん
NGNGファイルをオープンして、文字列を読み取り代入したら、
その文字列は、constになるのでしょうか?
0851デフォルトの名無しさん
NGNGconst char *q = "abc";
この場合のconstはqにかかっているのではなくて、"abc"にかかっている。
つまり、qはconst charである"abc"へのポインタとして宣言されている。
よって、
const char *q = "abc";
char str[] = "def";
q = str;
はコンパイルエラーにはならなし、正常に動作する。
0852851
NGNGconst char * const q = "abc";
というふうにすると、
q = str;
をコンパイルエラーにすることができる。
0853847
NGNG>この場合のconstはqにかかっているのではなくて、"abc"にかかっている。
んん。そうなの?
いやまあ、qは対比のために出しただけ。問題はchar *p = "abc";の部分。
*p = 'x';とかやったら未定義動作になるんなら、constじゃないpに代入してる
ところで警告出してくれよなあ、ってのが主旨なんだ。
あ、ちなみに
*p = (const char *)"abc";
ってやったら
>hoge.c:8: warning: initialization discards qualifiers from pointer target type
って叱られました(w
0854デフォルトの名無しさん
NGNGC++ではconst char[4]
でもbcc32ではCでもC++でもchar[4]
調べもしないで適当なことを書くな
0855デフォルトの名無しさん
NGNGなりません。
char *p = malloc(16);
fgets(p, 16, stdin);
みたいなことをやったときのpでしょ。
0856デフォルトの名無しさん
NGNGうむ。
あ。型間違ってたね。ごめん。一応調べてはみたのよ。
なんでそのC++みたいな型になってないのか、そこが疑問なんだ。
いやそれを聞くのはここじゃなくてISOのCの規格作ってるやつらに
聞けってことなんだろうけど(w
0857デフォルトの名無しさん
NGNGint i = 1;
とかにwarning出すか?
0858デフォルトの名無しさん
NGNGえーと、それはアドレスあります?
0859デフォルトの名無しさん
NGNGん?アドレスあるとは?
メモリに乗れば、すべてにアドレスあるでしょ。
0860デフォルトの名無しさん
NGNGそれはもちろん互換性のためだろう。
いまさら換えたらこれまでの莫大なソースに影響が出る。
>>857
それはrvalue
0861デフォルトの名無しさん
NGNG右辺値のアドレスは取れない。
実際問題多くの場合、即値で実装されるだろうし。
0862デフォルトの名無しさん
NGNGんん??
たとえば・・・
char *p = 'a';
これで、右辺値のアドレスじゃないの?
0863デフォルトの名無しさん
NGNG何か勘違いをしているようだが
int型とポインタ型は相互変換が可能だ
それはpを意味の無いアドレスに(ただし、恐らく多くの処理系で
そのビットパターンは(int)'a'と同じになる)
初期化しているだけだ。
0864デフォルトの名無しさん
NGNGあんた全然勘違いしてるよ。
847は 非const→constへの代入のことを言っているのではない。
その逆のことを言っている。
const char q1[] = "abc";
const char *q2 = "abc";
char *p1 = q1; /* コンパイラの警告 */
char *p2 = q2; /* コンパイラの警告 */
俺の使っているコンパイラは警告を出してくれます。
(もちろんコンパイルエラーではない)
結論。847の
> んで、"abc"の型って(const char (*)[4])だよな。
この解釈が間違っている。
0865デフォルトの名無しさん
NGNGconstがつかないから初期化以外で代入できるんじゃないの(笑)
0866865
NGNGchar const *だとだめだけど。
0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNGchar *const p; ( ポインタ変更不可 )
だろ。辞書にはこうのってるぞ。
0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG最初なにかと思った
0871デフォルトの名無しさん
NGNGそれも仮引数のみで。
0872フレッシャーズ
NGNGその一行前で既に掛け算しているので余計に掛け合わせてしまっており、
2,6,24・・・であろう値の変化が、
2,12(=2x6),288(=12x24)・・・になってしまっている。
printf("%d",bunbo1);
をすぐ下に入れて確認して見るとわかりやすいよ。
>>838
自然対数の底(のx乗)を求める、Maclaurin展開の公式を使ったもの。
exp(x)=1+x+(x^2)/2!+(x^3)/3!+・・・+(x^n)/n!
補足:カッコ内(分子のx^n)は xの n乗、分母の n! はnの階乗を表す。
という式。
838のプログラムにはこの式の初項の1が入って
いるexp(1)を求める物になっており、
また、
838以外のプログラムは、(exp(1)-1)の計算を求める
プログラムとして書かれていた(初項を左辺に移動したもの)、
という違いだけ。
0873デフォルトの名無しさん
NGNGB: char * const p ... p is read-only pointer to char
と読むらしい
しかし、非常に紛らわしいことに、
char const *p ... p is pointer to read-only char
で、A と同じになる
0874デフォルトの名無しさん
NGNGそれともC言語の言語仕様が複雑すぎるのか?
0875デフォルトの名無しさん
NGNGはいはい、自称識者はお呼びでないよ。
0876デフォルトの名無しさん
NGNGなにか気にさわったか?
0877デフォルトの名無しさん
NGNG何か気に障りました?
0878デフォルトの名無しさん
NGNG話にならんな。安心しろ。俺は自分が識者だと思ってないよ。
あらためて問い直そう。
ここにいるのは言語仕様もろくに知っていない初心者なのか?
それともC言語の言語仕様が複雑すぎるのか?
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNG>char * const p
型を逆から読むといいよ。
const char *p なら、p から左のほうへ「* char const」と読む。
ここで * は pointer to と読み替えて「pointer to char const」
(char const は const char と読み替えてもOK)
char* const p も同様に「const * char」と読み * を pointer to
に替えて「const pointer to char」。
0883デフォルトの名無しさん
NGNG[ ]x + [ ]y = [ ]
見たいな感じで、[ ]のところをテキストボックスにして
入力させるようにしたいのですがどうすればいいでyそうか?
0885デフォルトの名無しさん
NGNGそのように。としか。
0886デフォルトの名無しさん
NGNGたとえがおかしいぞ〜。
0887デフォルトの名無しさん
NGNG>>878必死だな。
0888デフォルトの名無しさん
NGNG0889マターリ
NGNGそれともC言語の言語仕様が複雑すぎるのですか?
0890デフォルトの名無しさん
NGNGVBでもやってなさい(w
0891デフォルトの名無しさん
NGNGC言語でGUIなんて今更やるもんじゃない。
0892デフォルトの名無しさん
NGNGGTK+はCだが何か?
0893デフォルトの名無しさん
NGNGつぅか相手にするまでもないだろ。こんなもん。
0894デフォルトの名無しさん
NGNGだから今更やるもんじゃない。
0895デフォルトの名無しさん
NGNG指定したサイズに届くまでにファイル終端に達したららどうなるん?
ファイル分割ソフトの真似事しようと思ったんだが最後の出力ファイルが
0バイトになって元のファイルの大きさより小さくなってしまうんだが
0896デフォルトの名無しさん
NGNGfreadの動きくらいはマニュアルに載ってると思うが?
Linux用で良ければ
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/fread.3.html
最後の出力ファイルが0バイトなのは、0バイトしか書き込んでないか
らで、なぜ0バイトしか書き込もうとしないのかは >>895にしかわか
らない。
0897デフォルトの名無しさん
NGNG第2引数と第3引数の指定を間違えてるっぽい。
0898デフォルトの名無しさん
NGNGレスどうも
bccつかってて詳細なマニュアルは無いっす。
とりあえずリンク先見てきます
0899604
NGNGこれは1/1!・1/2!・1/3!について、それぞれを小数に変換から足していく方法ですよね。
僕のやり方は分数で足し算して、それから小数に変える方法だから、答えは違ってきますよね。w
でも、僕のやり方ではlong使ってもオーバーフローしてしまうから、それぞれを小数に変えてから足すしかないのかなぁ…?
>>830
その人に出された問題が100まで出せるようにっていう問題だったので、上限を変えるのは無理っす…。^^;
しかも、教えてくれたコードがよくわからないです。
m=1lとか、scanf("%ldとか…、すいません。
>>833
>さらに補足すると割り算(整数型どうし int/intなど)した時に、
>勝手に小数点以下が切り捨てられませんでした?
分子の代入の所のint / intは答えが整数になることが決定してますから大丈夫です。
分子÷分母の部分はdouble型にキャストしてるから大丈夫ですし。
プリントフォーマットにlfを使うようにとのことですが、doubleの場合、%fでいいんじゃないんですか?
本にはその様に書いてあるんですが…。%lfは載ってないし…。^^;;;
0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNG0902604
NGNGA〜Zを順番に書けっていう問題があったとすると、forの繰り返しとASCIIコードを使ってやれば簡単だと思うんですけど、具体的にどうやるんですか?
あと、C言語でBoolean型の変数ってないんですか?Boolean 変数名;でエラー出るし、本にも載ってません。
pascalからCの書き換えをネットで見ましたが、pascalのBoolean型の変数がCではint型になってました。
0903デフォルトの名無しさん
NGNG> forの繰り返しとASCIIコードを使ってやれば簡単だと思うんですけど、
そこまでわかってれば自分で何とかならんか?
> C言語でBoolean型の変数
最新のCの規格では_Bool型があるけど、
サポートしてるコンパイラは多くないので当面はint型で。
0904デフォルトの名無しさん
NGNG>C言語でBoolean型の変数ってないんですか?
最近の規格ならあるよ。
0905デフォルトの名無しさん
NGNG>C言語でBoolean型の変数ってないんですか?
最近やっと規格ができたよ。
使えるコンパイラはほとんどないけど。
0906デフォルトの名無しさん
NGNG>C言語でBoolean型の変数ってないんですか?
昔は無かった。当面intにしとけ。
0907デフォルトの名無しさん
NGNG>C言語でBoolean型の変数ってないんですか?
最近の規格で取り入れといたよ。
0908604
NGNGそれが、できなかったんです…。^^;;;
#include <stdio.h>
void main(){
int i, ascii;
ascii = 65;
for(i = 0; i < 25; i++){
ascii++;
printf("%s", ascii); //この辺がおかしいかと…。どうやって数値を文字にしていいものか…。
}
}
>>903-906
ありがとうございます。
Booleanがないと、結構大変ですね…。^^;;;
int型でのやり方、じっくりやってみます。
0909604
NGNGISOの方ですか?w
0910デフォルトの名無しさん
NGNGitoaとかsprintfとか。
>>909
K&RのKです。
0911デフォルトの名無しさん
NGNGここがおかしい
printf("%c\n",ascii);
(改行文字はかならずしも入れる必要は無いが書く癖を付けておけ)
0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGvoid main(int argc, char *argv[]){
int i, ascii;
ascii = 'A';
for(i = 0; i < 25; i++){
ascii++;
printf("%c\t", ascii);
}
return 0;
}
0914デフォルトの名無しさん
NGNGvoid main()でreturn 0;ってどういうことだと小一時間。
0915デフォルトの名無しさん
NGNG0916604
NGNGありがとうございます。
itoa・sprintfも検索してこよう。
>>910
いってらっしゃい。コメントお願いします。w
http://pc3.2ch.net/test/read.cgi/tech/1020916685/
0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNGぜっとは
0919デフォルトの名無しさん
NGNGi <= 25
0920604
NGNGprintfとascii++が逆です。^^;;;
0921デフォルトの名無しさん
NGNGint main(int argc, char *argv[]){
int i, ascii;
ascii = 'A';
for(i = 0; i < 26; i++){
printf("%c\t", ascii);
ascii++;
}
return 0;
}
0922デフォルトの名無しさん
NGNG#include <stdio.h>
int main() {
printf("%8s\n",".......U");
printf("%8s\n","....@...");
printf("%8s\n","##>##...");
}
0923デフォルトの名無しさん
NGNG/******* start *******/
#include<stdio.h>
const alph[] ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
main(){
char *ascii;
ascii = alph;
printf("%s\n",ascii);
}
0924デフォルトの名無しさん
NGNG>const alph[] ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
char alph[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
でわ?
0925604
NGNGポインタはわかりませんのですよ…。
半角を全角にする関数ってありますか?
0926デフォルトの名無しさん
NGNG無い。
0927デフォルトの名無しさん
NGNG全角ってアスキーコード表に無いからcでは扱えないってことですか?
0929デフォルトの名無しさん
NGNGCでASCII以外のコード使ったらダメなんて法律はないが。
アルファベット、大した数無いんだからテーブルでも書くよろし。
0930デフォルトの名無しさん
NGNG#include<stdio.h>
const char alph[] ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
main(){
const char *ascii;
ascii = alph;
printf("%s\n",ascii);
}
0931デフォルトの名無しさん
NGNGCはもともと全角のことなどなんも考えないで作られてるからです。
0932デフォルトの名無しさん
NGNG変数asciiをループカウンタとして使っては?
for(ascii = 'A'; ascii <= 'Z'; ascii++) {
}
Booleanの件は、Cでは(新しい規格を除いて)
自分で型を定義するのが一般的。
http://www.catnet.ne.jp/kouno/c_faq/c9.html
0933604
NGNGさっき気付いたんですけど、int変数 = "文字";にするとint変数にはASCIIコードの値が入るんですよね。
それでループするのが一番いいかも知れませんね。
ありがとうございます。
Booleanの件もどうもありがとう!
0934デフォルトの名無しさん
NGNGやめとけ・・・。って言うかC基礎からやり直せ。
09351000
NGNG0936デフォルトの名無しさん
NGNGこれが正しいと思うなら小学1年生からやりなおしましょ。
0937デフォルトの名無しさん
NGNGC言語なら、俺に聞け! <30>
名前:ロートルしょーえい
漏れは54才、30年間プログラムを一生懸命作ってきた。
いろいろな言語を極めたが、一番手になじむのは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 あたり
0938フレッシャーズ
NGNG(>>838>>830)
そこまでわかっていればをdouble(浮動小数点型)を使う
という選択肢しか残っていないのでは?
l(エル)は切り捨ててかまいません。
(>>833)
その点についてはこちらが勘違いしておりました。すみません。
念のため
(6/1+6/2+6/6)/6
という計算方法ですよね。
0940デフォルトの名無しさん
NGNG「文字」と「文字列」は別物よん。
0942デフォルトの名無しさん
NGNGうん
0944デフォルトの名無しさん
NGNGで、
>int変数 = "文字";
0945デフォルトの名無しさん
NGNGchar *="文字";ならOKなんだけどね。
0946945
NGNG094710000
NGNGファイルをコピーするには自分でfscanfやfprintfで
関数を作らなければいけないんでしょうか?
画像ファイルやアプリケーションもそんな遅いやり方を
しなければいけないんでしょうか?
教えて下さい。!
0948デフォルトの名無しさん
NGNG次スレ立てるまで待ってケロ。
0950デフォルトの名無しさん
NGNGファイルをリード&バイナリモードで開いて一文字ずつ読みとりながら、ライト&バイナリモードで開いたストリームに書き出せばいいと思うけど。
0951デフォルトの名無しさん
NGNGええ、そうです。
0952フレッシャーズ
NGNG一文字だから代入できるはずですが(アスキーコード
のアドレスを代入しているのですよね?)。
違いましたか?「文字列」はもちろん無理ですけれどね。
int ascii='A';
OK!だと思います。
for(int ascii='A'; ascii<='Z'; ascii++)
はよさそうですね。わかりやすいですし。
しかし、このfor文を使った場合putc文は使えないな…。
0953デフォルトの名無しさん
NGNGそれは・・・多分Cじゃできない(C99はしらん)。C++ならOKだけど。
095410000
NGNGやっぱりそうするしかないんですね、ありがとうございました。
また聞きたいことが合ったら書きこむと思いますので
そのときは、またよろしくお願いします。
0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNG( ´,_ゝ` ) プ
0957デフォルトの名無しさん
NGNG0958957
NGNG0959955
NGNG逝ってきていい?
0960デフォルトの名無しさん
NGNGふざけんな
さっさと逝け
0961955
NGNG0962shige
NGNG0963デフォルトの名無しさん
NGNGC言語なら、俺に聞け! <30>
http://pc3.2ch.net/test/read.cgi/tech/1030786546/l50
0964フレッシャーズ
NGNG何を勘違いしたのでしょう。
ちょっと恥ずかしい
0965デフォルトの名無しさん
NGNG違うと思うよ。
文字定数だけど「文字」という概念にとらわれず、
単なるint型の数値と考えてね。
'A' は 65 と書いたのと同じ。
'Z' は 90 と書いたのと同じ。
だから
for(c = 'A'; c <= 'Z'; c++)
は
for(c = 65; c <= 90; c++)
と書いたのと同じ。
この数値を printf関数に文字コードとして
解釈してもらいたければ、書式指定文字を使って
そのように指定する。
もちろんputcにも使える。
0966デフォルトの名無しさん
NGNG'A'から'Z'の文字コードが連続しているとは限らないから
for(c = 'A'; c <= 'Z'; c++)
というようなコードの動作はCの範囲ではどうなるかわからない。
0967デフォルトの名無しさん
NGNGそういう文字コードの例を挙げてからでないと説得力ないな。
0968デフォルトの名無しさん
NGNGEBCDICと言って欲しいのか?
0969デフォルトの名無しさん
NGNGchar配列(\0含めて要素数9)かな
sizeof("omaemona")
で9と出るし
printf("%c\n", "omaemona"[5]);
だとちゃんとoが出力される
0970デフォルトの名無しさん
NGNGC言語なら、俺に聞け! <30>
http://pc3.2ch.net/test/read.cgi/tech/1030786546/l50
0971SITNAM
NGNGお前らは邪魔するなよ。
0972SITNAM
NGNGこれが最小のCプログラム
わかったか?
正確には
#include<stdio.h>
void main(int arg,char *arg[])
{return 0;}
だよ
0973デフォルトの名無しさん
NGNG最小の構造体は?
0974SITNAM
NGNG0975SITNAM
NGNG(V)∧_∧(V)
ヽ(・ω・)ノ フォッフォッフォッ
. / /
ノ ̄ゝ
. (V)∧_∧(V)
ヽ( )ノ フォッフォッフォッフォッ
. / /
.......... ノ ̄ゝ
0976デフォルトの名無しさん
NGNGプッ いきがっちゃって。
char main=-61;
x86ならこっちのが最小だな。
0977デフォルトの名無しさん
NGNGvoi main ってお前…
0978デフォルトの名無しさん
NGNG一気に「書き込む」ボタンをクリックし様〜>971
sage進行でね。
0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNGちゃんとコンパイル&実行できるコードってのが味噌だよ
0981SITNAM
NGNG0982SITNAM
NGNG0983SITNAM
NGNG0984SITNAM
NGNG1000 1000 1000 1000 1000 1000 1000 1000 1000
1000 1000 1000 1000 1000 1000 1000 1000 1000
1000 1000 1000 1000 1000 1000 1000 1000 1000
1000 1000 1000 1000 1000 1000 1000 1000 1000
0985デフォルトの名無しさん
NGNG0986SITNAM
NGNG0987SITNAM
NGNG0988デフォルトの名無しさん
NGNG0989SITNAM
NGNG0990SITNAM
NGNG0991SITNAM
NGNG0992SITNAM
NGNG0993SITNAM
NGNG0994デフォルトの名無しさん
NGNGどうせなら2^10を目指せゴルァ
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。