C言語なら俺に聞け! Part 81
レス数が1000を超えています。これ以上書き込みはできません。
0001v(^o^i)d
NGNG質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
コンパイラを探しているなら >>2-13 を。
上記を逸した場合の結果は激しく未定義だYO!
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
各種リンクは>>3-20あたり(誰か適当に貼って)
C言語なら俺に聞け! Part 80
http://pc5.2ch.net/test/read.cgi/tech/1084749585/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0002デフォルトの名無しさん
NGNG>>1乙
0003デフォルトの名無しさん
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/
【ライセンスや機能などに問題あり】
Microsoft 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
Intel C++ Compiler for Linux
http://developer.intel.com/software/products/compilers/clin/noncom.htm
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG7にあつあつのおでんをぶつけてやる。
ついでににガッ!!
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGchar型というのはstrcpyとかstrcatとかで繋げることはできないのでしょうか?
やりたいことはchar str[]にchar str1を付けたしたいんです。
どうかよろしくお願いします
0011デフォルトの名無しさん
NGNGぬるぽ
0012デフォルトの名無しさん
NGNGchar str1;
strcpy(str,"ABCD");
strcat(str,str1);
0013デフォルトの名無しさん
NGNG突っ込みどころ満載だな。
0014デフォルトの名無しさん
NGNGわけわからんコードをポストすな
0015デフォルトの名無しさん
NGNG001710
NGNGchar str[] = {0x41,0x42,043};
char str1 = 0x44;
strcat(str,str1);
printf("%x\n",str[3]);
こんな感じでやりたいんです
001812
NGNGすいませんお手上げです。お力になれなくてすみません
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG普通にsprintf()でくっ付けたら良いんとちゃう?
もしくは普通にprintf("%s,%c\n",str,str1);
って感じで・・・
0021デフォルトの名無しさん
NGNG#include <stdlib.h>
int main(void){
char str[] = {0x41,0x42,043};
char str1 = 0x44;
int n = sizeof str;
realloc(str, n + 1);
str[n] = str1;
printf("%#x\n",str[3]);
return 0;
}
0022デフォルトの名無しさん
NGNGprintfのとことかが意味不明だが、
普通に
printf(%s)とprintf(%c)を続けてやればいいのでは?
%xは16進数をダンプするわけで、文字列は表示できない。
002322
NGNG0024デフォルトの名無しさん
NGNGどっかいけよ
0025デフォルトの名無しさん
NGNG>int n = sizeof str;
はげわら
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNGchar str[] = {0x41,0x42,043};
この時点でstr[]のサイズは3なので、
後部にstr1を追加する余裕はありません
0028あぼーん
NGNG0029デフォルトの名無しさん
NGNG何がおかしいのか素でわからんから、教えてくれよ。
0030デフォルトの名無しさん
NGNGいや、なんというか、printfすることが目的じゃなくて
配列に入れたいというか・・・
>>21
どうもです、できました。でも長くなりますね。
char型の配列を選ぶことが間違いでしょうか・・・
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG003425
NGNGまじか・・・。つりならゆるさんぞ。
sizeofはsizeof(型名)の形で使う。
型のメモリサイズを得る演算子だから、変数の領域を取得することは出来ない。
strの長さを知りたいならstrlen(str)ってやるの。
0035デフォルトの名無しさん
NGNGって何ですか?さっぱり分かりません。1から教えてください。というか教えろ糞ども
0036デフォルトの名無しさん
NGNG駄目みたいです。スマソ
0037デフォルトの名無しさん
NGNGバカはお前だ
>>33
配列はrealloc出来ないから、
char str[4] = {0x41,0x42,043};
char str1 = 0x44;
str[3] = str1;
とするのが正解。
0038デフォルトの名無しさん
NGNGお前氏ね。
003924
NGNG素なのかよ。realloc()の第一引数はmalloc(), calloc(), realloc()で
返ってきた値しか使っちゃならん。それ以外の値を使うと不定となる。
解放済みのも駄目。
0040デフォルトの名無しさん
NGNGアンカーを良く見ろ、ネタか?
0041デフォルトの名無しさん
NGNGstrcat(str, (char*)&i);
strの要素数が十分ではじめに0クリアされていてsizeof(int)>sizeof(char)ならできる。
「できる」と「やっていい」は別。
これがなぜ「できる」のか分からないのなら、やるべきではない。
っていうか、やるべではない。
なぜstrcatに目をつけたかがそもそも謎。
0042デフォルトの名無しさん
NGNGん? realloc()のは分かっててやってるのか?
初心者いるようだから惑わすようなことするなよ。
004321
NGNG0044デフォルトの名無しさん
NGNGExample
// expre_sizeof_Operator.cpp
// compile with: /EHsc
#include <iostream>
size_t getPtrSize( char *ptr )
{
return sizeof( ptr );
}
using namespace std;
void main()
{
char szHello[] = "Hello, world!";
cout << "The size of a char is: "
<< sizeof( char )
<< "\nThe length of " << szHello << " is: "
<< sizeof szHello
<< "\nThe size of the pointer is "
<< getPtrSize( szHello ) << endl;
}
004510
NGNGchar str1 = 0x44;
int n = strlen (str);
// realloc(str, n + 1);
str[n] = str1;
printf("%#x\n",str[3]);
でも出来ました
有難うございます >>34
strlenとsizeofの違いは後で調べます
0046デフォルトの名無しさん
NGNG警告: 関数 `strlen' の暗黙の宣言
となります。これも調べます。
0047デフォルトの名無しさん
NGNG>>34の発言は真に受けちゃダメだよ
0049デフォルトの名無しさん
NGNG29が突っ込んだのは
>>int n = sizeof str;
>はげわら
これについてだろう。sizeof strは正しい構文。
>>41
Little-Endian依存
>strの要素数が十分ではじめに0クリアされていてsizeof(int)>sizeof(char)ならできる。
こんな嘘書くな
0050デフォルトの名無しさん
NGNG今回の場合では使えないよ。
0051デフォルトの名無しさん
NGNG何で誰も突っ込まん。
0052デフォルトの名無しさん
NGNGchar str[] = {0x41,0x42,043};
だと使えないけど
char str[4] = {0x41,0x42,043};
ならstr[3]には0が勝手に入るからstrlenは使えるでしょ。
0053デフォルトの名無しさん
NGNGchar str[4] = {0x41,0x42,0x43};
初期化指定が省略されている分は 0 で初期化されるから、
今回のケースに限り問題ない。
005441
NGNGそれもやね。intel界の人間なんで、忘れとった。
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNGCのソースやヘッダーを解析して宣言されている構造体とそのメンバの一覧を
出力するような解析ツールをご存知でしたら教えて下さい。
ベクターで探したのですが、関数のリスト表示はあっても構造体を
解析するものが見つからなくて、
0058デフォルトの名無しさん
NGNG自分で作れ!
0059デフォルトの名無しさん
NGNG>メンバ変数ということはC++でスレ違いだが
釣りか?
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNGまぁどっちでも通じるからいいけど。
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGK札で作ると良いよ
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNGだからc言語なんてつくれないんだよ
きゃー、ネタにまじレスしちゃったー
にっげろ〜
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGexpression::= ε
これC言語。
作者の俺が言うんだから、間違いない。
0071デフォルトの名無しさん
NGNGようこそ!
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG0074蟹飯
NGNG0075デフォルトの名無しさん
NGNG禿がバイト見つけたってニュースは聞いたけど
http://www.cs.tamu.edu/reception
0076デフォルトの名無しさん
NGNGreallocの戻り値を使わないと意味無しどころかリークしまくり。
>>46
#include <string.h>
ちなみにC++なら
string s = "ABC";
s += "D";
>>57
http://www.annie.ne.jp/~y-oka/pc/gnu_global/
>>59
どう見てもVC++での話だろw
どうせpublic変数にしてるかforの内側で何かメソッド呼んだりしてるんだろ。
0077デフォルトの名無しさん
NGNGs += 'D';
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNGまぁ同じだが、漏れ的には""にするな。あとで2文字にしたいかも知れないから。
>>78
3とかmagic number書きたくないな。"ABC"も同じだが。
どっちにしてもそんなまんどくさい書き方はしない。
0080デフォルトの名無しさん
NGNG実質的に同じ結果が得られると言って、"ABC"と [4]={0x41, 0x42, 0x43}は同じじゃあない。
0081デフォルトの名無しさん
NGNGCならまぁそう言えるが、本質じゃないな。
0082デフォルトの名無しさん
NGNGttp://www.sikaku.gr.jp/nj/index4.html
C言語プログラミング能力認定試験(3級)を受けようと
思っていますが、どのくらいの難しさでしょうか?アドバイスお願いします。
0083デフォルトの名無しさん
NGNGアホか
0084デフォルトの名無しさん
NGNGhttp://www.sikaku.gr.jp/certify/200.html
0085デフォルトの名無しさん
NGNGDoxygenとか、Graphviz
0086デフォルトの名無しさん
NGNG#define DIM(x) (sizeof(x)/sizeof((x)[0]))
上記がcharから構造体の配列にも使える事が理解できれば合格です。
0087デフォルトの名無しさん
NGNGそもそも計算結果ちがうだろ。
(ふのすうのとき)
0088デフォルトの名無しさん
NGNGでも、分母で0番目の要素書くのが気分的にいやなのよねえ。
分子を配列名にして、分母を型名にしたい!
0089デフォルトの名無しさん
NGNG0番目にする必要もないし、型名でも問題ないがw
0090デフォルトの名無しさん
NGNGCmap
ttp://www1.ocn.ne.jp/~microsys/
解析が目的なら薦める。
0091デフォルトの名無しさん
NGNG#define numberof(x) (sizeof(x)/sizeof*(x))
だな。
0092デフォルトの名無しさん
NGNGべつに1番めでも2番めでもいやです。
型名にすると、このマクロつかえないでしょ?
0093デフォルトの名無しさん
NGNGsizeof*(x)
sizeof*(x)
sizeof*(x)
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNGsizeof((x)[0]
sizeof((x)[0]
sizeof((x)[0]
どいつもこいつも
不要な括弧なんか書いてるから
肝心なとこで優先順位に
知 ら ん 間 に 助 け ら れ
だっせー芋杉
0096デフォルトの名無しさん
NGNG何か問題でも?
0097デフォルトの名無しさん
NGNGぼけはおまえ。
これはsizeofによくつけるカッコではなく、
「マクロの引数だからかならずつけカッコ」だ
それぐらいおぼえてから言え。かっこわるいぞ。
0098デフォルトの名無しさん
NGNG>>95はsizeofに括弧つけなくてもいいってことを最近知って
他の人にそのことを言いたかったんでしょう。
それぐらい察してあげようよ。
>「マクロの引数だからかならずつけカッコ」だ
sizeof((x)[0])
このsizeof直後の括弧は違うでしょ。
009991
NGNG0100デフォルトの名無しさん
NGNG010193=95
NGNG0102デフォルトの名無しさん
NGNGもしそうであれば、 interface というのは何のための予約語
なのか教えていただけませんでしょうか?
0103デフォルトの名無しさん
NGNGu'' = [ u, v, u' , v']
v'' = [ u, v, u' , v']
'は1回微分です。微分は時間で行っています。
上の式を4次のルンゲクッタであらわしたいのですがどうすればいいですか?
0104デフォルトの名無しさん
NGNGhttp://www.google.com/search?q=C%E8%A8%80%E8%AA%9E+%E4%BA%88%E7%B4%84%E8%AA%9E%E4%B8%80%E8%A6%A7&sourceid=opera&num=0&ie=utf-8&oe=utf-8
0105デフォルトの名無しさん
NGNGルンゲクッタでu'、v'を求めたいのですがどうすればいいでしょうか?
0106デフォルトの名無しさん
NGNG無いみたいなんですが Visual C++ のエディタでは
色つきで表示されるし、いくつかの COM 関係の
ソースにも interface ってのが出てくるんですよ…
C99 以降とかで増えたのかと思ったけど、違うっぽい。
0107デフォルトの名無しさん
NGNGVisual C++ スレに行きます。
★初心者にVisual C++を教えるスレ★ Part12
http://pc5.2ch.net/test/read.cgi/tech/1083585833/
010893=95
NGNG>http://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?lang=jp&bunsyoId=JIS+X+3010%3A2003&dantaiCd=JIS&status=1&pageNo=0
これ買え。もしくは、閲覧させてくれる人か機関を探せ。
ルールブック持ってない審判が同業者にいちいち聞いて回ってるのと同じで、ひたすらみっともないぞ。
ちなみに2chはネタをネタと見抜けない人には向かないって運営者の格言があることも知っておけ。
0109デフォルトの名無しさん
NGNG>どうすればいいでしょうか?
この語尾を、「納期○月×日で、見積もりを下さい」に変えればいい。
宛名はム板じゃなく△株式会社御中でな。
0110デフォルトの名無しさん
NGNGVCでCOMを使うときに使うだけだろ
独自拡張だよ
0111デフォルトの名無しさん
NGNG独自拡張だよ
独自拡張だよ
独自拡張だよ
0112デフォルトの名無しさん
NGNGマルチは死ね
0113ビル・ジョブス
NGNG0114デフォルトの名無しさん
NGNGこちらへどうぞ
http://pc5.2ch.net/test/read.cgi/tech/1085915001/
0116デフォルトの名無しさん
NGNGすごい主張ですね。
素直に感心しました。
0117デフォルトの名無しさん
NGNG必死だなw
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNGお前もまだ死んでなかったんだw
0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNG好き過ぎて嫌い。ごめん。
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG012522歳(初級〜中級) ◆MuQGL65shc
NGNGすぐに話題がそれて、意味の解らん
レスがぐだぐだ続く。
もっとためになる話をしてくれないと困るではないか。
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNGオブジェクト指向でもする?
0128デフォルトの名無しさん
NGNG39 :デフォルトの名無しさん :04/05/31 00:40
>>36
globalはスタティック。
ローカル変数はスタックにのるのでメモリ(ヒープ)に乗せたいときに
staticを使う。
012922歳(初級〜中級) ◆6ahYthuttI
NGNG0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG俺ことデフォルトの名無しさんにとっては非常に重要なんだ。
ここは君だけのためのスレじゃないんだから、
いいかげんに黙ってくれないか?
0132デフォルトの名無しさん
NGNGさ ぁ 盛 り 上 が っ て ま い り ま し た
0133デフォルトの名無しさん
NGNGつまり、グラフを描きたいのですがやり方がわかりません。
参考になるHP等を教えてください。
0134デフォルトの名無しさん
NGNGC++でもなく
ましてやC#でもなく
単なるCに未来は?
0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=%82v%82h%82m%82%CC%82k%82r%82h%82b%81%7B%82b%82o%82%60%82c%82%C5%83R%83b%83z%8B%C8%90%FC%82%AA%8F%91%82%AB%82%BD%82%A2&ie=Shift_JIS&hl=ja&lr=
0137デフォルトの名無しさん
NGNGCの未来はC++,C#,Dなのです。
0138デフォルトの名無しさん
NGNG実はおれもそうだ。
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNGconst char *const p = *argv; /* 1 */
const char *const *const pp = argv; /* 2 */
return 0;
}
1 で警告が出ず、2 で警告が出るのは何故ですか?
initialization from incompatible pointer type と怒られてしまうのですが。
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNG互換性のない型へのポインタで初期化しようとしたから。
0143デフォルトの名無しさん
NGNG> #define LENGTHOF(x) (sizeof(x) / sizeof*(x))
を提唱するやつが5年に1回でてきてる。
(おれはいままでに数回みた)
でも、けっきょく定着しないのは、大きな欠点があるためだ。
このマクロは、関数の外の比較的グローバルな配列に使われることも多い。
で、ほかのコンパイル単位でexternで参照されていることもある。
で、このマクロを使っている関数の一部を、ほかのファイルにこぴぺして
流用するとき、そのままコンパイル通っちゃうのが危険なのよね。
もしくは同様に、ある配列のサイズをこれで計算してて、
その配列のアドレスを関数のポインターとして渡し、
その関数の中の仮引数にこれをつかっちゃったときも、
コンパイルエラーにはならない!
そこが大きな欠点だな。
0144デフォルトの名無しさん
NGNGそれは誰ですか?
0145デフォルトの名無しさん
NGNG1は文法的にまったく問題がなく、2はあるからです。
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNGexternって最近めったに使わないし、ましてや配列でしょ?
その変数を操作するメソッド用意して隠蔽しちゃうからね。
最後に、十分定着していると言うかこれ常識だと思いますけど。
0148デフォルトの名無しさん
NGNGおまえ あほか...。最近とかそういう問題じゃあねーだろ。
> ましてや配列でしょ?
逆だろ。配列だからこそ「グローバルにするかどうか」のさかいめでは、「じゃあグローバルに
しちゃお」って確率が増えるんだろうに
> 十分定着していると言うかこれ常識だと思いますけど。
いや20年前ぐらいにはじめてみたけど、その後も、流行っては消え、流行っては消えで、
ちっとも定着しない。けっきょく生で書くのよね割り算を。
0149147
NGNG>逆だろ。配列だからこそ「グローバルにするかどうか」のさかいめでは、「じゃあグローバルに
>しちゃお」って確率が増えるんだろうに
増えねーよ。そもそもH/WでMAPされたI/O AREAくらいしかexternなんて使わねーんだよ。
君は一生、生でこいてなさい。私たちは普通に使います。
0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNGおまえ...もうちょっとちゃんとC勉強したほいがいいぞ。
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNGおまえ...もうちょっとオブジェクティブなC言語の実装を勉強したほうがいいぞ。
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNGint main(int argc, const char * const argv[]) {
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNG>>147 の言う通り、常識です。
>このマクロは、関数の外の比較的グローバルな配列に使われることも多い。
そーゆーものに使う方がまぬけなだけですね。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGコーディング体系にも適材適所があるんだから、それを宗教感覚で締め付けるのはよくない傾向だな。
こんなの現場に持ち込んでもらわれちゃ凄い迷惑だ。
カッコ付けだけのオブジェクト指向逝ってよし。
気安く変数を隠蔽してくれるとデバッグし辛くなるんだよ。
0162デフォルトの名無しさん
NGNGchar temp[MAX_PATH]
に30文字くらいのアルファベットが格納されるのですが
先頭から2つめのタブ以降から3つ目のタブの間の文字を
取得したいです。よろしく教えていただけないでしょうか?
0163デフォルトの名無しさん
NGNG○教えていただけないでしょうか。よろしくお願いします。
0164デフォルトの名無しさん
NGNGstrtok
0165デフォルトの名無しさん
NGNG変数を隠蔽した程度でデバッグしにくくなる
お前のやり方が悪いだけ。
0166デフォルトの名無しさん
NGNGありがとうございます。
肝心のタブはどのように判別すればよろしいでしょうか?
0167デフォルトの名無しさん
NGNGstrtokについて調べろよ
0168デフォルトの名無しさん
NGNG{
#define TAB (0x09)
int c=0;
char *d=dst;
while(*src) {
if (*src++==TAB) {
if(++c==2) {
while(*src&&*p!=TAB)
*d++=*src++;
*d='\0';
return dst;
}
}
}
return NULL;
#undef TAB
}
0170デフォルトの名無しさん
NGNG早くstrtokを批判できるようになれよ
0171デフォルトの名無しさん
NGNG批判ってどんなの?
「文字列書き換えんな」とか?
0172デフォルトの名無しさん
NGNGMAX_PATH とかいう名前から勝手に想像すると、
':' とか、':' とかじゃないのかな? ま、関係ない話だ。
0173デフォルトの名無しさん
NGNGぶっぶー 外れです
ヒントは記憶クラス
0174デフォルトの名無しさん
NGNG\t
0176デフォルトの名無しさん
NGNGstrtokにぬるぽ渡してもガッされないだろ? 何でだ??
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNGおまえ、デバッガ使ったことないだろ。
デバッガの機能を理解した上で、デバッグしやすいコーディングを考えたら
バカの一つ覚えみたいに変数を隠蔽しようなんて考えは起こらないはずだ。
それでも隠蔽に拘るなら、ヘボとしかいいようがない。
0179デフォルトの名無しさん
NGNGIUKnownで関数テーブルからいちいちハンドラ探させるるとか?
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG困難になるという状況は、思いつきにくいな。
Cで変数の隠蔽なんて大した事できないっしょ?
変数のIDテーブルとか使うのかなぁ?
0183デフォルトの名無しさん
NGNG0184175
NGNG第1引数がNULLだったら前回の続きから
(言わんとしてることは察して)
ってことになってるから ガッ されないんでしょう。
こんな感じで実装されてるのかな。
/*
* 初めて使われたときの第1引数がNULLのときの
* 振る舞いは未定義らしいので気にしない。
*
* 簡単のために第2引数は1文字ってことで。
*/
char *hoge(char *str, const char c)
{
static char *p; /* >>173の「記憶クラス」ってのはこれのこと? */
char *q;
if (str != NULL) p = str;
while (*p == c) ++p;
for (q = p; *p != '\0'; ++p)
if (*p == c) { *p++ = '\0'; break; }
return *q == '\0'? NULL: q;
}
やっぱ何が問題なのかわからん。
0185デフォルトの名無しさん
NGNGマルチスレッドな環境で
0186デフォルトの名無しさん
NGNG構造体のヘッダにデータサイズフィールドとか、データ型IDのがあって、
構造体の受け渡しは void* で行われて、コンテクストによっていろ
んな構造体にキャストしつつ使われている場合。
こんなんだったら嫌だな。局所的にはよくある手法だけど。
0187デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG中の人などいない!
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNGえんばいろめんと でぃびじょん
0193デフォルトの名無しさん
NGNGアラインメント
0194190
NGNGありがとうございました。
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNGWin32APIですか?
0199デフォルトの名無しさん
NGNGC言語にそのような機能はありません。
ただし、多くのOSがそういうサービスを提供しているので、
その場合はCで取得可能でしょう。
(ミリ秒を取得するって変な日本語ですけど。)
0200デフォルトの名無しさん
NGNG前者はお手軽後者は高精度
0201デフォルトの名無しさん
NGNGめっちゃありがとう。
勉強になります。
0202デフォルトの名無しさん
NGNGROM=コード部
Heap領域=アロケートにより取得するメモリ
stack部=Auto変数や引数
静的領域=staticな変数やグローバル変数
RAM=Heap領域+stack領域+静的領域
という理解で正しいでしょうか?
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNG違います。
違いすぎてフォローできません。
なぜ、ROMやRAMが出てくる?
0205デフォルトの名無しさん
NGNGROM/RAMはハードの用語
プログラムやデータはすべてRAM=メモリ上に乗っている。
ただしコードの乗っているメモリにはCPUの機能として実行可能フラグがセットされたりする。
なのでRAMだけど書き換え不可。
後は表現が微妙だけど大筋であってる。
0206デフォルトの名無しさん
NGNGGetTickCountよりtimeGetTimeの方がよくない?
0207デフォルトの名無しさん
NGNGライブラリがwinmmだから面倒。
計測にはQuery*のラッパークラス使うし。
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG僕の職場では、普通にRAMが足らないとかROMがあと残り3kとかいう話が出るんですが
組み込みだからということですか?普通にWin上でやったら全てRAM上に取られるということですか?
0210デフォルトの名無しさん
NGNGいろいろ調べてみたのですが、fseekとかなのかな。。
0211デフォルトの名無しさん
NGNGすれ違い。
まぁ、組み込みだろうな。今時のPCじゃそんな会話は出ない。
0212デフォルトの名無しさん
NGNGfseekする前にfgetposで場所を覚えておく。
で、fseekしたあとにfsetposで戻る。
ところで、二度目にfseekする前にその一行が変わるのか?
0213212
NGNG0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNG目的を果たす処理を聞くのではなく
自分の考えたついたアホ処理を聞いて目的は言わない。
このスレの流れなのでスルーして下さい。
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNGそんな職場にいながら、どうしてRAMやROMを理解できないのか、
オレにはそちらの方が不思議だ。
コンピュータの一般的知識からやり直した方がいいぞ。
0218デフォルトの名無しさん
NGNG>プログラムやデータはすべてRAM=メモリ上に乗っている。
どさくさに紛れて適当なこと言うな。
ROMにだってプログラムやデータは載るだろ。
0219デフォルトの名無しさん
NGNG微妙にスレ違いだし。
0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNGじゃあ、ROMにあるプログラムやデータは、
実行時にはのっていないことになるのか?
0222デフォルトの名無しさん
NGNGCといったらWindowsに決まってんだろぼけ。
0223デフォルトの名無しさん
NGNG何故、Cと言ったらWindowsなのかと(ry
0224デフォルトの名無しさん
NGNGマスクROMに載っているコードだって実行できる。
3人ともそれを知らない世代なんだろうな。
0225デフォルトの名無しさん
NGNGバスに命令コードを流せる「何か」であれば
譬え紙テープリーダだろうと直接実行できる。
>3人ともそれを知らない世代なんだろうな。
世代とは関係なく、ハードウェアに頓着してないだけかと。
そんなことよりスレ違いですよと。
0226デフォルトの名無しさん
NGNG※空白の部分はスペース
というデータより【26-MAR-2001 19:00:00】の部分を抽出したいのですが
csBuff.Format(csBuff.Mid(csBuff.Find(" ")));
csBuff.Format(csBuff.Mid(csBuff.Find("/")));
csBuff.Format(csBuff.Mid(csBuff.Find(" ") + 8));
csBuff.Format(csBuff.Mid(0,csBuff.Find("[") -2));
で文字を探した時、始めはデータの空白が8桁で固定だと思って安心していると
空白が9桁のものが稀にありバグが発生しました。
スペースが8?か9?10?あったとしてもうまいこと的確に【26-MAR-2001 19:00:00】
を取得するコードを教えてください。
0227デフォルトの名無しさん
NGNGarray[0] = 何も入っていない
array[1] = 4
array[2] = 7
array[3] = 18
array[4] = 2
array[5] = 10
という配列があるとき、array[1]~array[5]だけを降順にソートして、その順に要素数名だけを出力するにはどうすればよいのでしょうか?
0228デフォルトの名無しさん
NGNG>array[0] = 何も入っていない
「何も入っていない」と言うのはあり得ない。
必ず何かしらの値が入っている。
0229デフォルトの名無しさん
NGNG>CString csBuff = "AAAAAAAAAAAA 03/26 26-MAR-2001 19:00:00 [TEST$AAAAA]"
明らかにスレ違い
0230227
NGNG返信ありがとうございます。
すみません。間違えていました。array[0]には0が入っています。
0231デフォルトの名無しさん
NGNGC/C++の宿題は私におまかせくださいませ 23代目
http://pc5.2ch.net/test/read.cgi/tech/1085149383/
0232デフォルトの名無しさん
NGNGArrayをソートした後array[1]~array[5]に戻して
出力するみたいなやり方もあるぞ。
0233デフォルトの名無しさん
NGNGarray[1]〜array[5] だけをソートし、
array[1]〜array[5] だけを出力すればいいだろ。
0234デフォルトの名無しさん
NGNGarray に要素数を関連づけたリストをソートして、それを出すしかないんと?
0235227
NGNG説明不足でした。失礼しました。
C言語初心者なもので、>>234さんのおっしゃる意味がよく分かりません。
具体的にどうするのでしょうか?
0236デフォルトの名無しさん
NGNGC言語初心者じゃねーだろ。C言語知らねーんだろ?
まずは入門書買えよ。
0237デフォルトの名無しさん
NGNG以前ほぼ同じ問題をここで見たよ。回答もあったよ。
というわけで、http://nssearch.hp.infoseek.co.jp/clang/から探そう。
0238デフォルトの名無しさん
NGNGint array[] = {0,4,7,18,2,10};
int no[5];
int compar(int *a, int *b)
{
return array[*a]-array[*b];
}
int main()
{
int i;
for(i=0;i<5;i++) {
no[i]=i+1;
}
qsort(no, 5, sizeof(int), compar);
for(i=0;i<5;i++) {
printf("%d\n", no[i]);
}
return 0;
}
0239デフォルトの名無しさん
NGNGスレ違い。宿題スレ行け。
0240デフォルトの名無しさん
NGNG黙れチンカス
0241デフォルトの名無しさん
NGNGなんだと、この大統領
0242デフォルトの名無しさん
NGNG暴れんなイケメン。
0243デフォルトの名無しさん
NGNG10の-4乗の書き方は、10e-4、10*e-4、1e-4、1*e-4、e-4、
の5つうちどれでしょうか?
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNGreturn FALSE;
else if(10の-4乗の書き方==10*e-4)
return FALSE;
0246243
NGNGありがとうございます。
1e-4を1*e-4などに書き換えると何故か上手いぐあいに
動くように見えたので疑ってみました。
0247デフォルトの名無しさん
NGNGその5つの中から答えなきゃダメなのか?
pow(10, -4) だと、ダメなんだろうな。
0248デフォルトの名無しさん
NGNG1.0e-4 と書かないとダメなんだけど、これって処理系依存?
あと、1*e-4 は「変数eの値に 1を掛けて 4を加える」全く違う式。
0249248
NGNG0250243
NGNGいろいろとありがとうございました。
powでもいいけど、1.0e-4を使って正確にやってみます。
0251デフォルトの名無しさん
NGNG>ウチでは 1e-4はエラーになる。
>1.0e-4 と書かないとダメなんだけど、これって処理系依存?
エラーになるほうがおかしいと思う。
ISO/IEC 9899:1999 6.4.4.2参照。
0253デフォルトの名無しさん
NGNGarray + 1を渡せばいいだけだろ?
0254デフォルトの名無しさん
NGNG収束判定定数ε=0.00001とする。また計算回数の違いを考察しろ。
これって誰か答えおしえていただけませんかね?
0256デフォルトの名無しさん
NGNGタブコントロール上のダイアログにフォーカスがある状態で
ESCキーを押すと、そのダイアログのみ閉じてしまいます。
親のダイアログを含めて閉じる方法はどうすれば良いので
しょうか? OnCancel()から親ダイアログにWM_CLOSEを発
行してもダメでした。
0257デフォルトの名無しさん
NGNGCPropertySheet
CPropertyPage
これ以後はスレ違い
http://pc5.2ch.net/test/read.cgi/tech/1074104008/l50
へどぞー
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNG香具師も日本語なのか
0261デフォルトの名無しさん
NGNG#include <stdio.h>
の2重インクルード防止ってどうやるんだっけか?
0262デフォルトの名無しさん
NGNGttp://unix.rulez.org/~calver/pictures/bart.gif
0263261
NGNG意味わからん
マジおしえてくれや
0264デフォルトの名無しさん
NGNG標準ヘッダは大抵二重インクルードガードされている。
0265デフォルトの名無しさん
NGNGお前には何語に見えたんだ?
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNG:> こんなのあるんだけどなに?
◎ベース・ポインタ演算子:>をサポートしました.とは書いてあるけど,
それ以外に本文中には説明ないし.
Ver6.0 Microsoft C 初級プログラミング って本なんだけどさ.
MSCの独自仕様っぽいけど気になるYo!
0268デフォルトの名無しさん
NGNG'
0269267
NGNGでも,表のなかと注の両方が:>なんだよね.
しかも,表の中の構造体の欄に->もちゃんとあるんだよね.
うー気になる.
忘れるか.
0270デフォルトの名無しさん
NGNGセグメント処理関係かな。VC6++じゃなくてMSC6なら時期的にもね。
0271デフォルトの名無しさん
NGNGbasedポインタにそんなんあったっけ?
0272デフォルトの名無しさん
NGNGその構造体の最初のメンバー?
0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNGja-2ch
0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNGやってみろや
腐ってもム板の住人だろうが
ソースくらい示したらどうなんだ
0277デフォルトの名無しさん
NGNGlq_JP なら某OSの設定項目にあるが
0278デフォルトの名無しさん
NGNG勝手に作った地域コードは3文字じゃまずいか…
ja-2channel で
0279デフォルトの名無しさん
NGNGx86系CPU向け独自仕様。
って、ベース・ポインタ演算子って書いてあるじゃん。
0280初心者
NGNG変数 > 0 とか
0281デフォルトの名無しさん
NGNG0282初心者
NGNGmain () {
int i;
printf("金くれ\n");
do {
int = 0;
printf("金額は?>");
scanf("%d", &i);
while(getchar() != '\n') { }
} while(( i < 0) || (10000 < i));
printf("金額は%d円です\n". i);
return 0;
}
文字を入力すると0円になる。。
0283デフォルトの名無しさん
NGNGそれコンパイル通らんだろう。
0284デフォルトの名無しさん
NGNGscanf()は目的に適った入力しか読まない。
この場合は数値のみ。
したがって、(数字以外の)文字を入力したらその入力を捨てずに終了する。
結論、scanf()を使う限り数字以外の文字を入力できない。
対処方法、scanf()使うなや。
0285デフォルトの名無しさん
NGNGまずここだと思うけど。
0286デフォルトの名無しさん
NGNGいや、まず、ここだな。
空白あけるなよ ぼけ。
改行しろよ ぼけ。
0287デフォルトの名無しさん
NGNG空白あけろよ ぼけ。
0288デフォルトの名無しさん
NGNGmain()
{
int i;
printf("金くれ\n");
do {
printf("金額は?>");
scanf("%d", &i);
} while (i < 0 || 10000 < i);
printf("金額は%d円です\n", i);
}
0289267
NGNGやっぱり,アセンブラのbpに相当するもの?
しっかし,どうやって記述するんだ? *(:>+4)とか?
なんか違う気がする・・・
あの頃って既にインラインアセンブラ使えなかったっけ?
それでbpやら引っ張ってきてた覚えがある.数年前だから曖昧だけど.
0290デフォルトの名無しさん
NGNGちがうよ。セグメントに関する物。
__basedというキーワードが有るからMSDN見れ。
0291267
NGNGMSDQN見た.
こんな機能があったのかー サンクス.
ということは
void p_base:> *p_offset ・・・記述はいいや.もう使うこともないだろし.
0292初心者
NGNG} while ((i < 1) || (10000 < i));
0を1に変えて文字を入力すると
金額は?> と出て再入力となってちゃんと出来ます
0293デフォルトの名無しさん
NGNGscanfが変換に失敗したので、iの内容が変更されてないだけだ。
0294test
NGNGint main(void)
{
printf("test\n");
printf("test\n");
return 0;
}
0295test
NGNGint main(void)
{
printf("test\n");
return 0;
}
0296test
NGNG0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG0299(^-^)
NGNG#include <stdlib.h>
int main(void){
int i;
char money[100];
printf("金くれ\n");
do{
printf("金額は?>");
scanf("%s", money);
i = atoi(money);
}while(( i <= 0) || (10000 < i));
printf("金額は%d円です\n", i);
return 0;
}
こういうことかな・・・。
>>297 ごめんなさい。
0300デフォルトの名無しさん
NGNGスタックもぼっこわすし可能性あるし・・・
第一scanf 使うなっていわれなかった?
0301デフォルトの名無しさん
NGNG>スタックもぼっこわすし可能性あるし・・・
scanf("%100s", money);
でスタックがぼっこわされなくなったりはしない?
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNGscanf貶すのは脱初級者レベルだからほっときなよ。
0305デフォルトの名無しさん
NGNGscanfは禁止だ。
0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNG誰に言ってるのかしらんが、ここのスレタイを100回読め。
そして、2度とここへ来るな。
0308デフォルトの名無しさん
NGNGうざい
0309(^-^)
NGNG#include <stdlib.h>
int main(void)
{
int i;
char money[100];
printf("金くれ\n");
do{
printf("金額は?>");
gets(money);
i = atoi(money);
}while(i <= 0 || i > 10000);
printf("金額は%d円です。\n", i);
return 0;
}
>>302, 303, 305
こんな感じでしょうか?
またまたスタック壊してしまいますけど(^^;
0310デフォルトの名無しさん
NGNGman gets して、最後に fgets を
つかいなよって書いてないかい?
0311デフォルトの名無しさん
NGNGスレタイ読めてねーのはてめーだろ
scanf禁止のどこがCの話か冷静に吟味してみろよ
このスレでも何度も議論されているが
別にCでなくたってできる議論ばっかだぜ
それがわかんねーやつを置いて誰が初心者だよ
バカも休み休みほざきな低脳
0312デフォルトの名無しさん
NGNG一応安全か?
もうくんナよ
0313デフォルトの名無しさん
NGNGnum=atoi(money);とかけよ。
0314(^-^)
NGNGありがとうございます。
解答をこれからじっくり読ませていただきます。
fget()ってヒントからfopenとかfputとか調べていました(^^;
stdinとかstdoutってあるんですね。(^-^)
0315デフォルトの名無しさん
NGNGgets():使うな
0317デフォルトの名無しさん
NGNGfscanf():使うな
sscanf():使いこなせば結構便利
gets():使うな
fgets():使いこなせば結構便利
0318デフォルトの名無しさん
NGNGscanfは禁止だ。
0319デフォルトの名無しさん
NGNGは禁止だ。
0320デフォルトの名無しさん
NGNG理由が説明できないくせにシッタカこいてんじゃねえよクズ
0321デフォルトの名無しさん
NGNGシッタカは禁止だ。
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNGお前の発言がつまらん
だったらお前がネタ出せよ口だけ厨房
0324デフォルトの名無しさん
NGNGsage厨は放置せよ
0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNG教えてくださいと言え。
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNGそんなこと頼んでねえよ耳が腐るだけだろオマエの説明なんて
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNG教えてください。
さぁ教えろ
0331デフォルトの名無しさん
NGNG勝手な俺ルールを一般人に強制すんなハゲども。
0332デフォルトの名無しさん
NGNG総員、袋叩き準備せよ
0333デフォルトの名無しさん
NGNGあと1週間ほどしたらプロバイダよりメールが来ると思いますので、
それをよく読んで、thebbsの管理者に謝罪文を送ってください。
謝罪がこない場合は、プロバイダの使用停止が決定されます。
0334デフォルトの名無しさん
NGNG木又
イ戈
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNG↓これ使いなさい
\おーだんごーまーるまるー /
\ おーだんごーまーるまるー /
. \ おーだんごーまーるまるー/
∧_∧ ∧_∧ ∧_∧
(・∀・ ) ( ・∀・) ( ・∀・)
⊂ ⊂) ( ) (つ つ
(__(_) (__)_) (__(_)
0341(^-^)
NGNG僕は自分とは全然違うソースを見て・・・こんな風にもできるんだって
結構、感動したのですが・・・。
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNGさっきの元気はどこいった?w
0344デフォルトの名無しさん
NGNGscanfってのは、"%d"と指定した場合に、数字以外の文字なんかがが入力され
たときの対処が全然できてないからです。(多分数字以外だと強制終了)
だからといって"%s"にしても同じくエスケープなどの制御コードなんか叩いち
ゃうと一緒で、キーボードバッファは残っちゃうしろくなことはない関数です。
数値や文字入力に適した標準関数はないので、信頼性のあるプログラムを作る
のならscanfに替わる関数を自作するしかないですね。
0345デフォルトの名無しさん
NGNGニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニ
ニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニ
ニヤニヤニ ∧_∧ ニヤニ ∧_∧ニヤニヤニヤ ∧∧ニヤニヤニ
ニヤニヤニ( ´∀`)ニヤニ( ・∀・ )ニヤニヤニ (゚Д゚,,)ニヤニヤニ
ニヤニヤニ( )ニヤニ( )ニヤニヤニ.(| |)ニヤニヤニ
ニヤニヤニ| | |ニヤニヤ| | |.ニヤニヤニヤ| |〜ニヤニヤ
ニヤニヤニ(_)_)ニヤニ..(_∧_)ニヤニヤニ し'Jヤニヤニヤニ
ニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニ
ニヤニヤニ∧∧ニヤニヤニヤ>>344ニヤニヤニヤニヤニヤニヤニヤニヤ
ニヤニヤ ( *゚ー)ニヤニヤ (`Д´)ニヤニヤニヤニ ∧∧ニヤニヤニ
ニヤニヤニ.| ∪|ニヤニヤ (∩∩)ニヤニヤニヤミД゚,, 彡ヤニヤニ
ニヤニヤ〜| |ニヤニヤニヤニヤニヤニヤニヤニ ミ ミニヤニヤニ
ニヤニヤニ し'Jニヤニヤニヤニヤニヤニヤニヤニヤミ ミ〜ヤニヤ
ニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤし'Jヤニヤニヤニ
ニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニヤニ
0346デフォルトの名無しさん
NGNG大部分 (プだが最後の一行だけぎりぎり及第点やる
0347デフォルトの名無しさん
NGNGすべてはこれに集約されるわけだが
学習中の初心者や宿題などにまで言及して
いちいちケチをつける理由ってなんだ?
0348デフォルトの名無しさん
NGNGばーか、偉そうにこいてるんじゃねぇよ。
0349(^-^)
NGNG僕の買った本にはstdinとかstdoutなどの記述もなかったのでもう少し詳しそうな
本を探してみます。
http://www.1point.jp/~book_2ch/program/c_lang.html
0350デフォルトの名無しさん
NGNG宿題だから\nまで飛ばせって前提が何の議論も経ずにまかり通るわけだな
0351デフォルトの名無しさん
NGNGことってできないんですか?
0352デフォルトの名無しさん
NGNGプロの世界まできても使うクサレ野郎を少しでも少なくするためだ
0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNG読んだ後に切り取ることがそんなに面倒ですか?
0355デフォルトの名無しさん
NGNGプロの世界に来てから言えw
0356デフォルトの名無しさん
NGNGおまえ、はやく就職できるといいな。ムリだろうけども。
0357デフォルトの名無しさん
NGNGスタックの勉強をしていて、たとえば標準入力から数値を入力し、
int型のスタックに値を積んでいくと言う宿題があるとする。
この場合入力分の完全性ではなく、スタックの動作が問題の本質であって
文字入力なんてのは即席で立て付けの悪いものでも問題ないわけだ。
だが、本質ではない入力時のチェックのために余計な気を回すことが
必ずしも正しいとはいえないだろう。また、scanfを回避するだけで
完全なものになるという考えも大きな間違えだ。
fgets->sscanf "%d"に5aという入力を与えた場合、
5と言う値が得られるのが正しいと誰が言い切れる。
0358デフォルトの名無しさん
NGNGstrはストルと読みます
arrayはアライと読みます
forはフォウと読みます
fgetsはフゲットスと読みます
scanfはスキャンフと読みます
0360デフォルトの名無しさん
NGNGsscanfに置き換えるだけで満足してるならそれこそプロを語る資格なんて無いと思うよ。
それとも、scanfを禁止している人間は初心者に対して
入力された文字列の完全なチェックを求めているのか?
0361デフォルトの名無しさん
NGNGatoi()使えよ。
0362デフォルトの名無しさん
NGNGむしろ strtol()、strtod() だな
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNG空想力が豊かですね。オレのソースを見た事があるのか。
0365デフォルトの名無しさん
NGNGatoi()使えよ。strtol()やstrtod()もいいぞ。
むしろ、こっちのほうが初心者が余計な気を使わずに組めると思うのだが、どうよ?
0366デフォルトの名無しさん
NGNGおたふくのヤシか?
0367デフォルトの名無しさん
NGNG時代とともに複雑化するhello, worldを思わせる書き込みだな。
0368デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNG欲しい値がintひとつならそれもいいと思うよ。
そうでないならたかが宿題に、規模は小さくても構文解析を求めているわけだし、
「入力はscanfを使うものとする」という条件にすらケチをつけるアホもたまに沸くし。
0372デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1085564875/
0373デフォルトの名無しさん
NGNG> }while(i <= 0 || i > 10000);
空白あけろ ぼけ
0374デフォルトの名無しさん
NGNGなわけねーだろ ぼけ。scanfつかうな
0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNGだから、「その2つ以外」です > 何使えばいいか。
その2つ除いても100個以上もあるんだから、「その2つが使えないともう使うものがない!」なんてことはないよね?
0377デフォルトの名無しさん
NGNG> たときの対処が全然できてない
ここまではあってる。
> からです。
ここですでに違う。それがメインの理由ではない。
> (多分数字以外だと強制終了)
ここで大幅減点
0378デフォルトの名無しさん
NGNGsocketからの入力につかうんでもなければ大事にはならん。
0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNGscanfを使ってはならない一番の理由はなぁ、俺が使ったことないからだ。
0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG0383ビル・ジョブス
NGNG悔しい思い出がある。それから20数年経った今、君たちの議論はとても微笑ましく想える。
そしてコードは常にエレガントに、ライブラリ関数は子供だと思ってもっと愛してやれ。
出来の悪い子(関数)ほど可愛いぞ。
よって時と場合によって、使っても良しとする。
0384デフォルトの名無しさん
NGNGC言語を始めようと思うのですが、
まず何が必要になりますか?
0385デフォルトの名無しさん
NGNG調べる力
0386デフォルトの名無しさん
NGNGscanfに対する畏敬の念
0387デフォルトの名無しさん
NGNGはっきり言う。おまえには無理だからやめとけ。
0388デフォルトの名無しさん
NGNGまたお前か
厨房は早く寝なさい
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNGsrand(time(NULL));
for (loop = 0;loop<4; loop++)
{
i++;
number = rand()%4; /* 乱数発生 */
one[number] = i;
}
とやると重複してしまいます。
重複しないようにするにはどうしたらいいでしょうか?
0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNG愛と、無料コンパイラと、テキストエディター。
そして、先人の書いた、チュートリアル一式。
つーか、俺も、今さっき、ボーランドで無料コンパイラ落としたところ。
まだ、インストールもしてない。
0394デフォルトの名無しさん
NGNGあとは自分げ考えろ!
srand(time(NULL));
for (i = 0; i < 4; i++) {
do {
number = rand() % 4 + 1;
for (j = 0; j < i - 1; j++) {
if (one[j] != number)
break;
}
} while (j == i - 1);
one[i] = number;
}
0395ビル・ジョブス
NGNG質問の意図はまさか”道具”ですか?じゃないですよね・・
C言語を効率的良く学習するにはプラットフォームの知識が欠かせません。
WindowsならWIN32と並行して学習、制御系なら制御したいデバイスの知識。
C言語を学習するのが目的じゃなくて、その先に何かあるはずだから、
C言語はただの道具として考えたほうがいい。
その結果、使えば使うほど欲も出てきて上達します。言語仕様論なんかは
趣味の世界だから立ち入らないほうが無難ですね。
C言語よりもWIN32 APIのほうが遥かに難解ですよ。まだ文献も少ない頃、
1つのAPIで3日間位悩んだ事もありますから。
ちなみに昔はCreateDIBSection、最近ではIDiscMasterのIStorageあたり。
まぁハマリAPIに中ると結構深いので、気分転換しながら頑張ってください。
0396デフォルトの名無しさん
NGNGお馬鹿。そんな例を示す恥を知れ。
0397391
NGNGあと配列に入れてからランダムに並び替えってできるんですか?
0398デフォルトの名無しさん
NGNGfor (loop = 0;loop<4; loop++)
{
unko = rand()%4+1;
do{
number = rand()%4+1; /* 乱数発生 */
}while(number!=unko);
one[loop] = number;
}
こんなんじゃ動かんかね?
知らんけど。
0399デフォルトの名無しさん
NGNG>while(number!=unko);
while(number==unko);
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNGint number;
int slot[4];
int flag = 0;
int idx = 0;
while(idx < 4)
{
number = rand() & 0x3;
if(!(flag & (0x1 << number)))
{
slot[idx++] = number + 1;
flag |= (0x1 << number);
}
};
こんなのはどう?w
0402ビル・ジョブス
NGNGint i, array[4] = {1, 2, 3, 4};
srand(time(NULL));
for (i = rand() % 4; i; i--) {
int t, j = rand() % 4, k = rand() % 4;
t = array[j]; array[j] = array[k]; array[k] = t;
}
0403デフォルトの名無しさん
NGNG1〜4だけだと微妙だけど
数が多ければ
一旦リスト作って
ポップして取り出していくのは普通につかうのでは。
0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG0407405
NGNG↑
なんかこう書いただけでエラー言われるんですが
0408デフォルトの名無しさん
NGNGと、毎回かかなきゃいけないのか?つうか、エラーの内容見ろよ
0409405
NGNG実際は
enum test{test_1, test_2};
extern test _test[10];
みたいな事やるとエラーになるんです
内容は、外部シンボルenum testが見つかりません、というものです
0410デフォルトの名無しさん
NGNGソースもエラーメッセージも、コピペしろ。自分の言葉に直すな。
隠したい情報があれば、置換してもいいから。
0411デフォルトの名無しさん
NGNGわかりました。以下はコピペです
const int MAP_SIZE = 15;
enum Panel_Name{PANEL_NONE,PANEL_SEA,PANEL_FOREST,PANEL_GROUND};
extern Panel_Name map[MAP_SIZE][MAP_SIZE];
pazzle01-20040530 error LNK2001: 外部シンボル ""enum Panel_Name (* map)[15]" (?map@@3PAY0P@W4Panel_Name@@A)" は未解決です。
pazzle01-20040530 fatal error LNK1120: 外部参照 1 が未解決です。
0412デフォルトの名無しさん
NGNGconst int MAP_SIZE = 15;
enum Panel_Name{PANEL_NONE,PANEL_SEA,PANEL_FOREST,PANEL_GROUND};
enum Panel_Name map[MAP_SIZE][MAP_SIZE];
な使い方でいいんじゃない?
//externを使う必要があるのか謎だが
0413デフォルトの名無しさん
NGNG宣言だけで、mapの定義してないんじゃない?
0415デフォルトの名無しさん
NGNGいや、一番の問題は extern を理解していない事だろ。
0416デフォルトの名無しさん
NGNGとりあえず乱数を信じて(まあまあ)これで手を打たないか?
for(i = 0; i < 4; i++) {
int t, r = rand() % 4;
t = array[i]; array[i] = array[r]; array[r] = t;
}
0417デフォルトの名無しさん
NGNG返値が0だった時に、実際に何バイトは読み込んだのか、ということは
どうやったらわかりますか?
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG戻り値を見ろ。
戻り値が0なら、実際に読み込んだのも0バイト、つまり全く読み込まれてない。
0420デフォルトの名無しさん
NGNGああ、そうだったんですか
ありがとさん
0421デフォルトの名無しさん
NGNG「_base」が指してる標準入出力バッファって
プロセス内(論理メモリ空間内)に配置されているわけだから
標準入出力バッファ(ストリーム)ってプロセスごとに保有してると考えていいんですよね
0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNGただし freadの戻り値は個数を返すから、
第2パラメタ を 1、第3パラメタにバイト数
として呼ばないといけないよ。
0424デフォルトの名無しさん
NGNG{
int a[10]={10,1,2,3,4,5,6,7,8,9};
int *p=a;
int i;
for (i=0;i<10;i++){{
printf("*p -> %d\n",*p);
p++;
i++;
}
}
p++が*p++でも同じ結果になるんですけど何故ですか?
pはa[0]だから++すると配列移動するのは分かるんですけど
*pってa[0]の中身の10じゃないんですか?
0425デフォルトの名無しさん
NGNG{
int a[10]={10,1,2,3,4,5,6,7,8,9};
int *p=a;
int i;
for (i=0;i<10;i++){
printf("*p -> %d\n",*p);
p++;
}
return 0;
}
間違えましたこっちでした・・・
0426デフォルトの名無しさん
NGNG演算子の優先順位。
インクリメント演算子よりも逆参照演算子の優先度が低いため、
*p++は、pをインクリメントして逆参照する。
0427デフォルトの名無しさん
NGNGありがとうございます!!
0428デフォルトの名無しさん
NGNGunsigned char *buf;
buf = malloc(50);
unsigned char c1 = 'a';
unsigned char c2 = 'b';
*buf = c1;
*buf++ = c2; //ここが駄目のようです
puts(buf);
free(buf);
return 0;
}
buf[1] = c2;にすると問題ないのだけれど
*buf++ = c2;っぽい書き方(うまく説明できない・・・)は
どう書けばいいですか?
0429デフォルトの名無しさん
NGNGmalloc使うときは先頭はなしちゃタメタメあるね
0430デフォルトの名無しさん
NGNG要するにfreeするために先頭アドレスがまた必要になる。
0431デフォルトの名無しさん
NGNGputs の時点で buf は文字列の先頭をさしていない。
あと *buf++ = c2 だと、*buf に上書きしてから、ポインタ進めているぞ。
0433デフォルトの名無しさん
NGNG一応これなら動くけど、糞なやり方。
間違ったままでは悔しいから書き込んどきます。
for(cnt=0;cnt<4;cnt++)
{
one[cnt]=rand()%4+1;
end|=(shift<<(one[cnt]-1));
if(!(OldKey^end))
one[cnt]=0;
OldKey=end;
}
for(cnt=0;cnt<4;cnt++)
{
if(one[cnt]==0)
{
for(;one[cnt]==0;idx++)
{
if(!((end>>idx)&0x01))
one[cnt]=idx+1;
}
}
}
0434デフォルトの名無しさん
NGNGまず、出力に関係無い。メモリリークの問題。削っちゃダメ。
mallocの戻り値を別の変数に入れておいて、
freeにそれ渡せ
0435428
NGNGunsigned char *buf, *buf2;
buf = malloc(50);
buf2 =buf;
unsigned char c1 = 'a';
unsigned char c2 = 'b';
*buf = c1;
*buf++;*buf++ = c2;
puts(buf2);
//free(buf);
return 0;
}
これで出来ました!
0436デフォルトの名無しさん
NGNG【 変数宣言 】
char end=0x00;
char shift=0x01;
char OldKey=0x0F;
int idx;
int one[4];
int cnt;
0437デフォルトの名無しさん
NGNGまたまた (プ
動きゃいいって考えの香具師にはつきあってやらん
0438デフォルトの名無しさん
NGNG文字列なんだから、最後は'\0'でデミっとけよ。
0439デフォルトの名無しさん
NGNG#include <stdlib.h>
int main()
{
unsigned char *buf, *ptr;
ptr = (unsigned char *)malloc(50);
buf = ptr;
unsigned char c1 = 'a';
unsigned char c2 = 'b';
*buf = c1;
*++buf = c2;
*++buf = '\0';
puts((const char *)ptr);
free(ptr);
return 0;
}
ああ、俺もうだめぽすぎ('A`)精進しないと
0440428
NGNGint main(){
unsigned char *buf, *buf2;
buf = malloc(50);
buf2 =buf;
unsigned char c1 = 'a';
unsigned char c2 = 'b';
*buf++ = c1;*buf++ = c2;*buf ='\0';
puts(buf2);
free(buf2);
return 0;
}
と、こんな感じですか?
0441デフォルトの名無しさん
NGNGそれじゃ、正常にfreeされねーってばよ。
0442441
NGNG0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGchar *buf = malloc(50); // バッファを確保する。
char *p = buf; //バッファ先頭アドレスをポインタ型で取得
*p = c1;
*++p = c2;
*++p = '\0';
まっとうな神経してたら、こんな感じだろ。
0446デフォルトの名無しさん
NGNGお前の顔気持ち悪い
bufよりhen
0447デフォルトの名無しさん
NGNGint main(){
unsigned char *p, *buf;
unsigned char c1 = 'a';
unsigned char c2 = 'b';
p = buf = malloc(50);
*p++ = c1; *p++ = c2; *p ='\0';
puts(buf);
free(buf);
return 0;
}
0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNG>>450 ちがうね
0453448
NGNG0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNGmain(int argc, char **argv, char **env) とかいろんな引数が許されるの?
C++なら関数オーバーロードあるけど、Cじゃそんなのないし。
0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNGret = func(a, b, c);というソースから作ったオブジェクトファイルと
void func();から作ったオブジェクトファイルはリンク可能。
0458455
NGNGなるほど。すごく分かりやすい一行だ。ピンときたよ。
0459デフォルトの名無しさん
NGNGmain関数の終了時に
正常終了かエラー終了か
そのexeをキックした他アプリに知らせたいんだが
一般的には、エラーは0以外?それとも0?
まぁ別にキックしたアプリ側で、どうとでも判定できるんだが
一般的な定石ルールってあるのかと。
0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNGサンクス
やはり0で正常終了
0以外でエラーの種類てな感じでしょうか。
いや、たまたま幾つかのアプリを
連続でキックしてある事をしようとしたんだけど
正常終了が1でエラーが0のやつが
幾つかあったので、決まり事ないのかなぁと思ったもので。
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNG0465デフォルトの名無しさん
NGNG#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
0466デフォルトの名無しさん
NGNGのような条件式を
if(a == ??)
のような感じにまとめる事はできないのでしょうか?
というか以前何かのソースで見たのですが思い出せません
わかりにくくてすいませんがよろしくお願いします
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNG気がつきませんでした
ありがとうございました
0469デフォルトの名無しさん
NGNG1つの式を2度以上評価させるようなフレーズのマクロ化は危険だぞ
0470デフォルトの名無しさん
NGNG> プロトタイプ宣言が必要ないから。
ANSI-C 以前から無いか?
0471デフォルトの名無しさん
NGNG>>451はあってるぞ
a = a ^ 1;
ってことだから
1と排他的論理和とってんじゃないの
0472デフォルトの名無しさん
NGNG欲嫁
0473デフォルトの名無しさん
NGNGみたいな記述が許される言語はキモイと思います!
0474デフォルトの名無しさん
NGNG数値ならswitch/caseでできる。それ以外に一般的な方法は無い。
書くのが面倒という理由でマクロ化するのは論外。
0475デフォルトの名無しさん
NGNGif (d) { ... }
0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNGWin32のBOOLではその保証は無いな
0479デフォルトの名無しさん
NGNG数値なら>>474の言うとおりswitch
文字ならstrchrか(if(strchr("xy",a)) こんな風に)。
それ以外に一般的な方法は無い。
0480479
NGNG0481デフォルトの名無しさん
NGNGベンダーによって違うんじゃないのか・・・
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNGベンダに問い合わせたか?
買った店、出入りの営業、公式ページ、etc...
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNGどこでみれますか?
0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNG0488ビル・ジョブス
NGNGランタイムライブラリソースをインスト。
見てもおばけマクロがいっぱい居るから難解だよ。
0489477
NGNG*stdio*で検索してたんだが、fread.cだったようで・・・。
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG何で*stdio*で検索すんの? *fread*だろ
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG・ビジネスマナー
0496デフォルトの名無しさん
NGNGドグラ・マグラ
0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG不本意ながらCのが好き
不本意ながらね
0499498
NGNG0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNGお前のせいで500GETできなかったじゃねーか
死ね
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG0504500
NGNGint main(void){return;}
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNGあからさまな釣りに釣られ過ぎ。
0509デフォルトの名無しさん
NGNG凄いですね(^^
何て読むのかなと思いました!!何々?
レツーン?マイン?イント?何なのか分かんねーw
0510デフォルトの名無しさん
NGNG何か嫌なことでもあったか?
0511498
NGNG>>509
言って欲しいようだな
こちらへどうぞ
http://pc5.2ch.net/test/read.cgi/tech/1085915001/
0512デフォルトの名無しさん
NGNG自分で作ったプログラムなんですが、スタックメモリが足りないらしく、エラーが起こります
プログラムを変えないでそのまま実行したいので、スタック領域の増やし方を教えてくださいおねがいします
WindowsXP Home
MS VC++で作成したプログラムです。
0513498
NGNG空気読め。
0514デフォルトの名無しさん
NGNGプログラムを変えるのが先だ。
0515498
NGNG騙るなヴォケ
0516512
NGNGそういう意見はよく聞きますが、これは学校で出された課題なのでプログラムを変えることはできません
0517デフォルトの名無しさん
NGNGCL.EXEのオプションを調べれ
いじょ
0518デフォルトの名無しさん
NGNGCL.EXE と LINK.EXE な
0519512
NGNGすいません
それって何でしょう?
どこで設定できるんでしょうか?
0520デフォルトの名無しさん
NGNGまずはバグを疑え。
次に設計を見直せ。
0521512
NGNGどこでオプションを設定できるのでしょうか?
>>520
おそらくバグはありません。
スタックメモリをあまり使わないように数値を変えたプログラムなら普通に動きました。
0522デフォルトの名無しさん
NGNG宿題スレか機種依存OKな所へ行っておくれ
0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNG( #)←これ
0526デフォルトの名無しさん
NGNG(^_^#)←これ
0527デフォルトの名無しさん
NGNGあなたがきてからこのスレの質が下がっている。そのことを自覚してください。
0528デフォルトの名無しさん
NGNGならそれでいいじゃん。
無駄にスタックを浪費するプログラムを組むのは良くないよ。
0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNG悪いこといわんから、変な答えをするのはやめた方がいい。。。
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNGデバック用の他に、機種依存コードを書くときにも使用する
#if BITS_PER_LONG == 32
#define IS_SETLKW64(cmd)((cmd) == F_SETLKW64)
#else
#define IS_SETLKW64(cmd)((cmd) == F_SETLKW)
#endif /* BITS_PER_LONG == 32 */
とか
0535デフォルトの名無しさん
NGNGそれ以外はCのコンパイラに対する命令
0536デフォルトの名無しさん
NGNGいやあんた、煽られてむかついてるだけやんw
0537デフォルトの名無しさん
NGNGif はコンパイラがごにょごにょする
#if はプリプロセッサがごにょごにょする
のが違う。
0538デフォルトの名無しさん
NGNGむかついてません
調子に乗ってる人を中止しただけです。
0539538
NGNG中止じゃなくて注意って書こうと思ってたんだけど
0540デフォルトの名無しさん
NGNG誤爆?
0541デフォルトの名無しさん
NGNGあんまりむきになっちゃだめよ
マターリね、マターリ
0542デフォルトの名無しさん
NGNGどうでもいいけど
ネタにいちいち過剰反応するのは止めろ。
0543デフォルトの名無しさん
NGNG別にデバッグに限らないんだがな・・・勉強しろ。
0544デフォルトの名無しさん
NGNG0545(^-^)
NGNGいえ、僕まだ初心者のくせにでしゃばった真似をしてしまいました。
つっこまれたらそれ以上説明できないのに・・・。
>>534のような使い方も知らなかったので・・・。
0546デフォルトの名無しさん
NGNG...
#endif
でコメントアウト
0547デフォルトの名無しさん
NGNGありがとうです。他の人もありがとん。
>>534
のような使い方なら分かります。
ですが、#if〜#endif内が、プリプロッセに対する命令以外の普通のコードだった場合、そう書く意味はあるんでしょうか?
真が非0で、偽が0っていうのは一緒ですよね?
例えば、
#define FLAG 1(もしくは0)として、#if FLAGとするのと、if(FLAG)とするのとでは
動作に違いがあるのでしょうか?
0548デフォルトの名無しさん
NGNG値変える度にいちいちフルビルドするのマンドクセ
まあ、ローカルな部分か半固定的な内容なら許せるけど。
0549(^o^)
NGNGだから機種依存コードを書くときにも使用するといっているだろうが。
0550デフォルトの名無しさん
NGNGif(FLAG) の場合は else 側も解釈される。
とはいえ、必ず偽となる部分は普通残らないから変わりないけど。
あえていうなら、#if で括れば偽となる部分でエラーが起きるとしても無視される。
0552デフォルトの名無しさん
NGNG0553(^o^)
NGNG>>534は#ifと#endifの間に「たまたま」プリプロセッサ命令を書いているだけ。
たとえばVC++6.0のfread.cには以下のコードがある。
環境によってbufsizeに代入する値を変えられるようにしている。
#if defined (_M_M68K) || defined (_M_MPPC)
/* assume will get BUFSIZ buffer */
bufsize = BUFSIZ;
#else /* defined (_M_M68K) || defined (_M_MPPC) */
/* assume will get _INTERNAL_BUFSIZ buffer */
bufsize = _INTERNAL_BUFSIZ;
#endif /* defined (_M_M68K) || defined (_M_MPPC) */
0554デフォルトの名無しさん
NGNG#ifは、コンパイル時に解釈する
ifは、実行時に解釈する
よって
#ifは、コンパイル時に解釈したい時に使い
ifは、実行時に解釈したい時に使えば良い
(決して言葉遊びではない)
0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNGコンパイル時じゃない。
コンパイラに渡された時には、すでに#で始まる行は解釈し終わっている。
0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNGなるほどそうっすね。
プリプロセッサ命令を使うと、#ifで真にならない場合、真になるブロックに関しては
オブジェクトコードには含まれないですよね?
そういう部分でサイズを小さくしようっていう意味もあるんでしょうか?
0561デフォルトの名無しさん
NGNGどうしたらいいですか?
0562デフォルトの名無しさん
NGNG0563ビル・ジョブス
NGNGまずはWIN32でテキストボックスとボタン、メインウィンドウを含めると
計3つのウィンドウを作ってみよう。VC6の生成するHello Worldとかを改造してね。
ここで重要なのはテキストボックスとボタンもウィンドウだって事。
そして、Windows自体がオブジェクティブな概念の上にあるので、概念的な事を中心に
学習すると他にも応用が利きます。そして使いたい機能があったらその都度MSDNを読む。
GUIプログラミングって気が遠くなる位環境が大きいから機能を丸暗記するんじゃなくて
”概念として理解する”それが大切。WIN32あたりでまともなアプリケーションを作ろうと
思ったらかなり頭良くないと作れない可能性もあり、結構門は狭いと思います。
そういう意味でVBとかC#とかもありますからそちらを学習するのもOKです。
0564デフォルトの名無しさん
NGNGそれじゃアセンブラも含まれちまうぞ
0565デフォルトの名無しさん
NGNGたとえば、
#define LABEL_01 (0x1111)
#define LABEL_02 (0x2222)
このLABEL_xx のxx部分を変数の様に扱いたいのですが
できませんでしたっけ?
?か# だった何か使って出来たような記憶もあるのですが・・・
0566デフォルトの名無しさん
NGNGプリプロセッサを使ったトークンの結合なら ##
0567デフォルトの名無しさん
NGNG>ラベル名を動的に作りたいんですが
fp = fopen("dqn.s", "w");
fprintf(fp, " .text\n.globl LABEL_01\n");
fclose(fp);
0569デフォルトの名無しさん
NGNG#ifdef AAA
#define BBB __CCC(D)
#else
#define BBB __CCC(D)
#endif
0570デフォルトの名無しさん
NGNGCなんてない。
0571デフォルトの名無しさん
NGNG誠に失礼しました。
0572デフォルトの名無しさん
NGNGその後に現れるBBBを __CCC(D)に置き換える。
#ifdef AAAと#elseの中が全く同じだから、条件分岐は無意味。
0573デフォルトの名無しさん
NGNGNT系は足らなくなれば自動で増える。
設定できるのは始めに用意される量。
0574デフォルトの名無しさん
NGNGAAAが定義(#define AAA)されていれば、BBBを__CCC(D)に置き換えるようにする。
定義されていなければ、BBBを__CCC(D)に置き換えるようにする。
よって、条件分岐は意味がない。
0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNGC言語なんてない
0577デフォルトの名無しさん
NGNG関数の外で const char foo[] = "def"; と定義した文字列と同じ領域に置かれますか?
関数内で、char *bar = "xyz"; とした場合はどうでしょう?
この場合も const char *bar = "xyz"; にすれば、"xyz"; は関数外で書いたのと同じエリアに
取られるでしょうか?
ROM化とかするときに、ROM上にもとられて、それをわざわざRAM上に展開するように
したくないのです。
0578デフォルトの名無しさん
NGNGそれは環境依存。コンパイラのマニュアルを嫁。
0579デフォルトの名無しさん
NGNGじゃ、おまえここへ噛み付いて来い
http://www.jsa.or.jp
0580デフォルトの名無しさん
NGNGコンパイラとリンカの仕様を確認。
ROMとRAMの区別があるような特殊な環境なら、
・ROMに直接置かれる読み出し専用領域
・ROMにあるデータで初期化されるRAM領域
・初期化しないRAM領域
…というようなセクションに分けて管理されているはず。
書き方によってどのセクションに置かれるかなんてのは環境によって違うので、
自分で調べるか、作った本人に訊くしかない。
0581デフォルトの名無しさん
NGNGint main(void)
{
int a,b,c,d;
a /*= 10;
b */= 20;
c /*= 30;
d */= 40;
printf("%d\n" , a+c);
return 0;
}
なんで?
0582デフォルトの名無しさん
NGNGコンパイルできるものをもってこい。
話はそれからだ。
0583デフォルトの名無しさん
NGNG*/
0584デフォルトの名無しさん
NGNG#include
#を忘れてる
0585デフォルトの名無しさん
NGNGバイナリモードを指定てもUNIXでは正常に動きますか?
常にバイナリモードでfopenすることでUNIX環境での影響はありませんか?
0586デフォルトの名無しさん
NGNG_.c:7: 警告: type defaults to `int' in declaration of `a'
_.c:7: 警告: data definition has no type or storage class
_.c:10: 警告: type defaults to `int' in declaration of `c'
_.c:10: 警告: data definition has no type or storage class
_.c:13: error: 構文解析エラー before string constant
_.c:13: 警告: type defaults to `int' in declaration of `printf'
_.c:13: 警告: conflicting types for built-in function `printf'
_.c:13: 警告: data definition has no type or storage class
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG,..-''" `ヽ、
,. '" _,,... - __ ヽ、
/ ,..=-‐''~ ̄_ ~'''- 、 ヽ
, ′ /,,..-'''"~ ̄::: ̄~'''-ヽ, ヽ
/ ,、'7:::,:'//:::,:´/∧::、:::゛,:::::ヽ、 ゙',
/ .......//,:///!',:://// ',:::!!:::!i::::ヽ:, ...゙,
l ........./n,V::;l;jl-ユTト:{:{ }!}」j:,l!:}:::!l:゙, ...〉
゛, .......,';「rll:´kr_テ'::「`| ノ_,='`メ!l::;;ll!l:l./
゛、../ ハ l!::l| 「!-'lj r'::/`/イ,:ノノ |!'
,ソ//:::|!:::l!  ̄ '-" ,':::イ!../'
/://::;;ハ::::ll\ .__ ' ,,::':::,!l:|
ノ:イ/:/;/;;`ヾ、_ ` ,. -'7_ .イ::く;;ノメ!、
,. '"',イ;'::/;/;;:;-"! / ,イヽ、;;;:!:::!::| ヘヽ
_,,-"/..'/:::/;;;-'" !__/ /-'',ス `''-.,,:! ゙';ヽ、
.,-'":;; ',/,,',.-< ゙'〈 '",-'┐ ,,'"ス、 ゙;:、、、
,.-'"::;;/.'/',/^ヽ``、、 ゙, <ノ ノ' / ,ハ, ゙;:'; ヾ、
/"/:;;/ '‐'/,「`ヽ、 ` 、 = __ ゙、 'v'"/`、' 'l ',::', ヾ、
l' /::;'" ,.:';:"/;;! `.ー、~''ーニ.,ハ, ハ'" ヽ, ゙, !::;! ヾ!
!:/ /:/ /:/;ト、 ...゙, | _| \_,ノ::.\= 、._ l ,!、 l::;! ll
!:! ,//' /::/::ハ ',.. ゙',l ,-',-ト、 `'ー-、ヽ, 7./l ト`、, !ノ 丿
'、 // /:/:,/_,,l ゛、.. ゙',. ヽ:Vヾ、、、_ ~///,ノ l;;:',ヾ'
/,' ,!::/!ll`i;;;| ヽ.. ヽ `/: ヽ ニニ‐=/ノr' ,' l;!l,:l 'ヾ;、
,!:! !::l'l:!l::!;;:::ハ ヽ、. ソ' : ........,~7, ,l / !;;!ll!! ヾ;
0589585
NGNG常にバイナリモードにしていた方がいいってことですか?
0590デフォルトの名無しさん
NGNGやろうとしていることによる
ビットマップとかPCMみたいなことをするなら
バイナリモードを指定しないとWindowsでは動かないし
インタープリタのようなテキスト処理なら寧ろ余計なことはしないほうがいい
stdioに関してはこんなとこだが
処理系間の相違が問題になる場合の一般論としては
処理系依存となる部分をできるだけ小さなライブラリとして括り出しておく
0591デフォルトの名無しさん
NGNGC言語で
c:\\test\\test.txt
のようにしてTESTというフォルダを新規に作成して
test.txtというファイルにカキコミを行う際にはどのようにすればよろしいのでしょうか?
もともとCドライブにTESTというフォルダがある場合は上述でできたんですが…
当方BCC++を利用しております。
できればUNIXの環境での書式も教えていただけたら幸いです。
0592デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNGUNIXの経験がないので誰か答えておながいします。
あるいはこっちのほうがよかったのか?
【初心者歓迎】C/C++室【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1086373839/
0595デフォルトの名無しさん
NGNG最高に頭悪そうな発言して下さい in ム板
http://pc5.2ch.net/test/read.cgi/tech/1085915001/
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNGここに誘導するからには、処理系に依存しない方法を答えることが出来るのでは?
UNIXの経験がないとか言わないで答えてあげればいいじゃない。
0598デフォルトの名無しさん
NGNG人格、能力、知識、これらすべてにおいて板の中でも最高峰のものを持っている
ということを確信しておりますので・・・
聞きたいことは他でもありません、javaのことなのです。
”javaの入門書として定評のあるものを教えていただきたい”
ええ、わかっています。Cスレでjavaのことを訊くことがいかに恥知らずで愚か
な行為であるかは。まともなレスが返ってくる可能性は少ないでしょう、でも私は奇跡
が起こるところを見てみたい。あなたたちとともに夢を見てみたい。
0599デフォルトの名無しさん
NGNGなんだね君は!
スレ違いなレスがどれほど迷惑なものかも知らんのか!
それもスレ違いであることをわかっていながら
こんな愚行を犯すなんて・・・
即効、削除依頼を出してきなさい。
君のレスは見るに耐えない。
0600デフォルトの名無しさん
NGNGまあ、もちつけ。
このスレの基本はマターリなんだからナ。
スレ違いなレスなんて珍しくもない。あまり枠にとらわれてはいけないよ。
0602貧乏紙
NGNG普通にopen fopenの引数にセットじゃだめなのUNIXとかLNUXは知らないけど。
0603600
NGNGなんで熱くなってるのかわかりませんね・・・
別に擁護したわけではないでしょ。
大した質問でもないんだから、ちょっと答えてやればいいでしょうに
漏れはjavaのことはよく知らないんで答えられないが。
0604(・∀・)
NGNG0605デフォルトの名無しさん
NGNGそんなくそ本燃やしちまえ。
0606デフォルトの名無しさん
NGNG削除以来を促すのはどうかしてる。
0607599
NGNG掲示板の書き込みなんかするんじゃないよ。
すれ違いな話題はスルーか叩き、これが2ちゃんのルール。
マジできもい。入門書なんてどれでも一緒
--------------------------------------------------終了
0608デフォルトの名無しさん
NGNGお前はどうせCしかできないんだろ(藁
0609デフォルトの名無しさん
NGNG0610デフォルトの名無しさん
NGNG耐性があればいいってもんじゃない。
耐性があるということは変化が少ないということ
変化が少ないということは発想に欠けるということ
発想に欠けるということはプログラマとして失格
プログラマとして失格ということはこのスレに書き込むことは許されない
ってことなんだから。
0611デフォルトの名無しさん
NGNG>耐性があるということは変化が少ないということ
この部分をもうちょい詳しく説明して欲しいんだが。
0612デフォルトの名無しさん
NGNG耐性があるというのは、周りからの刺激(煽り、スレ内容からずれる話題など)に対して
何も行動を起こさないということだ。だけども、それらの何気ないことがらからも
何らかの価値見出していく姿勢が大事であると同時に、そうすることによって
色んな方面への視界も広がっていくので、よりよい変化をもたらしていくということだ。
0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNGなるほど納得しました。
0615598
NGNGjavaの入門書でお薦めなのを教えてください。
0616デフォルトの名無しさん
NGNG高橋麻奈のやさしいJava
0617デフォルトの名無しさん
NGNG間のレス読んでないの?
Javaのスレで聞いた方がより確実な回答が得られるのでそこで聞いてください。
俺は独習Javaしかしりません。
0618598
NGNGこれでやっと成仏できそうです。
0619デフォルトの名無しさん
NGNG君は幸せ者だな
ちょっとスレ違いなことを書くだけでこんなにレスがつくなんてwww
0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNG0622デフォルトの名無しさん
NGNG少数って何だ? 小原少数け??
0623621
NGNG0624デフォルトの名無しさん
NGNG小数点.も読み取ってくれるのですか?
例)char a[4]="2.1" をatof(a)で無事変換できるのですか?
0625デフォルトの名無しさん
NGNG>char a[4]="2.1"
先ずは人間が一々数えるようなことをするのはやめろ。
次に使用している環境でレファレンスを参照しろ。
そして実際にコーディングして納得しろ。
0626デフォルトの名無しさん
NGNG実際にやってみればすぐに分かるだろ。
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNGついでに言うと、「文字列配列」とかぬかすな。
0629627
NGNG0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG,..-''" `ヽ、
,. '" _,,... - __ ヽ、
/ ,..=-‐''~ ̄_ ~'''- 、 ヽ
, ′ /,,..-'''"~ ̄::: ̄~'''-ヽ, ヽ
/ ,、'7:::,:'//:::,:´/∧::、:::゛,:::::ヽ、 ゙',
/ .......//,:///!',:://// ',:::!!:::!i::::ヽ:, ...゙,
l ........./n,V::;l;jl-ユTト:{:{ }!}」j:,l!:}:::!l:゙, ...〉
゛, .......,';「rll:´kr_テ'::「`| ノ_,='`メ!l::;;ll!l:l./
゛、../ ハ l!::l| 「!-'lj r'::/`/イ,:ノノ |!'
,ソ//:::|!:::l!  ̄ '-" ,':::イ!../'
/://::;;ハ::::ll\ .__ ' ,,::':::,!l:|
ノ:イ/:/;/;;`ヾ、_ ` ,. -'7_ .イ::く;;ノメ!、
,. '"',イ;'::/;/;;:;-"! / ,イヽ、;;;:!:::!::| ヘヽ
_,,-"/..'/:::/;;;-'" !__/ /-'',ス `''-.,,:! ゙';ヽ、
.,-'":;; ',/,,',.-< ゙'〈 '",-'┐ ,,'"ス、 ゙;:、、、
,.-'"::;;/.'/',/^ヽ``、、 ゙, <ノ ノ' / ,ハ, ゙;:'; ヾ、
/"/:;;/ '‐'/,「`ヽ、 ` 、 = __ ゙、 'v'"/`、' 'l ',::', ヾ、
l' /::;'" ,.:';:"/;;! `.ー、~''ーニ.,ハ, ハ'" ヽ, ゙, !::;! ヾ!
!:/ /:/ /:/;ト、 ...゙, | _| \_,ノ::.\= 、._ l ,!、 l::;! ll
!:! ,//' /::/::ハ ',.. ゙',l ,-',-ト、 `'ー-、ヽ, 7./l ト`、, !ノ 丿
'、 // /:/:,/_,,l ゛、.. ゙',. ヽ:Vヾ、、、_ ~///,ノ l;;:',ヾ'
/,' ,!::/!ll`i;;;| ヽ.. ヽ `/: ヽ ニニ‐=/ノr' ,' l;!l,:l 'ヾ;、
,!:! !::l'l:!l::!;;:::ハ ヽ、. ソ' : ........,~7, ,l / !;;!ll!! ヾ;
0632624
NGNG0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG(double)rand() / (ガッ);
0637デフォルトの名無しさん
NGNG#if WIN32
setmod(ほげほげ);
#endif
って書くんだろうが!
0638デフォルトの名無しさん
NGNG組んであります。
SIGSEGVをトラップするのはいいのですが、どこのルーチン(あるいはアドレス)
で発生したか知る方法はありませんか? OSはlinuxとします。
pthreadなので、デバッガは使えないものとします。
0639デフォルトの名無しさん
NGNGスレ違い
たぶんこっち
マルチスレッドプログラミング相談室 その2
http://pc5.2ch.net/test/read.cgi/tech/1037636153/l50
0640デフォルトの名無しさん
NGNGどこでSIGSEGVが発生したかをデバッガ無しで知りたいだけ。
syslog()をポイントポイントで入れまくってトレースするやりかたは
なるべくならしたくない。
割り込み発生アドレス等が分かればsyslog()で書き出したい。
0641デフォルトの名無しさん
NGNGあんたがスレ違いだってさ(笑)
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNG自分が無能だなんて公表しなくても...
皆知ってるってw
0644デフォルトの名無しさん
NGNG的外れかもしれないけれど、こんな感じかな??
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=100
0645デフォルトの名無しさん
NGNG>GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
>標準Cではできない事の質問は使用している開発環境のスレへ
>標準Cではできない事の質問は
0646644
NGNG0647ビル・ジョブス
NGNGPTLですか・・でもご質問はPTLとは無関係ですね。
私も分からないのですが、以下のsigcontextから答えが得られると考えます。
ご本人かもしれないのであえてリンク張るの止めました。
ページにmprotectをかけてSIGSEGVを発生させ、それが起こったアドレスを
SIGSEGVハンドラに渡したいのですがLinuxでの方法がわかりません。
OSはRedHat Linux 6.0(Kernel 2.2.5-15)をDOS/Vマシンで使っています。
FreeBSDではSIGSEGVハンドラに
void sigsegv_handler(int sig, int code, struct sigcontext *scp, char *addr)
のように引数を渡すことでaddrにアクセスのあったアドレスが渡されるのですが
Linuxでこのようにしてもアドレスは渡されないようです。
sigcontextの中に入っているのかもしれませんが、構造体の要素がどういう
意味を持っているかわからないため確認できません。
どうすればアドレスを渡すことができるのでしょうか?
よろしくお願いします。
0648デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNGいまどきDOS/Vマシンだなんて、
随分物持ちがいいのですね。
0651初心者
NGNGできるだけ、システム非依存でプログラムするには、システムコールを使わずライブラリを使えばいいんですよね。
Cの標準的なライブラリの使い方がのったお勧めの本ってありますか?今、Cの本は、やさしいC だけしかありません。
0652デフォルトの名無しさん
NGNGman
0653(^-^)
NGNGhttp://www.1point.jp/~book_2ch/program/c_lang.html
ここにいろいろあります。
0654651
NGNGThanks!
それにしてもbook_2chって。。
こんなものまであるのか。
0655デフォルトの名無しさん
NGNGb関数はb.hでプロトタイプ宣言されてb.cに書かれています。
こういった状況でb.hで宣言された変数はどこまで保持されています?
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNGLinux には siginfo_t はないの?
0658デフォルトの名無しさん
NGNGだと、移植性のある方法はないんじゃないかな。UNIX板/Linux板で聞い
たほうがいいんじゃ?
0659デフォルトの名無しさん
NGNGif(x=='か'){buf_eng[n++]='k';buf_eng[n++]='a';}
というのを平仮名の数だけやる しか私の貧弱な知識では分かりません...。
もっと良い方法をご存知の方はご教授いただけないでしょうか。
0660デフォルトの名無しさん
NGNGテーブル使え。
0661デフォルトの名無しさん
NGNG0662659
NGNGローマ字表記にする ということです。何か変でしたか?
>>660さん
今までそのようなモノに出会ったことがないので
もう少し詳しく教えていただけないでしょうか。
0663デフォルトの名無しさん
NGNG0666666
NGNG0667659
NGNGありがとうございます! 早速ざっと見てみました。
ttp://ash.jp/code/codetbl2.htm の文字コード表 と
教えていただいたlook-up-table で効率の良い検索プログラムが
作れそうですが、ただ、開発時間を考えると、ifを何個も書いて
やった方が早く目的を達成できそうです。。。ほんとは既存の
モノがあればよいのですが。。。(ご存知ないですか?
エクセルであるかな、と思ったら無かった...)
0668デフォルトの名無しさん
NGNG黙って作れ。
0669デフォルトの名無しさん
NGNG>ただ、開発時間を考えると、ifを何個も書いて
>やった方が早く目的を達成できそうです。
へぇ〜そうですか。ただ、いきなり破綻している気もするんですけどね。
> if(x=='か')
0670デフォルトの名無しさん
NGNGキミのやりたいことはカナtoローマ字変換じゃないのか?
だったら↓の一覧をを配列に入れりゃいーだけの話だろうが。
ttp://www.osumi.or.jp/sakata/java/romazi.htm
0671デフォルトの名無しさん
NGNG先頭のアドレスを始まりとして、アドレス1つにつき1文字ずつ入っていくのでしょうか?
それとも先頭のアドレスに入力した文字がすべて入るのでしょうか?
0672デフォルトの名無しさん
NGNG0673671
NGNGポインタは取り込んだ文字列配列へのポインタだったのね・・・
0674デフォルトの名無しさん
NGNGネタはやめろと言ってるだろ
0675671
NGNG0676659
NGNGそうですね。それが一番手っ取り早いですね。。。
ご親切にありがとうございました。
>>671さん
ポインタの指すアドレスを先頭にしてその後のアドレスに
書き込まれると思っていい筈です。
きちんと書き込まれるべき変数領域を確保しないと危険ですが。
0677デフォルトの名無しさん
NGNGgetsを使って標準入力からデータを受け取り、printfで出力するプログラムを作ってみて下さい。
0678659
NGNG無視してください
0679673
NGNGどうもありがとうございます。ポインタのみで、1文字1アドレスで作りたかったんですが、
どうもgets関数では難しいみたいですね・・・
0680デフォルトの名無しさん
NGNG#include<stdio.h>
int *ptr;
void test(void){
int a;
a = 10;
ptr = &a;
}
void test2(void){
int b;
b = 23;
}
main(){
test();
printf("Result1: %d\n",*ptr);
test();
test2();
printf("Result2: %d\n",*ptr);
}
0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNG0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNG1行目、Result1:の後に、環境依存の数値が表示される。
2行目、Result2:の後に、環境依存の数値が表示される。
解説:
最適化を一切しない場合、比較的高い確率でResult1に10、Result2に23が表示されるかもしれない。
最適化の種類によっては共に10が表示されるし、コンパイラオプションによっては意図的な異常値が表示されるかもしれない。
0685デフォルトの名無しさん
NGNG>659によると英語=ローマ字表記であり、直す=するなのだろう。
>>659
VC.NETなんかで書かないでVBAで書いたほうが2002倍楽だぞ。
#あんたの頭なら。
0686デフォルトの名無しさん
NGNGそれから、関数をインライン展開するコンパイラーってあるのか?
0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNGだからそんなもんは環境依存だ。
0689デフォルトの名無しさん
NGNGなんだおまえは?
梅雨厨か?
0690デフォルトの名無しさん
NGNG北海道には関係ないな。
0691デフォルトの名無しさん
NGNGもうすぐ北海道に米軍が駐屯するんだってな。
ケツ掘られないように気をつけろよ。
0692デフォルトの名無しさん
NGNGそこまで言うなら自身がどこまで想定できたのか語ってみそ。
底の浅さを露呈するのが関の山だからお勧めはしないが。
#ちなみに、インライン展開を想定しなくても>684のような振る舞いは想定できる。
0693デフォルトの名無しさん
NGNGありまくり。
0694デフォルトの名無しさん
NGNGスタックとか考えないで、コード書いてる人が多いことがわかりました。
こんなもんか(´∀`)モケモケ
0695デフォルトの名無しさん
NGNGそろそろやめときな。まぁ、もう誰も相手にしないだろうけど。
0696デフォルトの名無しさん
NGNG平仮名文字列を char buf[10]に読み込んだのですが、
そこから先、一文字ずつきりだす方法が分かりません。
ワイド文字をマルチワイドにして、さらにワイド文字コードで比較
すればよいのでしょうか。。或いはもっと簡単な方法はないでしょうか?
アイデアがあったらご教授願います。
# VBA は知らなかったので気力が湧いたら勉強します。
0697デフォルトの名無しさん
NGNGunsigned short u;
for (i=0; i<10; i+=2){
u = (buf[i]<<8) | (unsigned char)buf[i+1];
uでテーブルサーチ。
}
0698696
NGNG光が見えました! ありがとうございますm(__)m。
0699デフォルトの名無しさん
NGNGまずは文字コードについて勉強し直せ、と言いたい。
0700デフォルトの名無しさん
NGNG一文字後ろが小さい字(「ゃ」とか「ぃ」など)かどうかでテーブルを変える
なりなんなりする必要もあるね。長音符号も。
じゃないと例えば「ぽっぷこーんしょうじ」がちゃんと変換できない
擬似コードで書くと:
u1 = 当該文字
u2 = 一文字後ろ
if (u2==「ゃ」) 「ゃ」用のテーブルサーチ(例:き→kya)
:
else 普通のテーブルサーチ
あと「ばぁ」とかをどう表現するかも決める必要があるかもしれないけど
名前に限ればそこまでは考えなくてもいいかな
0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNGmain関数で出力したいのですがどうしたらいいんですか?
0704デフォルトの名無しさん
NGNGunicode使え
0705デフォルトの名無しさん
NGNGone[4]をグローバル変数にする。
0706デフォルトの名無しさん
NGNG結果の出力方法に依存するけど、可能なら、「ゃゅょ」が出現した時点で、
出力バッファから1キャラ削除して「ya,yu,yo」を出力する、という方法も考えられる。
「ん」も同様のアイディアが使えるだろう。
0707703
NGNG補足+質問です
start関数とmain関数を二つのファイルに分けてあるんですが、
グローバル変数の宣言はどっちのファイルですればいいんですか?
0708デフォルトの名無しさん
NGNGmainがある方にexternをつけてone[4]の宣言をする。
0709デフォルトの名無しさん
NGNG>>708
グローバル変数は main 側で定義するものじゃないのか……?
まあ、もっと言えばそんなことで悩むくらいなら
グローバル変数なんて使わないようにした方が今後のためだと思うが
0710デフォルトの名無しさん
NGNG任意のプログラムを実行させるようにしたいのですが、どうしたらいいですか?
0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNG何がしたい?
0713デフォルトの名無しさん
NGNG0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNGキーボードから5人分の年齢身長および体重を繰り返し構文を用いて年齢は1次元配列(age)身長と体重は2次元配列(date)
に読み込み以下の二つの条件を同時に満足するもののデータ(出席番号・年齢・身長・体重)と人数を画面に表示するプログラム
を作成せよ。
条件
1 身長が全員の平均値よりも高い。
2 体重が全員の平均値以下である。
と言う問題なんですが厨房のオレにはさっぱりで
数値や変数の型などは自由で良いみたいなので模範解答みたいのをお願いします。
よろしくお願いします。
0716デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1086373839/54
http://pc5.2ch.net/test/read.cgi/tech/1085149383/965
http://pc5.2ch.net/test/read.cgi/tech/1086612317/14
http://pc5.2ch.net/test/read.cgi/tech/1083765346/637
0717デフォルトの名無しさん
NGNGまずは、>>1を読め
0718デフォルトの名無しさん
NGNGお前は質問に答えて貰うに値しねーよ
厨房って言葉を免罪符にするな真性
0719デフォルトの名無しさん
NGNGとりあえず、この問題文の条件を完璧に満たすソースは作成不能だな。
>キーボードから5人分の年齢身長および体重を
>読み込み
>データ(出席番号・年齢・身長・体重)と人数を画面に表示する
0720デフォルトの名無しさん
NGNG「他のアプリケーション」のバグを探してください。
0721デフォルトの名無しさん
NGNGワラタ
確かにw
0722デフォルトの名無しさん
NGNG#define SUTADIO <stdio.h>
#include SUTADIO
#define mein main
#define mosi if
#define boid void
#define faibu 5
#define wan 1
#define tuu 2
boid mein(){
float caunto;
float age[faibu];
float date[faibu][tuu];
int tincyo_heikin;
int taijuuu_heikin;
for(caunto=0; caunto<faibu; caunto=caunto=caunto+=wan){
printf("年齢 身長 体重? ");
scanf("%f %f %f",&age[(int)(char)(int)caunto],&date[(int)(char)(int)caunto][0],&date[(int)(char)(int)caunto][1]);
}
tincyo_heikin=taijuuu_heikin=tincyo_heikin=taijuuu_heikin=0;
for(caunto=0; caunto<faibu; caunto=caunto=caunto+=wan){
taijuuu_heikin+=date[(int)(char)(int)caunto][1];
tincyo_heikin+=date[(int)(char)(int)caunto][0];
}
taijuuu_heikin=tincyo_heikin=taijuuu_heikin/faibu;
tincyo_heikin=tincyo_heikin=tincyo_heikin/faibu;
for(caunto=0; caunto<faibu; caunto=caunto=caunto+=wan){
mosi(tincyo_heikin<date[(int)(char)(int)caunto][0] && taijuuu_heikin>date[(int)(char)(int)caunto][1]){
printf("年齢%f 身長%f 体重%f\n",*&age[(int)(char)(int)caunto],*&date[(int)(char)(int)caunto][0],*&date[(int)(char)(int)caunto][1]);
}}}
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGfprintf(STDERR,"エラー\n");
と、かくと余裕でメインコンソールに表示されるんですが・・
0725デフォルトの名無しさん
NGNG$ program 2> file
0726デフォルトの名無しさん
NGNGfreopen()しなよ
0727デフォルトの名無しさん
NGNGstderr = freopen("log/err.log", "w+",stderr);
これいれたらできましたー
freopen初めて知りました・・・
ありがとうです。
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNGプログラムを作っています。構造体を勉強する練習問題です。
以下のように作りました。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXLEN 256
char buff[MAXLEN];
struct info{
char *name;
int score;
};
void error(char *);
main(){
struct info *sp;
int n, i;
printf("Input Number N >");
scanf("%d",&n);
for(i=1; i<=n; i++, sp++){
sp = (struct info *)malloc(sizeof(struct info));
if(sp==NULL){
error("Cannot allocate memory for structure.");
}
0732731
NGNGscanf("%s",buff);
sp->name = (char *)malloc(sizeof(char)*(strlen(buff)+1));
if(sp->name==NULL){
error("Cannot allocate memory for name");
}
strcpy(sp->name,buff);
printf("score = ");
scanf("%d",&sp->score);
}
sp -= n;
for(i=0; i<n; i++, sp++){
printf("%s's score is %d\n", sp->name, sp->score);
}
return 0;
}
0733731
NGNGInput Number N >2
Name = AAA
score = 20
Name = BBB
score = 30
(null)'s score is 17
BBB's score is 30
Input Number N >3
Name = AAA
score = 50
Name = BBB
score = 60
Name = CCC
score = 70
セグメントエラー
間違っている点、勘違いしている点のご指摘おねがいします。
0734デフォルトの名無しさん
NGNGいけないエリアを指すかもしれない。
連続してmallocを呼んでも確保するエリアが連続した領域という保証は無い。
したがって、このプログラムでは、malloc するたびにsp は新たな「どこか」を指してしまい、
それ以前に確保した領域を再び参照することは出来ない。
0735731-733
NGNGご指摘ありがとうございます。
直してみます!
0736デフォルトの名無しさん
NGNGサーバ上ではゴミが入るようなプログラムって
あり得ますか?
あるとしたら、どのような事柄が原因となることが考えられますか?
0737デフォルトの名無しさん
NGNGバグ。
CFAQの16.5を読めば、ヒントが見つかるかもね。
http://www.kouno.jp/home/c_faq/c16.html#0
0738デフォルトの名無しさん
NGNG「スレッドセーフ=リエントラント」という説明をしているサイトを多くみかけますが、
「このAPIはリエントラントだけどスレッドセーフではない」とかいう記述もたまにあります。
どっちが正しいのでしょう。。。。
0739731-733
NGNGソースを載せてなんて厚かましいことは言いません。
「こうしたらいいよ」的なヒントをいただけないでしょうか?
0740デフォルトの名無しさん
NGNGなので「このAPIはリエントラントだけどスレッドセーフではない」というのが分からない。
「このAPIはスレッドセーフだけどリエントラントではない」ならわかるけど。
自分の認識が間違ってるのか・・・
0741デフォルトの名無しさん
NGNGリエントラントとだけかかれる場合は、その名の通り「再入可能」なだけで
あって、複数のスレッドから呼び出された時にどうなるかは保障なし。
適当にでっち上げた事例だが、再帰的にリスト操作する関数を作ったとする。
再帰的に呼び出せるように組んだのでリエントラントではある。
しかし、ミューテックスか何かで保護しないと複数のスレッドから呼び出された
時点で、リストが壊れる可能性があるのでスレッドセーフにはならない。
0742デフォルトの名無しさん
NGNGうーん >>734 が全てじゃないのかな?
根本的にダメなんで、malloc が何をする
関数で、それを使って自分がなにをした
かったのか考え直してみてから、1から
作り直したほうがいいよ。
0743デフォルトの名無しさん
NGNGポインタの配列作って、その中にmallocで確保したメモリのポインタをいれる。
0744デフォルトの名無しさん
NGNG最初にデータ数を入力する様になっているから、
一次元配列分の領域を確保すればいいんでない?
0745デフォルトの名無しさん
NGNGだいたい同じような方法でいいんでしょうか?
0746デフォルトの名無しさん
NGNGfputc(10,fp);
fputc(0x0A,fp);
fprintf(fp,"%c",0x0A);
を、実行しても、改行コード 0D 0Aになってしまいます。
0Dが付加されてしまう。
0Aだけを出力する方法はないのでしょうか?
0747デフォルトの名無しさん
NGNGバイナリモードでファイル開け
0748デフォルトの名無しさん
NGNGありがとう、さっそくやってみます。
0749デフォルトの名無しさん
NGNG問題点のポイントだけ
その1)sp = (struct info *)malloc(sizeof(struct info) * n);
その2)sp[i].name = strdup(buff);
これで判らないなら知らん
0750731-733
NGNGありがとうございました。mallocが何をするものなのかよく分かっていませんでした。
まず、大きいfor文に入る前に
sp = (struct info *)malloc(sizeof(struct info)*n);
を実行し、欲しい配列の個数分領域をOSに確保してもらい、その先頭をspが指すようにしました。
そしてfor文が回るごとにsp++をし(*++++++++++++++++++... → ++++++++++*++++++...)、
そのspが指している場所からnameとscoreの情報を入れていきました。
for文を抜けたあとでsp-=n; を実行することでspの指す場所を戻し、
次のfor文内でsp++をしながらsp->nameとsp->scoreを表示させていきました。
説明が下手なので分かりにくいとは思いますが、こうすることで上手くいきました。
ありがとうございました。
0751731-733
NGNGポイントありがとうございます。
恐縮ながら、その1)には自分で気が付くことができました。
その2)については、strdupが分からないので調べてみます。
よりよいプログラムが書けるように頑張ります。
#そのためにはもっとポインターや構造体のことを学ばないと・・・
0752デフォルトの名無しさん
NGNGusing namespace std;
int main(){
int i;
double tw;
tw=2;
for(i=0; i<=10; i++){
cout << tw << '\n';
tw=tw-(tw*tw-2)/(2*tw);
}
return 0;
}
2 1.5 1.4667・・・となり、1.41421、1.41421・・・と限界がすぐ来てしまうのですが、
桁数って増やせないものでしょうか?
0753デフォルトの名無しさん
NGNG0754デフォルトの名無しさん
NGNGスレタイ嫁
話はそれからだ
0755デフォルトの名無しさん
NGNGcout <<setprecision(n)
で精度がn桁になる
上限は実装依存
#include <iomanip>を忘れずに
0756デフォルトの名無しさん
NGNGおっと、これはC言語ではないんだな?
見たこと無い文字列だったんで、「何打コリャ?」と思ってしまった。
0757755
NGNG答えてまった
0758755
NGNG0759755
NGNG0760デフォルトの名無しさん
NGNGあなたのしつこさに
0761デフォルトの名無しさん
NGNG#include<stdio.h>
#include<math.h>
main()
{
float a,b,c,d;
a=2.2;
b=2.2;
c=sqrt(9.68);
d=0.000001;
if(a*a+b*b==c*c-d)
(以下略)
と打ったのですが何故かifの方が実行されず何故かelseの方が実行されてしまいます
数字があってるかどうか表示させて確認したので間違ってはないはずなんですが・・・
0762デフォルトの名無しさん
NGNGC-FAQ参照。
www.kouno.jp/home/c_faq/c14.html#5
0763761
NGNGありがとうございます、FAQを読んでなんとか修正出来ました
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNGリエントラントは再入可能。
つまり状態をもたない。よって複数のスレッドから同時に呼び出されても大丈夫。
それから、同時に呼び出されても非同期に動くことができる。
スレッドセーフは、その通りに複数のスレッドから同時に呼び出されても大丈夫。
ただし、リエントラントとは限らない。というのも、状態を持つけど排他制御すること
によって複数のスレッドから同時に呼び出されても大丈夫なように実装されてるかも
しれないから。
リエントラントでない場合は、排他制御してるので待ち合わせが発生する。
(つまり非同期じゃない)
と解釈してるのだがどうだろう。
740の疑問は妥当。
741は途中から言葉が「再帰」になってるように、多分再入と再帰をごっちゃにしてると
思われ。
0766デフォルトの名無しさん
NGNG{
if(!)
{
break;
}
}
このbreakでfor文抜けですよね?
0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNG0769”管理”人にゃん
NGNGみなさんみてみてよ
http://www.geocities.jp/nyantos7893/
0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNGスレ違いかもしれないのですが、教えてくさい。
リエントラントな関数は状態を持たないとのことですが、
どうしても状態をもたないといけないときはどう実装
するのでつか?
0772デフォルトの名無しさん
NGNGはぁ?馬鹿ですか?
と以前言われた。
0773デフォルトの名無しさん
NGNG平気よん。
0774デフォルトの名無しさん
NGNG× >>762
○ >>772
0776デフォルトの名無しさん
NGNGネタなら他所でやれ。
言いたいことがあるなら、ちゃんと言え。
0777デフォルトの名無しさん
NGNGは確実にhoge()から計算されますか?
0779デフォルトの名無しさん
NGNG#if !defined(NULL)
#endif
にしとけば問題なさそうなんですが
何処かで、もう少しスマートな書き方を見た覚えがあるんですが
どうしても思い出せません…
どなたか教えて頂けませんか?
0780デフォルトの名無しさん
NGNG#if 0
・・・
#endif
0782デフォルトの名無しさん
NGNGa[9] = {0 , 0 , 2 , 0 , 0 , 5 , 6 , 7 , 8}
array[4][1] = 3
array[4][0] = 2
のとき、
for( j = 0 ; j <= 8 ; j++ ){
if( a[ j ] == a[ array[4][1] ] ){
a[ j ] = a[ array[4][0] ];
}
printf("%d " , a[j]);
}
を実行すると、結果が、
a[9] = {2 , 2 , 2 , 2 , 2 , 5 , 6 , 7 , 8}
とならず、
a[9] = {2 , 2 , 2 , 2 , 0 , 5 , 6 , 7 , 8}
となるのです。何故、4番目の値が0から2にならないのか、
さっぱりわかりません。どなたか、教えて頂けないでしょうか。
よろしくお願いします。
0783デフォルトの名無しさん
NGNG比較する値(4番目の値)をまず変数に用意してからやろう。
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNGa[4] == a[3]
0 2
だからa[2] = 2が代入されない。
0786785
NGNGj = 4のときに
a[4](値0) と a[array[4][1]]、つまりa[3](値2)が等しくないから
a[4] に a[array[4][0]]、 つまりa[2](値2)が代入されない。
(a[2]ははじめ0だが、途中で2に変わっている)
0787デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNG〜
#endif
をソースレベルでコメントと認識して色わけしてほしいと思うのは漏れだけでつか?
0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNG君だけだね
0791デフォルトの名無しさん
NGNGgvimはそうなるよ。
0792デフォルトの名無しさん
NGNG納得です。
ありがとうございます。
0793デフォルトの名無しさん
NGNGwzでも、色分けされる。
0794デフォルトの名無しさん
NGNG4.0以前のコメント判定は酷すぎて話にもならんかったが・・
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNGなにをもってまともなコメント処理とするかは知らんが、
4.00Fにおいて、とくに誤作動と思われるふしはない。
ちなみに#if 0 は有効だが、#if defined(HOGE) までは面倒見てくれないよ。
0797デフォルトの名無しさん
NGNGある機能を実現する時、何通りものコードを思いついたとします。
それぞれで実装してみて、その処理時間を比較するにはどうしたらよいでしょうか?
また、
条件分岐の数を増やせば増やすほど処理の時間は比例するのでしょうか?
0798デフォルトの名無しさん
NGNGtime() で所持にかかった時間計れば?
厳密に正確な時間は計れないけど、アルゴリズムも比較くらいならできるんじゃないかな。
条件分岐は、増やしたからといっても処理時間が増えるとは限らない。
極端な話、99,9999%の確率で2つめの分岐で抜けてしまう処理に、100個に分岐を後
付したところで全体への影響は少ないでしょ。
0799デフォルトの名無しさん
NGNG薦めるならclockだろ
0800デフォルトの名無しさん
NGNGgcc -pg hoge.c
./a.out
gprof --brief
man gdb
0801デフォルトの名無しさん
NGNG>>799
回答ありがとうございます。
clock()を使えば出来そうですね。土日に試してみます。
条件分岐を増やせば増やすほど見づらいコードになるから、
なるべく条件分岐が少ないようなやり方の方がよいと聞いたんですが、
これってどうなんでしょうか?
0802デフォルトの名無しさん
NGNGひでまるでさえがなる!
0803デフォルトの名無しさん
NGNG書き方によってある程度は見やすく/醜くなるわけだが。
しかし、ロジックを実現するために条件分岐をさせるわけで、
見難いから分岐を減らそう、というのは本末が転倒していないか?
いくら見難かろうと、必要な条件分岐は削れない。
やたら複雑に分岐しているコードは、無用な処理が含まれている
可能性が高いから、整理してシンプルなロジックに出来ないか検討
しよう、というのなら話は分かるが。
0804デフォルトの名無しさん
NGNGintを超えた場合はどうなるの?
0805デフォルトの名無しさん
NGNGプログラムを作成せよ。ただし3つの整数の最大値と最小値の差は、
その 値を返す関数 int width(int x, int y, int z) を作成して計算せよ。
という問題なんですが、警告が出ます。どこがおかしいのでしょうか?
#include <stdio.h>
int width(int x, int y, int z)
{ int max = x;
int min = y;
if(y > max) max = y;
if(z > max) max = z;
return (max);
if(x < min) min = x;
if(z < min) min = z;
return (min); }
int diff(int max, int min)
{ return (max - min); }
int main(void)
{ int na, nb, nc;
puts("三つの整数を入力してください。");
printf("整数1:");scanf("%d", &na);
printf("整数2:");scanf("%d", &nb);
printf("整数3:");scanf("%d", &nc);
printf("3つの整数の最大値と最小値の差は%dです。\n", width(na, nb, nc));
return (0); }
0806デフォルトの名無しさん
NGNG何処で聞いたら宜しいでしょうか。
特定のダイヤルアップの規制をしたいので教えていただけたら幸いです。
0807デフォルトの名無しさん
NGNGエラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
0808デフォルトの名無しさん
NGNG1. 関数の戻り値は一つなのだが・・
2. 君のwidth(...) の最初おreturn の後ろは死んでるぞ。
3. diff はどこで使うんだい?
0809Boris
NGNG〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
世界最高おもしろサイト”ふくろうの巣”
http://fukurou.sdap.jp/
ぜったいにきてねっ!掲示板に感想かいといてねぇ
0810デフォルトの名無しさん
NGNG壊れると聞いたことがある。でも40日つけ続けなければいい。
0811デフォルトの名無しさん
NGNG0812805
NGNG0813デフォルトの名無しさん
NGNGmin = a < b ? (a < c ? a : c) : (b < c ? b : c);
0814デフォルトの名無しさん
NGNGたとえば1000個の中のmin,maxを
出せっていわれても大丈夫なように
しておくのが学習ちゅうもんじゃないか?
0816805
NGNG0817デフォルトの名無しさん
NGNG0818(^-^)
NGNG#include <stdio.h>
int width(int, int, int);
int main(void)
{
int na, nb, nc;
puts("三つの整数を入力してください。");
printf("整数1:");scanf("%d", &na);
printf("整数2:");scanf("%d", &nb);
printf("整数3:");scanf("%d", &nc);
printf("3つの整数の最大値と最小値の差は%dです。\n", width(na, nb, nc));
return 0;
}
int width(int x, int y, int z)
{
int max = x;
int min = y;
if(y > max) max = y;
if(z > max) max = z;
if(x < min)
min = x;
if(z < min)
min = z;
return max - min;
}
で、いいと思います。
0819805
NGNG0821デフォルトの名無しさん
NGNG少しも考える能力ないんですか?
0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNGそれもそうだが、>>805 のソースは >>805 が書いたもの
じゃないってことだよな。ちゃんと、自分で考えろ。
0825805
NGNGテキストの見本にはdiffで差を求めるプログラムが載っていたので、
使わなくてもいいのかなって思っただけです。
0826デフォルトの名無しさん
NGNGとか。
0827デフォルトの名無しさん
NGNGdiff という関数のなかでなにをしているのかを考えないと。
ちゃんと考えていれば、そんな疑問はわかないはずだな。
0828805
NGNGdiffを使うか使わないかわからないと不安だから聞いているだけです。
0829デフォルトの名無しさん
NGNG必要がないのか? 関数にしたければすればいいわけで
なにが不安なのか?
現に >>818 では、関数にしないで差を求めているわけでしょう?
>return max - min;
関数でやりたければ、
return diff(min,max);
ってかきゃ済む問題でしょ?
0830デフォルトの名無しさん
NGNGreturn diff(max.min);
でした。
0831805
NGNGやってみます。皆様本当にありがとうございました!
0832デフォルトの名無しさん
NGNGdiff(max,min);
0833デフォルトの名無しさん
NGNG>return max - min;をreturn diff(max.min);に変えればいいんですね?
最後が疑問符になっているってことは、ちゃんと理解してないな・・・
0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNGint max=0;
for(i=0;i<num;i++) {
if (min>data[i]) min=data[i];
if (max<data[i]) max=data[i];
}
ソートするよりラクダじゃないか?
0836デフォルトの名無しさん
NGNG#define RSHIFT(x,shift) (x=x>>shift | x<<(?-shift))
ビット数によって可変なので
0837836
NGNG0838デフォルトの名無しさん
NGNG0839デフォルトの名無しさん
NGNGサーバーの場合は40日なんてザラじゃない?
どうするんだろ気になって眠れない
0840デフォルトの名無しさん
NGNGdifftime()つかえ
0841デフォルトの名無しさん
NGNG0に戻るはず。
だから、intの範囲を超えない40日以内の差をとれば、それは常に正しい。
違ってたら、指摘を頼む。
0842デフォルトの名無しさん
NGNGプログラムの例ってどこかにないですかね?
0843デフォルトの名無しさん
NGNG一応コンパイルは成功しましたが、名前を入力してリターンキーを押すと、
強制終了してしまいます。どこがおかしいのでしょうか?
/*
番兵法とbsearch関数を利用した線形検索
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SEITO_SUU 10
typedef struct {
char name[10];/* 名前 */
int math;/* 数学の点数 */
int eng;/* 英語の点数 */
} Person;
/*--- Person型の比較関数(名前昇順) ---*/
int npcmp(const Person *x, const Person *y)
{
return (strcmp(x->name, y->name));
}
0844デフォルトの名無しさん
NGNG/* 要素数nの配列aからkeyと一致する要素を線形検索(番兵法) */
int search(Person a[], int n, int nx, Person key)
{
int i = 0;/* 配列xの要素数 */
strcpy(a[n].name, key.name);
while(1)
{
if(key.name == bsearch(key.name, a[i].name, nx, sizeof(Person), (int (*)(const void *, const void *))npcmp))
{
break;
}
else
{
i++;
}
}
return i == n ? -1 : i;
}
0845デフォルトの名無しさん
NGNG{
Person x[11]= {{"Tom", 75, 60},
{"Jerry", 85, 90},
{"Spike", 45, 30},
{"Rachel", 55, 85},
{"Monica", 75, 90},
{"Phoebe", 80, 75},
{"Chandler", 70, 65},
{"Joey", 85, 75},
{"Ross", 90, 85},
{"int", 3 , 3},
};
int nx = sizeof(x) / sizeof(x[0]);
int idx, nnx;
Person ky;
0846デフォルトの名無しさん
NGNG/* ここから、データを昇順に並べ替えるプログラム */
int i, j;
Person someone;
for(i = 0; i < SEITO_SUU-1; i++){
for(j = i+1; j < SEITO_SUU; j++){
if(strcmp(x[i].name, x[j].name) > 0 ){
someone = x[i];
x[i] = x[j];
x[j] = someone;
}
}
}
/* ここまで昇順に並べ替えるプログラム */
puts("探したい人の名前を入力してください");
scanf("%s", &ky.name);
idx = search(x, nnx - 1, nx, ky);/* 配列xから名前がkyである要素を線形探索 */
if (idx == -1)
puts("探索に失敗しました。");
else
printf("%s : 数学 %d点 英語 %d点\n", x[idx + 1].name, x[idx+1].math, x[idx+1].eng);
return (0);
}
0847デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNGこれまずいね。
scanf("%s", ky.name);
こうだね。
0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNG////////////////////////////////////////
int search(Person a[], int n, int nx, Person key)
{
int i = 0;/* 配列xの要素数 */
printf("key.name = %s\n", key.name); // この3行を
printf("n = %d\n", n); // いれて
printf(nx = %d\n" , nx); // 見よう〜。
strcpy(a[n].name, key.name);
////////////////////////////////////////
0851デフォルトの名無しさん
NGNG0852843
NGNGありがとうございます!
でも、まだ強制終了します・・・・。
0853デフォルトの名無しさん
NGNGスリープしている時間が圧倒的に多いと思うけど。
0854853
NGNG0855デフォルトの名無しさん
NGNG0856デフォルトの名無しさん
NGNGヌーメリカル・レスィピ
0857デフォルトの名無しさん
NGNGttp://www.medianetjapan.com/2/19/internet_computer/junn/index.html
0858デフォルトの名無しさん
NGNGprintf("ここまできてる1\n");
:
printf("ここまできてる2\n");
:
printf("ここまできてる3\n");
:
っていう感じのをソース内に貼りまくって実行してみ?
どこらへんが原因で強制終了になってしまっているのか見当がつくよ
もちろん別のファイル名で保存しないといけないぞ
0859デフォルトの名無しさん
NGNGgdb ぐらい使いなさい(w
0860デフォルトの名無しさん
NGNG>>852にはgdbは無理かなって思ったんだYO!
0861デフォルトの名無しさん
NGNG・HSPに関係の無い話題でスレッドを上げまくる
・HSPオフィシャルサイトの住人を名指しで誹謗中傷する
・重複スレを乱立させる
などの荒らし行為を行っています。
みんなで団結してム板のゴミどもを追い出しませんか?
【HSP関連スレ】
【皆のレイプ魔】HSP初質P25【WWEヲタ=ハゲ】
http://pc5.2ch.net/test/read.cgi/tech/1086878505/
HSP>>>>>>>>>>>>>C=糞w
http://pc5.2ch.net/test/read.cgi/tech/1071899663/
今日もどこかでHSP初心者が質問ですP19
http://pc5.2ch.net/test/read.cgi/tech/1084089079/
HSPについて
http://pc5.2ch.net/test/read.cgi/tech/1085149790/
0862デフォルトの名無しさん
NGNG未だにPC98使ってんの?
0863843
NGNGなるほど!ありがとうございます!!
試してみます!!
0864843
NGNGint search(Person a[], int n, int nx, Person key)
{
int i = 0;/* 配列xの要素数 */
strcpy(a[n].name, key.name);
>>858さんの言うとおりにやってみたら、上記のstrcpy()のところが間違っている
ことがわかりましたが、
key.nameを、&key.name[0]に変えたり、いろいろやってみましたができませんでした。
どうかご教授お願いいたします。
0865デフォルトの名無しさん
NGNGそこまで判っててなんで原因を調べないのか不思議だ・・・
>>850さんのアドバイスに従ってprintf入れて期待通りの引数が入ってるか確認してみ?
0866デフォルトの名無しさん
NGNGそもそも nnx っていうのは何も使われていないようにみえるのだが・・・
0867843
NGNG原因が解決しました。
printf デバッグすごいですね!これからぜひ使ってきたいです!!
0868デフォルトの名無しさん
NGNG解決したらその方法を報告するように
0869843
NGNGすみません。原因は、nnxの値を定義していなかったことでした。
0870デフォルトの名無しさん
NGNG(#゚д゚)次ィ!!
0871デフォルトの名無しさん
NGNGとforの中が、空の場合、 式を繰り返すのですか?。
0872デフォルトの名無しさん
NGNGfor(;;) → for(;0;)
になって欲しかった。
0873デフォルトの名無しさん
NGNGそうです。
K&Rでは、無限ループは for(;;){ 〜 } と書くよう推奨しています。
0874デフォルトの名無しさん
NGNGwhile (0)
と書く人もいるよね。そもそも
1.do
2.while (0)
3.for(;;)
この3つの違いって何よ?
0875デフォルトの名無しさん
NGNG0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNG意味不明
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNG>>意味不明
>どこが?
どこがあってたというのか?
2と3のあたりだけ哉。
0883デフォルトの名無しさん
NGNG>>880
0884デフォルトの名無しさん
NGNGCを知らない人がでしゃばるなよ。
0885デフォルトの名無しさん
NGNG} while(0);
って使うだろ、普通
0886デフォルトの名無しさん
NGNG0887885
NGNGごめんなさい、難しい漢字を使ってしまいましたか。
(名・形動)[文]ナリ
(1)いつでもどこにでもあって、めずらしくない・こと(さま)。
「日本に―の鳥」
(2)ほかとくらべて特に変わらない・こと(さま)。
「ごく―の家庭に育つ」「―ならもう卒業している」
(3)特別ではなく、一般的である・こと(さま)。
「―高校」
0888デフォルトの名無しさん
NGNGネタなら電波板に逝ってくれ。邪魔だ。
0890885
NGNGねたじゃない。日本語が苦手な886さんに意味を教えてあげただけだ。
0891デフォルトの名無しさん
NGNG違いはない。前者だとコンパイラによって警告が出る(条件式が定数)から嫌だと言う人がいる。
0892デフォルトの名無しさん
NGNG永久ループなら他に
L1:
/*...*/
goto L1;
なんかもあるな
この問題に限ったことじゃないが「警告出るからイヤ」は処理系依存の一種だと思う
言ってる本人は自慢げだが俺に言わせれば狭いだけ
警告は内容をよく読んで判断するもので避けるべきエラーとは違う
0893デフォルトの名無しさん
NGNG違いはコンパイルしてアセンブリコードを見てくれ…
0894889
NGNGレスありがとうございます。
今初めて気づいたのですが、警告レベル4(VC6)にしたら、その
メッセージがでました。for(;;)を勧める理由がわかりますた。
>>893
アセンブリコードあんまりよくわからないのですが、全く同じに
見えますた。
0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNG↑これ、最強
0897デフォルトの名無しさん
NGNG永久ループにgoto使う奴なんていないよ。
>警告は内容をよく読んで判断するもので避けるべきエラーとは違う
while(1)->for(;;)なんてコスト0の書き換えで避けられるなら避けろよ。
しかもCではfor使う書き方が圧倒的にポピュラー。
いや、あんたの国ではどうだか知らんけどさw
0898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
NGNGvoid loop()
{
処理
loop();
}
0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNG>いや、あんたの国ではどうだか知らんけどさw
ワラタ
自分の話の腰を折るとは奇特な人だ・・・
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNG>永久ループにgoto使う奴なんていないよ。
gotoをbreakと偽装する人は多いのに不思議だな
> while(1)->for(;;)なんてコスト0の書き換えで避けられるなら避けろよ。
> しかもCではfor使う書き方が圧倒的にポピュラー。
これのどこが
> >警告は内容をよく読んで判断するもので避けるべきエラーとは違う
に対しての反論(?)なんだ? 脈絡ないやん
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG我々はとんでもない勘違いをしていたのかもしれない。
for(;;) → for (;;) → (;;)のために → 泣いている人のために
while(1) → 1の間 → スレの最終レスが1の間 → スレのレスが0の間
レスが来ないと糞スレ立てた人(while(1))より
泣いている人のため(for(;;))に尽くせというメッセージだったんだ。
つまり!for厨は実は良い奴だったんだ!
0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNGどうした?
0909デフォルトの名無しさん
NGNG俺も一票投じるという意味。
0910デフォルトの名無しさん
NGNG906
>> 906
こうしたかったんだけどタイミング外しただけ。
恥ずかしいからそれ以上つこまんでくれ。
0911デフォルトの名無しさん
NGNG了解
0912デフォルトの名無しさん
NGNG>gotoをbreakと偽装する人は多いのに不思議だな
意味分からん。多重ループからの抜け出しにgotoを使うといってるのか?
だとしたら関係ない話だな。「永久ループ」には使わないといっている。
>これのどこが
>> >警告は内容をよく読んで判断するもので避けるべきエラーとは違う
>に対しての反論(?)なんだ? 脈絡ないやん
警告は確かに絶対につぶさなければならないものではないが、
わざわざ警告の出るコーディングをメリットもなしに選択するする必要はないし、そうすべきではないといっている。
0913デフォルトの名無しさん
NGNG正しくは*無限時間内の入力待ち*
0914デフォルトの名無しさん
NGNG>多重ループからの抜け出しにgotoを使うといってるのか?
単一ループからの抜け出しに決まってるやん
何でgotoを使わないのかって論点は変えてないぜ?
>わざわざ警告の出るコーディング
逆だろ逆
ある特定の処理系で警告が出ないようにコーディングすることは処理系依存だとさっきから(ry
そもそもこれを主張する人の処理系と聴かされる人の処理系が違うからそうなるわけで
0915デフォルトの名無しさん
NGNGwhile(1)
下の方がタイプ量が多いが、下の方が好き。
0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNGchar buf[100];
memset(buf, 0, 100);
if (fgets(buf, 100, fp)) {
/* 正常処理 */
} else {
/* 異常処理 */
}
のように書く人をしばしば見かけるのですが、memset()は何のために書いているのでしょう。
0919デフォルトの名無しさん
NGNG>>905
ナ ナンダッテー!!
Ω ΩΩ
0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNG全てが0になっていないと気が済まない人のための精神安定剤。
0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNG置き換え
0924デフォルトの名無しさん
NGNGむぅ、そんな低い志でコーディングしてたのか。
ならなんでmalloc()+memset()なんてしないでcalloc()使わないんだろう・・・
0925デフォルトの名無しさん
NGNG...前に例にあげてるのと違うが
思うに、途中でallクリアする際にmemset()を使ったので
最初にも使ってるのでは?
0926デフォルトの名無しさん
NGNGの実行結果が \ になるのは何故ですか?
0927デフォルトの名無しさん
NGNGこのコマンドの意味を教えてください。
0928デフォルトの名無しさん
NGNGそういうもんだから
>>927
スレ違い
0929デフォルトの名無しさん
NGNG>927 キャット空中大回転、と読む
0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNG0クリアしたいだけなら
char buf[100] = {0};
0932デフォルトの名無しさん
NGNGchar buf[100] = {};
って書いてるけどダメ??
0933デフォルトの名無しさん
NGNGコードサイズが肥大するからやめて。
生成されるバイナリに0がずらりと並ぶんです。
メモリの無駄。
0934デフォルトの名無しさん
NGNGうそです。空白はあいてます。
0935デフォルトの名無しさん
NGNG100バイト程度でなにいってんの(w
0936デフォルトの名無しさん
NGNGなぜ?
0937デフォルトの名無しさん
NGNG繕nmached quote
と出て、動きません。なぜ?
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNG0941超初心者
NGNG分かりません。どなたかご教授いただけないでしょうか?
#include <stdio.h>
int main(void)
{
int no;
printf("整数を入力:"); scanf("%d",&no);
int a=0;
while(a >= 0) {
printf("%d ",a);
a--;
}
if(no > 0)
putchar('\n');
return 0;
}
(8) : error C2143: 構文エラー : ';' が '型' の前にありません。
(9) : error C2065: 'a' : 定義されていない識別子です。
0942デフォルトの名無しさん
NGNG普通にコンパイルできたが・・・・・(当方BCC)
0943デフォルトの名無しさん
NGNGint a=0; の int と a の間に全角スペース入ってない?
0944デフォルトの名無しさん
NGNG問題無し
0945941
NGNG当方もVC++.Netなんですが、何度やってもコンパイルエラーが・・・。
>943
調べたところ全角スペースは入っていませんでした。
0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNGしてないんだとしたら、変数を関数の戦闘以外で定義
してるのがまずいんじゃない?
0949デフォルトの名無しさん
NGNG変数宣言はブロックの先頭でしか出来ないのでint aをprintfの前に移動
0950デフォルトの名無しさん
NGNGCスレだたーYO!
0952デフォルトの名無しさん
NGNG> コードサイズが肥大するからやめて。
> 生成されるバイナリに0がずらりと並ぶんです。
そんなコンパイラがあるものか。
グローバル変数ならわかるが、>>918 を見る限りローカル変数だ。
0953デフォルトの名無しさん
NGNGプ
0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNG952
0956デフォルトの名無しさん
NGNG0957デフォルトの名無しさん
NGNG00000000: 2F 44 45 46 41 55 4C 54 4C 49 42 3A 22 4C 49 42 /DEFAULTLIB:"LIB
00000010: 43 22 20 2F 44 45 46 41 55 4C 54 4C 49 42 3A 22 C" /DEFAULTLIB:"
00000020: 4F 4C 44 4E 41 4D 45 53 22 20 OLDNAMES"
RAW DATA #2
00000000: 02 00 00 00 39 00 09 00 00 00 00 00 32 64 3A 5C ....9.......2*:\
00000010: 4D 59 20 44 4F 43 55 4D 45 4E 54 53 5C 56 69 73 ************\***
00000020: 75 61 6C 20 53 74 75 64 69 6F 20 50 72 6F 6A 65 ****************
00000030: 63 74 73 5C 63 6C 5C 74 65 73 74 2E 6F 62 6A 38 ***\**\test.obj8
00000040: 00 13 10 01 02 00 00 06 00 0D 00 00 00 FA 24 0D .............u$.
00000050: 00 00 00 FA 24 21 4D 69 63 72 6F 73 6F 66 74 20 ...u$!Microsoft
00000060: 28 52 29 20 4F 70 74 69 6D 69 7A 69 6E 67 20 43 (R) Optimizing C
00000070: 6F 6D 70 69 6C 65 72 00 00 ompiler..
RAW DATA #4
00000000: 55 8B EC 33 C0 5D C3 U.i3A]A
↑
char a[10000] = {0};
int main(){
return 0;
}
0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNGconst char *res="a をスタック上にとるとどうでしょ?";
0962デフォルトの名無しさん
NGNGconst char *tsukkomi="a が使われてないから最適化で削除されていると思われ。";
BCCで試してみた限り、前者は確かに冗長。
因みに、グローバルに置いても似たような結果に。
/*--------*/
int main(){
char a[10000]={0};
a[7777]=1;
return 0;
}
/*--------*/
int main(){
char a[10000];
memset(&a,0,sizeof(a));
a[7777]=1;
return 0;
}
0963デフォルトの名無しさん
NGNG事故レス。
グローバルに置かれる初期化なしの変数は実行開始時にまとめて確保されるからメモリ占有量は大差ない罠。
0964デフォルトの名無しさん
NGNGBCCってウマいの?
0965デフォルトの名無しさん
NGNG参照するのはあほらしいよね。参照しかしないのだったら。
そんなときに活躍するpragmaは、さて、なんでしょう? (1点)
0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG#pragma require(thisthread->next)
0976デフォルトの名無しさん
NGNG#pragma wait_a_minute
0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG#define pragma
0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNG新スレ
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG0983デフォルトの名無しさん
NGNG0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNG0986985
NGNG0987デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__∧∩
_/し' //. V`Д´)/
(_フ彡 / ←>>969
0988ビル・ジョブス
NGNG0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧∧ ) (´⌒(´
⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
0992デフォルトの名無しさん
NGNG∧∧
(゚∀゚ )⌒ヽ ≡≡ = = -
,.、,,U‐U^(,,⊃_ /i ≡≡≡ = = -
;'゚∀゚ 、、:、.:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i = ≡≡≡ = = -
'、;: ...: ,:. :.、.:',.: .:: _;.;;..; :..‐'゙  ̄  ̄
`" ◎ ''`゙ ◎ ´´ - = ≡ = = -
0993デフォルトの名無しさん
NGNG,,、,、,,, / \〇ノゝ∩ < 1098取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√´д`) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \エーーーーーーーッ!?/
//三/|三|\
∪ ∪ (´д`)´д`(´д`)´д`(´д`)´д`(´д`)´д`(´д`)
,,、,、,,, ,,、,、,,, ,,、,、,,, ,,、,、,,, ,,、,、,,,
,,、,、,,, (´д`)´д`(´д`)´д`(´д`)´д`(´д`)´д`(´д`)´д`(´д`)
http://big.freett.com/scheme_a/num1000.swf
0994デフォルトの名無しさん
NGNG謎がすっきり解決しました
ありがとうございます
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNGこれじゃ1000とれないかもしれないじゃん。
0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。