C言語なら、俺に聞け! lt;50gt;
レス数が1000を超えています。これ以上書き込みはできません。
0001鼻から悪魔でますた
NGNGむしろ質問する前にWEBで検索するのが常識だ。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行け。
コンパイラを探しているなら >>2 を見よ。
上記を逸した場合の結果は激しく未定義とする。
C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
00021
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
00031
NGNGC言語なら私に聞いてYO! 49
http://pc2.2ch.net/test/read.cgi/tech/1042646178/
祝49回 C言語ならあっしに聞け
http://pc2.2ch.net/test/read.cgi/tech/1042640474/
00041
NGNG48 http://pc3.2ch.net/tech/kako/1041/10411/1041127646.html
47 http://pc3.2ch.net/tech/kako/1040/10400/1040048202.html
46 http://pc3.2ch.net/tech/kako/1039/10393/1039328710.html
45 http://pc3.2ch.net/tech/kako/1038/10384/1038405432.html
44 http://pc3.2ch.net/tech/kako/1037/10377/1037796472.html
43 http://pc3.2ch.net/tech/kako/1037/10372/1037281411.html
43 http://pc3.2ch.net/tech/kako/1037/10371/1037134356.html
42 http://pc3.2ch.net/tech/kako/1037/10371/1037101156.html
41 http://pc3.2ch.net/tech/kako/1036/10368/1036876790.html
40 http://pc3.2ch.net/tech/kako/1036/10366/1036673739.html
39 http://pc3.2ch.net/tech/kako/1036/10364/1036409391.html
38 http://pc3.2ch.net/tech/kako/1035/10357/1035729526.html
37 http://pc3.2ch.net/tech/kako/1035/10356/1035623265.html
36 http://pc3.2ch.net/tech/kako/1035/10352/1035211039.html
35 http://pc3.2ch.net/tech/kako/1034/10343/1034337064.html
34 http://pc3.2ch.net/tech/kako/1033/10332/1033240509.html
33 http://pc3.2ch.net/tech/kako/1032/10326/1032606064.html
32 http://pc3.2ch.net/tech/kako/1031/10319/1031905402.html
31 http://pc3.2ch.net/tech/kako/1030/10307/1030786546.html
30 http://pc3.2ch.net/tech/kako/1030/10307/1030786546.html
29 http://pc3.2ch.net/tech/kako/1029/10296/1029605182.html
28 http://pc3.2ch.net/tech/kako/1028/10284/1028495798.html
27 http://pc3.2ch.net/tech/kako/1027/10271/1027160374.html
26 http://pc.2ch.net/tech/kako/1026/10260/1026048820.html
00051
NGNG24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html
23 http://pc.2ch.net/tech/kako/1023/10230/1023024817.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
20 http://pc.2ch.net/tech/kako/1021/10214/1021459016.html
19 http://pc.2ch.net/tech/kako/1020/10207/1020756993.html
18 http://pc.2ch.net/tech/kako/1020/10202/1020260813.html
17 http://pc.2ch.net/tech/kako/1019/10193/1019372139.html
16 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
15 http://pc.2ch.net/tech/kako/1016/10165/1016519243.html
14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1013/10139/1013990673.html
12 http://pc.2ch.net/tech/kako/1012/10123/1012348974.html
11 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
10 http://pc.2ch.net/tech/kako/1008/10083/1008300863.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
7 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
3 http://piza.2ch.net/tech/kako/989/989929288.html
2 http://piza.2ch.net/tech/kako/979/979529893.html
1 http://piza.2ch.net/tech/kako/967/967985026.html
00061
NGNGいつの間に、タイトルに< >使えなくなってたの
鬱
0007デフォルトの名無しさん
NGNG┗┳┳━ |_| ━━━┳┳┛
┃┃ / ヽ ┃┃
┏┻┻ |======| ━━┻┻┓
┗┳┳ ヽ__ _ ノ ━━┳┳┛
┃┃ (/) ┃┃
┃┃ (/) ┃┃
凸┃┃ (/) ┃┃凸
Ш┃┃ (/) ┃┃Ш
.|| ┃┃ (/) ┃┃.||
∧_∧ (/) ∧_∧ ∧ ∧
( ・∀・) (/)(´∀` ) (゚Д゚ ) Part50スレが他に立ちませんように
(つ つミ (/)(⊃⊂ ) ⊂ ⊃
|_|_|_�I(/)_|_|_|__| |
/////ノ,,,,,,ヽ ////|| |〜
//////////// |∪∪
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 奉 納 |
0008デフォルトの名無しさん
NGNG引き続きがむばります
0009デフォルトの名無しさん
NGNG乙カレー。
>>7
だよねー。
0010デフォルトの名無しさん
NGNGちゃんと正誤表は確かめたか?
0011デフォルトの名無しさん
NGNG今日確かめます
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG>>1乙
0014デフォルトの名無しさん
NGNGまた、どんな方法を利用しているのでしょうか?
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG引き続きがむばります
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG書くようになって気付いたことが。
一つのモジュール内で、やたらと深い&多数のループを回すプログラムを作るとき、
皆さんはループ用の変数をどう確保してるのか、ということです。
今のところint i, j, k, m, l ........てな感じでやってるんですが、なんか無駄が多いような・・・・・
それともこれが最善のやり方なんでしょうか。
0026デフォルトの名無しさん
NGNGfor (int j = 0;
for (int m = 0;
for (int l = 0;
0027デフォルトの名無しさん
NGNGどの辺が無駄なのか説明してくれないか?
0028デフォルトの名無しさん
NGNGグローバル変数で、i j k定義したよ。
//良い子は絶対真似しないこと。
0029デフォルトの名無しさん
NGNGできの悪いの自慢してどうする
0030デフォルトの名無しさん
NGNGちゃんと変数名考えて定義しろよ。
それぞれのループごとに意味あるんだろ?
0031デフォルトの名無しさん
NGNGfor (x.i=0; …
for (x.j=0; …
for (x.k=0; …
for (x.l=0; …
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGiだとインクリメンタルサーチが面倒だと言うのが一番の理由。
で、二重ループは大抵意味があるのでその意味を反映させる。
例えば、ix, iy など。
一つの関数で三重以上のループになることは余りないかな?
その場合も二重ループと同様。
ちなみに、>>31のような書き方をすると処理速度はがた落ちになる罠。
0035デフォルトの名無しさん
NGNG何のメリットがあるんだ ?
0036デフォルトの名無しさん
NGNGスタックポインタ相対アドレッシングのないCPUでは、自動変数より
グローバル変数の方が処理速度もメモリ効率も上がるだろうね。
0037デフォルトの名無しさん
NGNGそこまで考えてないと思われ。単なる手抜きかと。
多くのプロセッサでは、自動変数でループカウンタとして使うなら
レジスタに割り当てられる事が多いし。
グローバル変数は、コンパイラの最適化を阻害するケースが多い。
0038デフォルトの名無しさん
NGNG∧∧ ミ _ ドスッ
( ,,)┌─┴┴─┐
/ つ. 終 了 │
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
003938
NGNG0040デフォルトの名無しさん
NGNGLoadlibraryでロードしても関数を呼び出す方法しか見当たらないのですが
ヘッダもライブラリも無いので何とか動的にリンクしたいのですが
004140
NGNG環境はVC++でwin32です
0042デフォルトの名無しさん
NGNG果てしなくスレ違い
004340
NGNG0044デフォルトの名無しさん
NGNGそれは C++ だ!
>>28
int i;
void foo(int *array, int size) {
for(i = 0; i < size; ++i) {
printf("(%d\n", i);
bar(array[i], size);
printf("%d)\n", array[i]);
}
}
void bar(int elem, int size) {
for(i = size; i >= 2; --i) {
printf(" %d: %d\n", i, elem * i);
}
}
で、どうするよ。
>>29
行列とか扱ってるとどうしても深くなってしまうこともある。
>>25
でも、そういうのでなければ関数に分けたりして
ループを浅くするのがよい。
0045デフォルトの名無しさん
NGNG>>>26
>それは C++ だ!
C99だとできたりする。
0046デフォルトの名無しさん
NGNG配列の大きさの指定には変数は使え
ないとかsnprintfは標準関数じゃないとかいうと厨房扱いされるんだぜ。
まじうぜーーー!!
こんな時代遅れな言語は新たに規格を策定しなくてもよかったと思うんだけど。
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNGC99が必要無いと思うのは勝手だけど
自分のミスを規格のせいにしてはアカンよ
0050デフォルトの名無しさん
NGNG「〜は使えない」→「C99ならデキルヨ!アナタシラナイノ?ぎゃは」
とかいう会話がまじうぜーーーのではないでしょうか?
005144
NGNGいやまあ、現状C99を実装してる処理系ってほとんどないだろうし、
移植性を考えたらC99の機能はまだ使うべきではないだろう。
いまだに
void afo(mona)
int mona;
{
/* */
}
式の関数を定義する場合もあるわけで。
ただ、Cの機能じゃないと言い切っちゃうのは、さすがに嘘だと思ったんでな(w
005248
NGNGいや、俺もC99の環境は持ってないし
多分、実装された環境を手に入れる事は暫く無いだろうなと思うし
たま〜に、ウザイと思う事はあるよ
でも、Cの規格にC99があるんだから、しょうがないじゃん
教える時や、間違えを指摘する時に
釣りでも無いのに、C99の規格の事を忘れてはアカンと思うのよ
まぁ、別に争う気は無いので、ここら辺で
0053デフォルトの名無しさん
NGNG区別するのが今の風潮じゃないか?
0054デフォルトの名無しさん
NGNG0055本当の44
NGNGあなた、>>45 じゃないですか?
えーと、C99 でできるのは知ってましたが、
>>53 のようなスタンスで書いちゃいました。
C99 なんていらんわ! とかいうつもりはないです。
というか、むしろ普及してくれた方が嬉しいです。
でも、実際の現在の普及率を考えると、
「あー、そういうことできるんだ」と思って試した人が
「できねーじゃんかYO!」となるのは必至なので
別物扱いしておいた方が妥当なんでは、と。
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG本当はC99スレを立てるのが良いと思うけど
ただでさえC関連スレは乱立してるから
反発の方が多そうなので現状維持で仕方ないかと…
0058デフォルトの名無しさん
NGNGもー立ってたりして。寂れてるけど。
http://pc2.2ch.net/test/read.cgi/tech/1044351696/l50
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNGchar A1;
char A2[3];
int A3;
}A;
struct b{
char B1;
char B2[3];
int B3;
}B;
上記のように複数個の構造体があったとして
同じファイルにバイナリでライトしたいのですが
いかようにすればよろしいのでしょうか?
引数の記述方法がよくわからずコマっております。
御教授お願い致します。
0061デフォルトの名無しさん
NGNGストリームにfwriteで書き込める。
0062デフォルトの名無しさん
NGNG006360
NGNGアリガ�d
質問のしかたが悪かったでし、、、
構造体を丸ごとドカンと
書きこみたいのっす。
スイマソン
再度の御教授を〜
0064デフォルトの名無しさん
NGNGコンパイラは、gccっていうのをどうやって入手するか分かりません。
borlandのなんとか55っていうのはできたけど、.exeになったけど、
ひらくと、有効なwin32アプリケーションではないって言われて実行できません。
0065デフォルトの名無しさん
NGNGchar c;
int i;
} a;
int main()
{
fwrite(&a, sizeof(a), stdout);
return 0;
}
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGボーランドのなんとか55で
何をやったらそうなった?
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGすみません。できました。意味も無くobjふぁいるにilink32施してました。
でもなんでobjとか出てくるんですか?
0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG行う関数を作りたいんですが、そんなことできますか?
0073デフォルトの名無しさん
NGNGvoid func(T& t)
{
//...
}
void func(wchar_t* pt)
{
//...
}
0074デフォルトの名無しさん
NGNGC++で関数の多重定義を使え。
もしくはvoid *で渡しておき、パラメータで切り替える。
void func(void *p, int i)
{
double d;
switch (i) {
case 1:
d = *(double *)p;
break;
]
}
0075デフォルトの名無しさん
NGNGスレ違い
0076デフォルトの名無しさん
NGNGこれ以外のうまい方法はないんでしょうか?
あとC++はできないんで、Cでお願いします・・
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGないから関数名に型名を付加しろ。
C++の関数のオーバーロードも内部では同じようなことをしている。
0080デフォルトの名無しさん
NGNG> これ以外のうまい方法はないんでしょうか?
0081デフォルトの名無しさん
NGNG別にC++の全ての機能を使わなければならないというわけじゃないでしょ。
C++の機能はオーバーロードだけ使って、あとはCの機能だけで書けばいいでしょ。
それとも、C++コンパイラがないとか??
0082デフォルトの名無しさん
NGNGvoid func(VTYPE vt, ...)
{
va_list arg;
va_start(arg, vt);
switch (vt)
{
case TYPE_CHAR.:
...
}
va_end(arg);
}
008376
NGNG色々試してみます
0084デフォルトの名無しさん
NGNG関数名の違う関数を用意しる。
#define で展開してもいいが。
0085デフォルトの名無しさん
NGNGint t;
t=*pa0;
*pa0=*pb0;
*pb0=t;
}
すいません、これって何をしているのですか?
0086デフォルトの名無しさん
NGNGswap()の名前そのままの通りの事をしている。
*pa0と*pb0が指すintの値を交換している。
0087デフォルトの名無しさん
NGNG関数の方は void にすべきだと思う。
0088デフォルトの名無しさん
NGNG関数の値は〜
の間違い(;´Д`)
008985
NGNGありがとうございました!
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNGtypedef struct {
enum {INT, FLOAT} type;
union {
int i;
float f;
} v;
} giko_t;
void sii(giko_t g) {
switch (g.type) {
case INT:
:
0092デフォルトの名無しさん
NGNGそれを言うなら「関数の型は」ではないかと。
#っていうか、関数の値って何さ。void型には値はないっしょや。
0093デフォルトの名無しさん
NGNGそうとも言う。
スマンそれが正解。どっから方が出てきたのか自分でも不思議だったんだが
型と変換しようとしてミスったんだな…。
0094デフォルトの名無しさん
NGNG>>74みたいに使うのが普通の使い方なのでしょうか?
0095デフォルトの名無しさん
NGNGあくまでおれの考えだが、>>74みたいなコードはよくないと思う。
Cにはきっちりとunionという機能があるわけだから。
キャストで解決するのは最小限にすべきだとおれは考える。
んで、void *ってのは型はわからんがとにかくポインタを渡したいときに使う。
具体的にはmallocなんかいい例だ。mallocは言われたとおりの大きさのメモリを
確保してその先頭のポインタを返す関数だが、そのメモリの領域が何の型であるか
というのは事前に(malloc作成時に)は決められない。こういうときにvoid *を使う。
0096デフォルトの名無しさん
NGNGstr系関数と違って渡すポインタがchar *とは限らないから、void *にしておかないと
コンパイル時に警告が出てしまう。
0097デフォルトの名無しさん
NGNG>>74そのままではないが、不特定の型を取り扱う場合
unionだとdoubleに合わせることになって困ることも多い。
なので、>>74は(そう言う場合には)妥当解だと思う。
それにしても、
void と void * は別の語にするべきだったんじゃないかと思うんだけどね。
009895
NGNGうん、もちろん特別な場合というのももちろんあってそうする必然性があれば、
>>74のように書くのも一向に構わないと思ってる。ああいう風にしか書けない
場合もあったりするしね。
>void と void * は別の語にするべきだったんじゃないかと思うんだけどね。
staticもそうだな。可視性と記憶クラスの指定には別の語を割り当てるべきだった。
0099デフォルトの名無しさん
NGNG書く場所によって全然効果が違うじゃないか。
片方はinternにすべきだったと思う。
0100デフォルトの名無しさん
NGNGだからいいんじゃない?
0101デフォルトの名無しさん
NGNGstdio
atdlib
malloc
extern
strcomp
これらをなんて読んでますか?俺は↓のように読んでますが・・・
stdio.h → ストゥディオエイチ
stdlib.h → スタドリブエイチ
malloc → マロック
extern → イクスターン
strcomp → ストルコンプ
間違ってると恥ずかしいのであまり他の人には言えません。
0102デフォルトの名無しさん
NGNGまたクダラネーけど盛り上がりそうな話題を(w
stdio → えすてぃーでぃーあいおー or すたんだーどあいおー
stdlib → えすてぃでぃーりぶ or すたんだーどりぶ
malloc → えむあろっく
extern → えくすたーん
strcomp → すとらこんぷ or すとりんぐこんぷ
整合性まったくなし(w
0103デフォルトの名無しさん
NGNG脳内関数か
0104デフォルトの名無しさん
NGNGmalloc以外は同じだな。
まろっく、きゃろっく、りあろっく
0105デフォルトの名無しさん
NGNGstdio.h → スタンダードアイオーエイチ
stdlib.h → スタンダードリブエイチ
malloc → エムアロック
extern → エクスターン
strcomp → ストアコンプ
strpbrk → ストアピーブレーク(breakかどうか知らんが…
0107デフォルトの名無しさん
NGNGこれの読み方がわからん・・・ストリングスパンか?
0108デフォルトの名無しさん
NGNGman strspnしてみたら
NAME
strspn - span a string
とかいってるんで、それであってますな。
0109デフォルトの名無しさん
NGNGNAME
strspn, strcspn - search a string for a set of characters
と書いてある・・・(しょぼーん)
説明のどこにもspanなんて単語はないし。書けよヴォケ
0110デフォルトの名無しさん
NGNG多いのはなぜだろう。俺もなんだが。もっとも、相手により確実に
意味を通じさせることが必要な場合はエスティーアールと発音するけれども。
ちょとすれ違い気味だが、俺的に今思いついた気になるもの:
Windows API:
BitBlt びっとぶろっと?びっとぶりっと?びっとぶろっくとらんすふぁ?
UNIX commands:
sed せど?えすえど?えすいーでぃー?すとりーむえでぃた?
ar あー?えーあーる?あーかいぶ?
wc だぶるしー?わーどかうんと?
tr てぃーあーる?とらんすりたれーと?とらんす?
od おど?おーでぃ?おくたるだんぷ?
rm あーるえむ?りむーぶ?
mv えむぶい?むーぶ?
chown ちょうん?ちぇんじおーなー?
等など。UNIXコマンドは類挙にいとまが無いな。いくらでも続けられる。
0112デフォルトの名無しさん
NGNG> まろっく、きゃろっく、りあろっく
なぜ「りーろっく」じゃない?
>>110
> BitBlt びっとぶろっと?びっとぶりっと?びっとぶろっくとらんすふぁ?
Windows APIというより画像処理用語だがビットブリットでいいはず。
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG( ´∀`)σ)Д`)
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNG>>101
stdio → すとぅどぅあいおー || すたんだーどあいおー
stdlib → すとぅどぅりぶ || すたんだーどりぶ
malloc → まろーく
extern → えくすたーん
strcmp → すぅとぅるこんぷ || えすてぃーあーるこんぷ
>>110
BitBlt → びっとぶると
sed → せっど
ar → えーあーる
wc → だぶりゅーしー
tr → てぃーあーる
od → おーでぃー
rm → りむーぶ || あーるえむ
mv → むーぶ || むぶ
chown → しーえいちおうん
0117デフォルトの名無しさん
NGNGfwrite()に関してなんすけど
形 式 size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
この第3引数の"size_t nmemb"ってなんじゃーい?
たとえば
struct chinko {
int a;
char b;
char c[9];
} HOGE;
ってな構造体をfwrite()するには
fwrite ( &HOGE, sizeof(HOGE), ??, fp);
この第3引数は構造体のメンバの数、つまり"3"って
記述するの?
0118デフォルトの名無しさん
NGNG違うっす。書き込みたい構造体の数っす。
1つだけ書き込みたいなら1。
0119デフォルトの名無しさん
NGNGこの2個で十分だZE!
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGstdio → すたんだーどあいおー
stdlib →すたんだーどらいぶらりー
malloc → めもりーあろけいと
extern → えくすたーん
strcmp → すとりんぐこんぺあー
str-をストレングスとか言ったころが懐かしい。
0122デフォルトの名無しさん
NGNGnumber of memory blocks.
つまり、sizeバイトのメモリブロックを何個書くか。
正常に書きこめた場合、fwrite()の戻り値はnmembに等しくなる。
#けどバッファリングされるので、実際の書き出しは保留される可能性があるので注意。
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG俺もgetc, putcが一番好きだな。。。そう効率が悪いものでもないし
stdioの関数およびマクロ群の中で、或る意味では一番問題が少ない。
# MultiThread環境では効率上大問題だが
fwrite/freadはwrite/readを元にしているのにインタフェース的に
より不格好になっているし、何回read/writeが実行されるかわからんとか
そういう所が好きじゃない。
while ((n = read(0, buff, sizeof(buff)) > 0)
write(1, buff, n);
は端末が標準入力である場合、適切に行単位の入力をこなしてくれるが
freadでは指定したバイト数を必ず読み込もうとしてしまう。
0125デフォルトの名無しさん
NGNG>俺もgetc, putcが一番好きだな
>freadでは指定したバイト数を必ず読み込もうとしてしまう。
素朴な疑問だけど、ストリーム系と低Lvを混在させるの?
それともgetcで全てを賄うの?
0126デフォルトの名無しさん
NGNG使いなよ
0127デフォルトの名無しさん
NGNGどうすればよろしいでしょうか?
0128デフォルトの名無しさん
NGNGストリーム系ジャン
0129デフォルトの名無しさん
NGNG>>124もよく読もう。
0130デフォルトの名無しさん
NGNGBCDコードライブラリをどこからか探してくる。
0131デフォルトの名無しさん
NGNGその環境変数の値を使用したいのですが、
どのようにしたら良いのでしょうか?
このプログラムは、cshから実行し、
そのcshでその環境変数を使いたいのです。
よろしくお願いします。
0132デフォルトの名無しさん
NGNGUnixなどでは親プロセスの環境変数は換えられません。
そして擦れ違い。
0133デフォルトの名無しさん
NGNGレスありがとうございます。
しかし、どこにあるのでしょう・・・。
検索してみましたがひかかりません><
0134デフォルトの名無しさん
NGNG勿論「同一のファイルに対しては」混在させない。
getc/putc以外は「嫌いだ」と云ってるだけで、使わない訳ではないよ。
少なくとも*printfは、(Cでは)必要だろう。
0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNGよって
fputc>>>fprintf
0139デフォルトの名無しさん
NGNGfprintf(f, "%c", 0);
0140デフォルトの名無しさん
NGNG出せますが。
printf("%c", 0);
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNGという質問をしようとしてこのスレに来て、>>1のリンク先を読んでみたのですが、
>>配列の大きさはコンパイル時に定数でなければならない。
ここらへんですか〜。
初歩的で申し訳ないですが、アドバイスお願いします。
0144デフォルトの名無しさん
NGNG「同一のファイル」というのを勝手に「同一の(ソース)ファイル」
と脳内補完してしまって、一瞬(゚Д゚)ハァ?と思ったのはナイショだ(w
0145デフォルトの名無しさん
NGNG実行時に配列の大きさを決めたいってことか?
たとえば(これできないけど)
void func(size_t s) {
char a[s];
}
みたいなことやりたいとか?
だったらmalloc使いな。
0146143
NGNGどのように使えばいいのでしょうか?
初歩的で申し訳ないですが、アドバイスお願いします。
0147デフォルトの名無しさん
NGNGそんな貴方にalloca()
ご利用は計画的に
0148143
NGNG具体的には、
デバイスの数をまず調べ、その数だけ文字列を用意して、
ひとつずつデバイスの名前を入れていく感じにしたかったんです。
char device[デバイスの数][32文字];
みたいに。
リロードしてビックリ。>>146は誰?
まぁいいかー。
0149デフォルトの名無しさん
NGNGhttp://homepage2.nifty.com/arkmage/index1.html
ガクガクプルプル
かなりすごいウィルスなのでは??
対策ってもうとってるのか?俺が知らないだけか??
もし対策とってないとしたらUNIX系は全滅・・・もうダメポ・・・・
0150143
NGNGあなたこそ誰?
成りすましは勘弁して。
0151143
NGNGこんな初心者を騙って何のメリットあるんだ〜。
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNGポワン
0154143
NGNGよくある気がするんですけどね〜。どうなんでしょうか?
mallocも調べてみましたが、ちょっと難しそうです・・・。
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG{
int *a;
a = malloc(sizeof(int) * size);
/* 処理 */
free(a);
return 0;
}
エラーチェック無しだけど基本はこんなでいいんだよね?
0159デフォルトの名無しさん
NGNGa = (int *) malloc(sizeof(int) * size);
だね。
後、私は癖で
if (a) {
free(a);
a = NULL;
}
とするかな。
0160デフォルトの名無しさん
NGNGならvectorでも使っと毛
0161デフォルトの名無しさん
NGNGC89以前の方ですか?
0162デフォルトの名無しさん
NGNGC++でmalloc使うのもどうかと思うけど
0163デフォルトの名無しさん
NGNGC++ では、じゃない?
0165デフォルトの名無しさん
NGNG亀ですみませぬ。
stdioすたんだーどあいおー
atdlibすたんだーどりぶ
mallocまろっく
externえくすたーん
strcompえすてぃーあーるこんぷ
まんまですね(苦笑)
正しいのかは知らず。
0166デフォルトの名無しさん
NGNGこんな感じ。
int* a = new int[size];
// 処理
delete [] a;
0167デフォルトの名無しさん
NGNGというのもある。
delete 書かなくていいんで楽。
0168デフォルトの名無しさん
NGNGrealloc をリアロックと読むのに、
calloc をコーロックと読んでしまう…
0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNGcalloc カロック
realloc リアロック
0171143
NGNGさっそく試してみますね。
0172デフォルトの名無しさん
NGNGfree(NULL);は正常に動くぞー(つうか害は無いぞ)。
まあ癖ってんならしょうがないか。
0173デフォルトの名無しさん
NGNG古いCだと必用。
0174デフォルトの名無しさん
NGNGstdlib.h → エスティディライブヘッダ
malloc → マロク
calloc → カロク
realloc → リアロク
extern → エクステン
strcmp → エスティアールコンプ
0175デフォルトの名無しさん
NGNGなるほど。
0176デフォルトの名無しさん
NGNGライブってのは初めて聞いた
リブとかライブラリならよく聞くけど
0177143
NGNGchar moji[size1][size2];
そういう場合、intをcharに置き換えるだけではだめですよね。
応用力なくて申し訳ないです。
0178デフォルトの名無しさん
NGNGint i;
p=malloc(sizeof(char *)*size1);
for(i=0;i<size1;i++)
p[i]=malloc(size2);
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG#define INDEX2(i, j, size) ((i) * (size) + (j))
#define MALLOC(type, size) (type*)malloc(sizeof (size) * (size))
p = malloc(sizeof (char) * size1 * size2); /* char p[size1][size2]; みたいなもの */
/* こんな感じで処理
p[INDEX2(i, j, size2)] = i * j; (p[i][j] = i * j; に相当)
*/
free(p);
0181デフォルトの名無しさん
NGNGていうか、漏れは二次元以上の配列は使わないな。
全部一次元で代用。
楽だし…
0182デフォルトの名無しさん
NGNGしかも間違えてるし。
#define MALLOC(type, size) (type*)malloc(sizeof (type) * (size))
~~~~~
だな。
0183デフォルトの名無しさん
NGNGなんかスゲェ見にくいよ。
0184デフォルトの名無しさん
NGNGじゃ、書いてみて。
0185178
NGNGなんか間違っているかな(^_^;)
0186デフォルトの名無しさん
NGNGどーかあたしに愛の手を。m(_ _)m
#include<stdio.h>
#define AST "********************"
#ifdef NEW
void main(void){
int i,j,k=1,n;
printf(" n = ");
scanf("%d",&n);
for(i=1; i>=1 ; i+=k){
printf("%*.*s\n", n+1, i*2-1 , AST );
if(i == n)
k= -k;
}
}
#endif
でビルドするとエラーが2個でます。
>LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です
>Debug/rennsyu21.exe : fatal error LNK1120: 外部参照 1 が未解決です。
たぶんプリプロセッサあたりをなんかどーかするんでしょうけど、わかりません。
誰かよかったらお教えくださいませ。
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGまぁ、その配列をソートすることがある場合や
ジャグ配列を作りたい場合はそうするね。
そうでない場合は鬱陶しい上に解放が面倒なので
あまり使わないんじゃないかな。
使うときは便利なんだけどね。
>>186
NEW が定義されてないから
#ifdef から #endif までが無視されて、
main が無くなってエラー。
0189143
NGNG俺がネタと言われてるんじゃないですか〜。
嫌な思いをさせてしまって申し訳ないです。
はじめたばかりの初心者なので、ものすごいこと言ってるかもしれないです。
1次元で代用する方法を考えてみますね。
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNGcalloc は 0 クリアを伴うから malloc とは別物ジャン。
0192デフォルトの名無しさん
NGNG??=ifdef NEW
↑何の為にやってんの?
ここではじかれてるだけじゃん。
釣られた?
0193186
NGNG0195190
NGNG0196デフォルトの名無しさん
NGNG例えば、終わらないプログラムは void main で良い。
0199デフォルトの名無しさん
NGNGもしかして、
??=ifndef NEW
??=define NEW
みたいに したいのか?
0200デフォルトの名無しさん
NGNGネタですか?
#ifdef NEW
を書いたのは自分じゃないの?
用が無いなら消せばいいし、どーしてもつけておきたいならその前に
#define NEW
とか書いておけばいい。
0201デフォルトの名無しさん
NGNG??= って一瞬何のことかと思ったぞ。
# が書けないキーボードを使っているのか?
0202デフォルトの名無しさん
NGNGmainは
mainCRTStartupから呼ばれるが、
voidだった場合はどうなるんだろう?
0203186
NGNG私は学生で、学校から配布されたソースを書いてビルドしているだけです。
だから、もーわけがわからない状態でして…それでこのスレに逃げ込んできました。
少々、長くなりますが( 大体2スレ分くらい )そのソースを部分じゃなく、
全部をアプしてもかまわないでしょうか? 2スレ分を容量をとることになるのですが・・・
あつかましくってすみません・・・・
0204デフォルトの名無しさん
NGNGたまたま eax に入ってる値が返るんじゃない?
0205デフォルトの名無しさん
NGNG2レスの間違いだよね?
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGモノスゲェ量じゃねぇかよ!
1-1000までを2つ分!?
0208186 その1
NGNG#include<stdio.h>
#define AST "********************"
#ifdef NEW
void main(void){
int i,j,k=1,n;
printf(" n = ");
scanf("%d",&n);
for(i=1; i>=1 ; i+=k){
printf("%*.*s\n", n+1, i*2-1 , AST );
if(i == n)
k= -k;
}
}
#endif
/* つづきます */
0209デフォルトの名無しさん
NGNGC++とリンクするには
どうしたらいいですかね?
なるべく複雑でないやりかたで教えてください。
0210186 その2
NGNGvoid main(void){
int i,j,k=1,n;
printf(" n= ");
scanf(" %d",&n);
for (i=0 ; i>=0; i+=k){
for (j=0; j<2*n-1; j++){
if(j+1 < n-1 ll j-1 > n-1 )
printf(" ")
else
printf("*");
}
if(i == n-1)
k *= -1;
}
}
#endif
0211186 その3
NGNGvoid main(void){
int i,j,k=1,n;
printf(" n = ");
scanf(" %d ",&n);
for (i= -n+1;i<= n-1;i++){
for(j=1; j<=2*n-1 ; j++){
printf( i / (( j<2*n-j)? j : 2*n-j)? " " : "*");
}
printf("\n");
}
}
#endif
以上です。お願いいたします!どうかご教授くださいませ〜〜!m(_ _)m
0212デフォルトの名無しさん
NGNG素直に extern "C" 使いなされ。
こういう風にできるからさ。
extern "C" {
void foo();
void bar(int a);
int hogehoge(double a, int b);
}
>>208 >>210-211
どれをコンパイルしたいかによって
#define NEW
か
#define OLD
か
#define OLD2
かを、ファイルの先頭あたりで行えば良い。
0213186
NGNGたすけて〜
0214デフォルトの名無しさん
NGNGこんなの参考にしない方が今後の為だゾ!
……。
cc -DNEW source.c
とかかな?
0215デフォルトの名無しさん
NGNG#define OLD
#define OLD2
のどれか1つを
#ifdef NEW
の前の行に挿入する
0216デフォルトの名無しさん
NGNG#define AST "********************"
の下あたりに
#define NEW
を入れる、じゃあだめ?
0217デフォルトの名無しさん
NGNG先頭に以下の3つのうちどれか1つの行を入れれば動くと思われ。
#define NEW
#define OLD
#define OLD2
つーか「上の3つのうちどれを指定するか」で
「#ifdef〜#endifで囲まれた3つのうちどれを有効にするか」
を決めている訳だが。
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNG0220186
NGNG0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNGおそらくC++からCをリンクするのではなく
CからC++をリンクしたいのだと思われ
0223デフォルトの名無しさん
NGNG何でコンパイルすらできないんだ?
0224デフォルトの名無しさん
NGNGextern "C"
以外でお願いできませんでしょうか?
022517
NGNGな ぜ そ ん な に e x t e r n "C" を 拒 否 す る ?
0226186
NGNG#define OLD2 でできました!
いや〜〜〜ありがとうございます!>ALL
0227デフォルトの名無しさん
NGNGひょっとしてあれか?
ライブラリはあるが、その中身に手を加えられないってことか?
0228デフォルトの名無しさん
NGNGアセンブラに出力してシンボル名を書き直したら?
0229186
NGNG皆様、本当にありがとうございました!m(_ _)m
それでは!
0230デフォルトの名無しさん
NGNG#define ぬるぽ 0
#endif
0231デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>230
0234デフォルトの名無しさん
NGNG用意してたの?
0235デフォルトの名無しさん
NGNGでもコンパイル作業くらいはわかっただろ?
もしかしてプログラミングなのに実習がなかったのか?^^;
0236231
NGNGリロードのタイミングがよかっただけかも(w
0237186
NGNG担当の先生が答えを教えてくれないんですよ…、
自分で勉強しろ、こんぐらい雑魚でもわかる筈だろ…って。
でも私はプログラミングの経験が足りないから、シンプルなところでつまづいて
しまって…、簡単なんだけど、なかなか気づかない、一言で言えば私の勉強不足なんです。
0238デフォルトの名無しさん
NGNG勉強に関しては自分で勉強するてのは原則ではあるんだが…
質問しにいって答えなかったとかならちと問題ありかも
0239186
NGNG先生と乖離している部分があって…先生は簡単なことだから説明を省略してしまったようです。
#defineなんて簡単なことだし。すばらしい先生なんですけど。
でも、確かに簡単なことなんだけどバカのボクにはわからなくって。
家に帰ってコンパイルしてみたらエラーでるし、今日試験だし・・・・
正直パニクッたからこのスレにきました。
0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG>>237 私
>>239 ボク
0243デフォルトの名無しさん
NGNG観察するなよw
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNG何で extern "C" が必要かを知らないクチかな?
オーバーロード、名前空間という C++ の機能を考えれば
分かると思うよん。
VC++ なら次のコードをビルドしてみれ。
void foo() { }
void foo(int) { }
namespace hoge { void foo(); }
extern "C" void foo(int, int) { }
void main() { foo(); foo(0); hoge::foo(); foo(0, 0); }
多分こんなリンクエラーが出ると思う。
Test.obj : error LNK2019: 未解決の外部シンボル _foo が関数 _main で参照されました。
Test.obj : error LNK2019: 未解決の外部シンボル "void __cdecl hoge::foo(void)" (?foo@hoge@@YAXXZ) が関数 _main で参照されました。
Test.obj : error LNK2019: 未解決の外部シンボル "void __cdecl foo(int)" (?foo@@YAXH@Z) が関数 _main で参照されました。
Test.obj : error LNK2019: 未解決の外部シンボル "void __cdecl foo(void)" (?foo@@YAXXZ) が関数 _main で参照されました。
オブジェクトファイルとかの中では実際には
extern "C" foo → _foo
hoge::foo() → ?foo@hoge@@YAXXZ
foo() → ?foo@@YAXXZ
foo(int) → ?foo@@YAXH@Z
とか名前が変わってるわけ。(変わり方はコンパイラ依存)
extern "C" のある時(Cを使った時)とそうじゃないときじゃ
全然名前の変わり方が違うっしょ?
C++ だと引数の型や名前空間の情報も名前に含めるの。
これが同じ名前の関数を複数定義できる仕組みでもあるわけだけど。
extern "C" を使わないで何とかするんじゃなくて、
extern "C" を使って何とかする方向で考えるべきだと思われ。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGおおむねわかったぜジョニー
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG勿論、解った上で聞いてるんだが…。
そうですか、無理ですか。
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGこれ以上に簡潔な書き方ってありますでしょうか??暇な人いたら見てやってください。
#include <stdio.h>
int uclid(int,int);
void main()
{
int a,b;
while (1){
printf("a="); scanf("%d",&a);
printf("b="); scanf("%d",&b);
if (a <= 0 || b <= 0) break;
if (a >= b) printf("%d\n",uclid(a,b));
else printf("%d\n",uclid(b,a));
}
}
int uclid(int a,int b)
{
int n;
while (a%b != 0){n=a; a=b; b=n%b;}
return (b);
}
0253デフォルトの名無しさん
NGNGとかやって使えばいいじゃん。
? とか @ が識別子に使えないならコンパイラを改造してさ。
0254デフォルトの名無しさん
NGNGvoid main()と宣言してうまくいかないわけがないと思う。なぜなら main()から戻る代わりに、exit()を呼んでいるから。だいたい今使っ ているO/Sはプログラムのexit値/戻り値を無視する。
A:
main()から戻ってくるかどうかは関係ないし、そのステータスを見る かどうかも関係ない。問題はmain()の宣言がおかしいと、呼び出し側 (実行時のスタートアップのコード)がmain()を正しく呼び出すことす らできないかもしれないことにある。
君が使っているO/Sは終了時のステータスを無視して、void main()で もうまく動くかもしれない。しかし、このやりかたは移植性が低いし、 正しくもない。ボク女(;´Д`)ハァハァ
0255デフォルトの名無しさん
NGNGただ呼ぶだけじゃだめだな。
コンパイラがthisをどう渡すかとか、vtblの扱い方とか知らないと。
0256デフォルトの名無しさん
NGNGボク娘は確かに萌えるが、何故に?
0257デフォルトの名無しさん
NGNGたとえmainからでもちゃんとreturnしたいね。
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG構造化の基本を無視してる
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNGが、面倒な時は使う。
0265デフォルトの名無しさん
NGNG面倒じゃないときはどうしている?
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNG使ったことないよ。
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNGまさかvoid mainだから?
0271デフォルトの名無しさん
NGNG一度は使ってみたいけど
機会がない
0272デフォルトの名無しさん
NGNGvoid usage()
{
fprintf(stderr, "cmd: [-H | -L ] [-Aoutd] [file...]\n");
exit(1);
}
などは典型的な例だが見たことないか?
mallocに失敗した場合にできることが殆どないプログラムの
場合は、単にエラーを吐いて死ぬようなmallocラッパーを使うことも
多いだろう。
0273デフォルトの名無しさん
NGNGなるほど、
でも、やっぱり使わないなぁ…
所詮は好みの問題か。
他にはcoolな使い方無いかな?
0274デフォルトの名無しさん
NGNGuclid()の仕様が……
大小判断くらい関数内でしてもいいんでないかい?
それと、私ならscanf()は使わない。
どうでもいいけど、
while (1)
と
return (b);
がもにょる。
0275デフォルトの名無しさん
NGNGint main(int argc, char **argv)
{
/* 処理 */
if (/* 条件 */) {
usage(argv[0]);
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
0276デフォルトの名無しさん
NGNGmainにいないときは?
0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNGreturn usage(/*argv[0]もあるかな*/);
かな。
argv[0]はウィンドズだと変になるからねぇ。
0279デフォルトの名無しさん
NGNGCOMをまなびなはれ
0280デフォルトの名無しさん
NGNGmain() 以外のいろんな箇所から、使用法を表示して直ちに終了という処理が
必要になるなら、プログラム設計をやり直した方がいい。
0281デフォルトの名無しさん
NGNGint uclid(int a,int b){
int n;
while(a%b){n=a; a=b; b=n%b;}
return b;
}
void main(){
int a,b;
while (1){
printf("a="); scanf("%d",&a);
printf("b="); scanf("%d",&b);
if (a <= 0 || b <= 0) break;
printf("%d\n",uclid( a<b?b:a, a<b?a:b));
}}
0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNG予め多く確保しておいた方がいいのか?
0284デフォルトの名無しさん
NGNG関数の定義の仕方は解るのですが、同じような感じにやったらいいのでしょうか?
初心者な質問ですみません…
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG測定すればいい。それが「十分に早い」かどうかは、そのプログラムに対する
性能要求・環境・mallocの実装の質etc...に依存するので、一般的な回答は
有り得ない。
それでも敢えて云うならば、平均的なC++プログラムではそれこそ山のように
new/deleteが暗黙に使用される(自分で呼んだつもりはなくとも、stringや
vectorのような一般的な道具を使うたびに当然暗黙には使用される訳だ)
ことを考えれば、いわゆるHosted environmentにおいてCを使っている分には、
mallocの性能なんぞ気にする必要はなかろう。
0287デフォルトの名無しさん
NGNG五個の配列を合計して割って平均値を出したいのですがこのソースでできますか?今コンパイル環境がないのでよろしくお願いします
int test[5]={100,90,80,70,60}
int count,avg;
avg = 0;
for(count=0; count<=4; count++){
avg=avg+test[count];}
printf(゙%d\n゙,avg/5);
0288デフォルトの名無しさん
NGNG出来ない。
0289デフォルトの名無しさん
NGNG1行目の;が(ry
avg(ry)sum(ry
ダブルコーテーションが(ry
mai(ry
0290デフォルトの名無しさん
NGNG○の部分にはなにをいれればいいです?
検索のキーワードのヒントだけでもいいです。
#include<stdio.h>
int main()
{
unsigned int i;
for(i = 'A'; i <= 'Z'; i++)
{
printf("%X, %○\n",i, i);
}
return 0;
}
0291デフォルトの名無しさん
NGNGカコイイ!
0292デフォルトの名無しさん
NGNGつまり、テスト中に携帯からカンニング中ということですか?
0293デフォルトの名無しさん
NGNGマック使いカコイイ!
それかX68kか?
0295デフォルトの名無しさん
NGNG0296デフォルトの名無しさん
NGNGfor(i='A'; i<='Z'; i++)
{
printf("%04xH, %c%c\n", i, i>>1, i&0xff);
}
マックだよね?
0298デフォルトの名無しさん
NGNGひっくり返すってのは1バイト目と2バイト目をひっくり返すってこと?
0299デフォルトの名無しさん
NGNG少なくとも俺が知っている範疇のC言語ではシングルクオートによる
文字リテラルではchar型しか扱えないんだから、その中に
ワイド文字がブチこんである時点でよく分からない。
本当はL'A'
と書いてあったのか?
だとすると、エンディアン変換を適当に行って1バイトずつ出力しても
思ったとおりの結果にはならない可能性が高いよ。ワイド文字の
エンコーディング方式は規格上は何も定義されていないが、
多くの処理系はそれをUCS2/UCF16/UTF32などでエンコードするからね。
0300デフォルトの名無しさん
NGNGすまんUTF16の間違いね。もちろん。
0301デフォルトの名無しさん
NGNG少なくともSunOSでは扱える。
Versionが4の頃と5になってからではバイト順が変わってしまった気がするけど。
0302デフォルトの名無しさん
NGNGint main(){
unsigned int i, z, w;
i=*(unsigned int *)"A\0\0";
w=(i&0xff)<<8;
i=(i>>8)|w;
z=*(unsigned int *)"Z\0\0";
w=(z&0xff)<<8;
z=(z>>8)|w;
for(; i<=z; i++)
{
printf("%02x%02xH, %c%c\n", i>>8, i&0xff, i>>8, i&0xff);
}
}
携帯だから確認できん、だれか試して。
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNGforの時にヤバイのよ。
0305デフォルトの名無しさん
NGNGi += 256;
でいいと思ったり。
0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNGお、できた。
ありがとう。
0308デフォルトの名無しさん
NGNGメヂャーな国で使うとこってあるの?
スペーンとかフランスとか、、、
0309デフォルトの名無しさん
NGNGなったよね?
0310デフォルトの名無しさん
NGNG北欧各国で使うんでない?
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNGガッ
0317デフォルトの名無しさん
NGNGint hage[3000];
という配列の hage[1901]からhage[2030]までを値を代入して初期化したいのですが、
hage[]={ 1,2,3,4,5,6,7,8,9 ・・・・・};
みたいなふうにして、1901から値を代入することってできますか。
方法があれば教えてください。
今は、別配列にいったん入れてからコピーしています。
0318デフォルトの名無しさん
NGNG>>317
入れる値がばらばら(規則性がない)なら一つずつ入れるかあなたの言うようにmemcpyなどで別配列からコピーするしかない。
0319デフォルトの名無しさん
NGNG年を入れるつもりなのだな。
それなら、int hage[130]で宣言して、i+1901で参照すればいいのでは?
0320317
NGNG入れる値は規則性は、厳密に言えば無くはないんですが、複雑で別プログラムで計算したものを
代入しています。
やっぱり方法はないんですか。
配列は最終的には、3000全部使う予定なので>>319さんの方法ではだめなんです。
int hage[1900]=[1,2,3,4,5,6,・・・];
みたいに書くことができれば理想なんですが。
0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNGそのうちに習得できます
0323デフォルトの名無しさん
NGNG大体1週間くらいあれば十分かな。
0324デフォルトの名無しさん
NGNGこの週末だけで習得可能
0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNGコンパイラが耐えられるのであれば、何らかのプログラムで
初期化する式(コード)を生成して、それをソースにするという手はある。
PerlとかRubyとかawkとかいったスクリプト言語系ならお手軽だろう。
0327デフォルトの名無しさん
NGNG宿題スレに行け
0328デフォルトの名無しさん
NGNGint a[3000];
struct{
int b[1900];
int c[2100]={1,2,3,3,5,6};
};
};
ってのは無理なのですか?
0329デフォルトの名無しさん
NGNG名前の無い構造体って作れたっけ?
0330デフォルトの名無しさん
NGNG問題はそこでなく、配列を途中から初期化することで、、
0331デフォルトの名無しさん
NGNG・書式が間違っている。
・1900+2100は4000だろう。計算はできるだけ自分でするな。
・こうすりゃできるけどやっぱり面倒だぞ。
#define SEC1LEN 1900
#define SEC2LEN 1100
union {
struct {
int sec1[SEC1LEN];
int sec2[SEC2LEN];
} sec;
int all[SEC1LEN + SEC2LEN];
} data = {{{0,}, {1, 2, 3, 4, 5,}}};
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNGstrub point *p;
p->x
を
p.x
ってかけるようにしてくれよ。
構文上あいまいになることもなさそうだし。
0334デフォルトの名無しさん
NGNG(*p).xって書くのがめんどいからあるんじゃなかったっけ
0335デフォルトの名無しさん
NGNG. と -> の優先度は同じだが?
巨大な構造体を関数に渡す時はポインタを使った方が効率が良いんじゃないか?
0336デフォルトの名無しさん
NGNGp->xとp.xは違うデアリマス。セグメンテーションフォールト起こしそうであります。
0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNG今日はどうしてもみんなに言っておかなければならないことがあるんだ。
そしてみんなも、この言葉を胸に深く刻み込んで、
これからの人生を力強く生きていって欲しい。
貧 乳 マ ン セ ー !
0339デフォルトの名無しさん
NGNG助けてください!!!!!!!!!!!!!!
0340デフォルトの名無しさん
NGNG氏ね。
だが貧乳マンセーにはもげしく同意。
0341デフォルトの名無しさん
NGNGCではいいがC++がとんでもないことになるのでやめてくれ
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNGビッゲンディアン
どっちが好き?
漏れはリトレンディアンかな。
MIDIとかネットでメンドイけどね…
0345デフォルトの名無しさん
NGNGそうでない場合はそれ自身を使う、
という仕様で何か問題ある?
::, ., -> は全部 . に統一しる!
0346デフォルトの名無しさん
NGNG仮定・・・?
0347デフォルトの名無しさん
NGNGDではそうなってるよ
0348デフォルトの名無しさん
NGNGstruct HOGEEE **pの場合はどうするんだろ。
二回間接参照するのか?
0349デフォルトの名無しさん
NGNGきっと「漏れ2重ポインタも理解できます」なんて面接で言っちゃうんだろうなぁ。
0350デフォルトの名無しさん
NGNGDでダブルポインタ使うメリットってあんまり無いぞ。
0351デフォルトの名無しさん
NGNG>>350
Dの話ならスレ立てて勝手にやってくれ。
>>349
この前「ダプルポインタは理解できますがトリプルポインタは自信がありません」と言った奴がいたよ。
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNGアロー演算子が嫌なら (*p).hoge とでもやっとけば?
0354デフォルトの名無しさん
NGNG漏れもちょっと自身がないな。
0355名無しさん
NGNGchar *argv[] だ。
0356デフォルトの名無しさん
NGNG助けていただけませんか?
ファイルをオープンして、それに書き込むところの
fputs("Hello!\n", fp);
の処理なのですが、このfpはいったい何を指してるのでしょうか?
なぜfpが必要なのでしょうか?教えていただけませんか?
もし、全体のソースコードが必要なら載せます。
では、よろしくおねがいします。
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNGその本に書いてあるはずだが。
0359356
NGNG読んでも、FILE *fpはファイルポインタ、ということしか書いてなく、
fputs("Hello!\n", fp);のfpの意味がわからないのです・・・。
どうか教えていただけませんか?
0360デフォルトの名無しさん
NGNGファイルハンドルに決まってる堕炉。
0361デフォルトの名無しさん
NGNGならば聞こう。
fpを渡さずにどうやって書き出すファイルを識別するんだ?
0362デフォルトの名無しさん
NGNGFILE* fp = fopen("hogehoge", "w");
fp->fputs("hogehoge");
と言う事だ、わかったか?
0363デフォルトの名無しさん
NGNG> fp->fputs("hogehoge");
ちょっとまて。
0364デフォルトの名無しさん
NGNG0365356
NGNGで、もうひとつ質問です。
私今自分が書いた文字をテキストに書き出そうとしてるのですが
char memo[100];
scanf("%s",memo);
でmemo[]に格納した文字があるとしますよね?
そしたら、その文字をtxtファイルに書き出すときfputsで
どのようにすればいいのでしょうか?
今までは
printf("%s",memo);
でできたのですがfputsでやる場合はどうすればいいのか・・・
fputs("%s",memo,fp);
かなと思ってやってみたところできなく、fpとは何かの質問をしたわけです。
どうかよろしくお願いします。
0366デフォルトの名無しさん
NGNGfputsのプロトタイプ
int fputs(char * buf, FILE * fp);
0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNGfputsのソースを読めば解る
0369デフォルトの名無しさん
NGNG?
0370356
NGNGchar memo[100];
scanf("%s",memo);
で入力した文字をテキストに書き出すのは
fputs()でもできるんですよね?
0371356
NGNGありがとうございました。
その方法でできました。
どうもありがとうございました。
0372デフォルトの名無しさん
NGNG> scanf("%s",memo);
うお!こっこれは、噂のノーガードパターン??
0373デフォルトの名無しさん
NGNG> printf("%s",memo);
> でできたのですがfputsでやる場合はどうすればいいのか・・・
この前提が間違っている。
fputs() と対であるのは printf() ではなく puts() だ。
printf() と対なのは fprintf()。
0374デフォルトの名無しさん
NGNGそれはどうやればいいのでしょうか?
IMEが使えないし・・・
教えていただけないでしょうか?
0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNGCとは関係ない
0377デフォルトの名無しさん
NGNGいまどきDOSなんか使わないでWindows使いなよ。
コマンドプロンプトもあるんだし。
0378デフォルトの名無しさん
NGNG>>373
いえ、そういう相対的な意味ではなく、
「今まではDOS窓にprintf()でできた。ファイルに書き込むのはどうやるんだ?」
という意味です。まだ入門書レベルなのでfprintf()やputs()等は知りません。
>>375
それは大丈夫です。
しっかりとfclose(fp);をつけてますので。
0379374
NGNGchar hoge[10];
gets(hoge);
等で文字を入力するとき、DOS窓から漢字などを入力したいのです。
どうか教えていただけませんか?
0380デフォルトの名無しさん
NGNGC:\>dosime
C:\>selkkc
とか試したか?
0381デフォルトの名無しさん
NGNGgets puts から始めりゃいいんじゃねぇの?
getsの文句はとりあえずおいといて
0382デフォルトの名無しさん
NGNG0383374
NGNGそれはやってないですが、
char hoge[10];
gets(hoge);
のようなばあい、それは使えませんよね?
いきなり文字入力画面になるので。
0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNGprintf scanf はデバッグに便利
0386デフォルトの名無しさん
NGNGAlt + 半角/全角キー
押しても出てこないのか?
普段マウスでIME使う人?
0387デフォルトの名無しさん
NGNGgets()は使うな。
0388デフォルトの名無しさん
NGNG374じゃないけど、Alt + 半角/全角で出たよ
普段は半角/全角だけでやってる
Alt + 半角/全角はWin95以来使ってない
0389デフォルトの名無しさん
NGNGfclose()のエラーチェックも忘れるなよ。
0390374
NGNGWindowsの文字入力ダイアログのようなものを作れってことですか?
それが一番やりたいんですけど、本にも載ってませんし
作り方がわからないんですよ。
Javaスクリプトなどなら簡単なのですが・・・。
Cでダイアログ形式はできないんです。
0392デフォルトの名無しさん
NGNGBCC DeveloperとBCCForm and BCCSkeltonを拾ってきなさい。
0393デフォルトの名無しさん
NGNGfclose()の戻り値をちゃんと確認すること。
勿論、fputs()の戻り値もちゃんと確認しろよ。
ちなみに、どっちも正常終了なら0だ。
0394374
NGNGVisualStudio.NETではできないのですか?
同じようなことを。
0395デフォルトの名無しさん
NGNG猫逝け。以上。
0396デフォルトの名無しさん
NGNGVC++もってるならVC++のダイアログエディタを使いなさい。
VC++ならMFC使ってちょちょいのちょいで出来るでしょ?
0397374
NGNGモニタ通して見るの疲れるんで、明日本買ってきます。
>396
わかりました。まだVisualStudio内のVisualC++で
コンソールアプリの製作しかしたことないんで・・・。
ダイアログエディタ、使ってみます。
便乗質問ですが、VisualStudioの使い方覚えるのに
VisualC++の本を買うのは正解でしょうか?
やめといたほうがいいですか?
0398デフォルトの名無しさん
NGNGヘルプで十分
0399374
NGNGわかりました。
というか・・・
ついさっきVisualStudio→新規プロジェクト→VC++→MFCアプリで
やってみたのですが、ダイアログエディタなんて見当たらないのですが・・・。
ツールバー一式を見ても見当たらないし・・・
どこにあるんですか?
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG0402374
NGNGそれならMFCアプリではなくてもありますね。
でも・・・何もない・・・。
MFCアプリとして新規プロジェクトを作ったらリソースビューにも
いろいろあってわかったのですがコンソールアプリとして作った場合、デフォルトでは
何もないんです。
やっぱり全然使いこなせてないなぁ。
0403デフォルトの名無しさん
NGNG黙れ小手川
0404374
NGNGやっぱり、自分で手探りでやってみます。
わからなくても、それが自分のためになると思ったので。
今までの自分の書き込みを見たら教えて厨丸出しだったので。
どうもすいませんでした。
0405デフォルトの名無しさん
NGNG* か [ ] してから . だろうな。
0406デフォルトの名無しさん
NGNGKKCFUNC.SYS
COMMAND.COM
MSIME.SYS
MSIMED.SYS
MSIMEK.SYS
ADDDRV.EXE
MSIMEKEY.INI
MSIMER.DIC
MSIME.DIC
DOSIME.SYS
を用意してpathを通す。
//バッチファイルでDOSIME.SYSを組み込む
ADDDRV DOSIME.SYS
//DOSIME.SYSの記述
devicehigh=KKCFUNC.SYS
devicehigh=msimek.sys /A3 /SB32 /SD32
devicehigh=msime.sys /D*msimer.dic /C1 /N /A3 /Dmsime.dic
//スイッチはネット調べるよろし。
0407374=404
NGNGん?それは私に対してのレスですか?
0408デフォルトの名無しさん
NGNG入力用ダイアログ作るって事になったんだから、もう良いじゃんよ。
0409デフォルトの名無しさん
NGNG0410404
NGNG文字の入力できるダイアログを作ろうとがんばってます。
0411デフォルトの名無しさん
NGNG今、cygwinと言うソフトを使ってCの勉強を始めようと思ったのですが、
メモ帳で書き込んだファイルを読み取ってくれません。
(cygwinの表示画面にls、CATなどを打ちこむと、
NO SUCH FILEとか出てしまいます。)
どうすれば良いか、わかる方いらっしゃいませんか?
スレ汚しすいません。 sage
0412デフォルトの名無しさん
NGNGそれはC以前の問題だ。
cygwinスレいけ(あるかどうかしらんが)
0413デフォルトの名無しさん
NGNG2chにどれくらいいるんだろう
0414デフォルトの名無しさん
NGNG本人の書き込みであって欲しいけどね。
0415デフォルトの名無しさん
NGNGむしろPC初心者板。
hello.c.txtなどというファイルを作ってるに5120ウォン
0416デフォルトの名無しさん
NGNGむしろああいう書き込みは不愉快^^;
0417404
NGNG>414
ありがとうございます。
>416
なんでですか?
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNGありがとうございました。
0420404
NGNGダイアログエディタで作ったダイアログを.rcファイルとどう絡ませればいいのか
わからないんです。
作った.exeを起動したら、win文字入力ダイアログが出てきて、
文字を入力、保存。
すると保存した文字はmemo.txtに保存され、TClockのツールチップとして表示・・・。
こんなんを作りたいんですが・・・。
.cのソースはできたんですけど、DOSで開かないでWinで開くのにはどうしたらいいのか・・・
0421デフォルトの名無しさん
NGNGどっちかというと
Windows Programing for C/C++(Not MFC)
http://pc2.2ch.net/test/read.cgi/tech/1018239290/
向けかと。
コンソールアプリとWin32APIアプリと使いわけてる?
0422404
NGNGいえ、使い分けてません。
VisualStudioで、新規プロジェクト、VisualC++、コンソールアプリ、
の手順で作成しましたから。
そっちのスレにいって聞いたほうがいいですか?
0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNGrubyはなぜ.でつなぐんだ?
0426デフォルトの名無しさん
NGNGまことに遺憾ながら、あなたの発言を原因に地球が滅ぼされる事が決定されました。
0427デフォルトの名無しさん
NGNGMFCはMFCのAppWizardで作れって。
0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNGchar *p = "Hello, C";
printf("%s\n", p);
この場合、
pの指す値("Hello, C")はどこにあるのですか。
そしてこいつの内容は"Hello, C"であるといつまで保証されていますか。
ぼくにはわかりません。
0430デフォルトの名無しさん
NGNGその餌じゃ大漁は無理ぽ
0431デフォルトの名無しさん
NGNG>どこにある
どこか。それはコンパイラが知っている。
>いつまで
必要なだけ。書き換えなければいつまでもそのままだろ。
0432429
NGNGchar *p = "Hello, C";
(何らかの処理)
printf("%s\n", p);
とした場合、
printfでpが参照されている時点では、pが指す値は"Hello, C"であると保証されているのですか?
0433デフォルトの名無しさん
NGNG何らかの処理の間に書き換えてしまう可能性は常にある。
だから、誰も保証はしないだろ。
何らかの処理の間に書き換えてさえいなければ大丈夫だ。
0434デフォルトの名無しさん
NGNGたぶん不可能な処理系の方が多いのでは。
0435デフォルトの名無しさん
NGNGC FAQ 読んできてよ。
0436429
NGNGあ、そらそうですよね。
たとえば、
void foo(){
char str[] = "Hello, C";
char *p = "Hello, C";
(何らかの処理。p,strの指す内容の書き換えは行わない)
printf("%s\n", str);
printf("%s\n", p);
}
という場合、配列strの内容については、
こちらが明示的に書き換える処理を行わない限り"Hello, C"
でありつづけることが保証されているように思えます。
といいつつ、本当はよく知りません。
pの指す内容については明示的に領域を確保していませんよね。
この場合、どのように扱われるのでしょうか。
一時的にメモリのどこかに確保されるとは思うのですが、
そこから先どういう扱われ方をするのかわかりません。
その内容はいつ破壊されていてもおかしくない。ということなのでしょうか。
0437デフォルトの名無しさん
NGNG仕様上は不可能。
constがついていないのは過去のソースとの互換性のためかと。
char *p="ぬるぽ"; これでいちいち警告を出されたらたまらん。
0438デフォルトの名無しさん
NGNGpの指す内容はコンパイラがどっかに確保してくれてる。
というか、文字列で明示的にどこかを指すように保証してるじゃないか。
んでも、厳密に文字列リテラルがどこにあるかを知ってるのは
コンパイラじゃなくてリンカだろうな。リンク時に確定するはず。
0439デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>437
0440ぬ
NGNG0441デフォルトの名無しさん
NGNGpがいつまでも"Hello, C"を指してる保証はまったくないわけだが
0442デフォルトの名無しさん
NGNG誰がそんなこといった??
0443デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>440
0444デフォルトの名無しさん
NGNG*p = 'a'; は出来ないが、p = NULL; は出来るって事だろ。
0445デフォルトの名無しさん
NGNGできるけど、誰も「できない」とは言っていないでしょ?
ひとりごと
0446デフォルトの名無しさん
NGNG"Hello, C" と "%s\n" はどっちもリテラル
だからこれは両方とも同じ結果になる
char *p = "Hello, C";
printf("%s\n", p);
char *p = "Hello, C\n";
printf(p);
0447デフォルトの名無しさん
NGNGchar *p= "Hello, C\n";
char a[] = "Hello, D\n";
p=a;
*p='B';
printf(p);
}
void tst2(){
char *p = "Hello, C\n";
printf(p);
}
void tst3(){
char *p = "Hello, C\n";
*p='B';
printf(p);
}
0448デフォルトの名無しさん
NGNGchar a[];
char *b;
printf("%d %d %d\n", a[0], a, &a);
printf("%d %d %d\n", *b, b, &b);
}
(´∀`)なんじゃこりゃ
0449デフォルトの名無しさん
NGNG>"Hello, C" と "%s\n" はどっちもリテラル
>だからこれは両方とも同じ結果になる
>char *p = "Hello, %C";
>printf("%s\n", p);
>char *p = "Hello, %C\n";
>printf(p);
違う結果だ。
0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNG次にc/c++に移りたいと思っているのですが
cを学習してからc++に移るべきか、それとも
c++だけでcの学習は無くてもc++の内容を理解できるか、
どなたかお教えいただけませんか。
0453デフォルトの名無しさん
NGNG432が保証されてるかどうか聞いてるんだから保証されてないと答えるのは当然だと思うが。
それとも誰かが保証されてると答えてからでないと、保証されてないと答えてはいけないのか?
0454デフォルトの名無しさん
NGNG俺の経験から行くと、Cの仕様書を読んでからC++をはじめたほうがいい。
多言語経験があればC++から始めてもまったく問題なく使えるが、
一見C++とCの共通項に見えて実はCにしかできないこと、Cにはできないこと、などがあいまいになってしまう。
普通こういうコミュニティとかではCが共通語として使用されるので
Cで書いたつもりになってても、じつはC++にしかない機能を使ってたりなんてことがよくある。
0455デフォルトの名無しさん
NGNG仕様書と規格書の違いは何?
0456411
NGNG遅れましたが、レスどうもです。
言われたとおり初心者板で聞いてみます。
でも、.txt なんて打ってないんですが…。
ありがとうございました!!!
0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNGレスどうもです。
背中を押して頂きました。
やはり横着をして楽をする訳には
いきませんね。
cから、学習を始めます。
0459
NGNGIntel Pentium III Xeon , Debian GNU/Linux 3.0r1, GCC 2.95.2 で試してみました。
1)float に適当な浮動小数点を代入。
2)sizeof (float) によると4バイトらしい。
3)メモリに格納されている float をアドレスの小さい方から見てみる。
0.5 => 0,0,0,63
1.0 => 0,0,128,63
2.0 => 0,0,0,64
4.0 => 0,0,128,64
-0.1 => 0,0,128,191
む・・・・規則がわからん。
0460デフォルトの名無しさん
NGNGなんでそれで >>459 みたいな表現になるのかと・・・
0.5 と 1.0 の関係とか・・・
0463デフォルトの名無しさん
NGNGそこまで分かってるなら…
x86はリトルエンディアンだから、アドレスの大きい方から逆順に見ないと
だめだし、10進数のままじゃ理解しにくいだろうから2進で表示したら?
0464デフォルトの名無しさん
NGNG単純に 32bit 上位から
符号 1 bit
指数 8 bit
仮数 23 bit
じゃない・・・・のか?
いまから IEEE 754 読む。
0466デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNGsizeof(kouzoutai)で測れますよね。
それでは、char buf[3000];
という配列をsizeofで計測すると
3000が返ってきますよね?
このbufの中に例えば200バイトしか
入ってなかった場合、そのサイズを求めるには
strlen()を使用するものなのでしょうか?
スペースがbufの中に含まれているので
微妙です。
どなたか御教授お願いいたしますです。
0470デフォルトの名無しさん
NGNG違う。公開されている改造コードがそうなっていた。
PSはリトルなんだけど。
0471デフォルトの名無しさん
NGNGインテル系は昔の奴の互換するためになってるんだろ?
昔は16bitだったし…
0472デフォルトの名無しさん
NGNGLinux持ってるけどリトルエンディアンだったよ>PS2
0473デフォルトの名無しさん
NGNG入れた覚えがなくても、なにかしら入っている。
文字列の長さを知りたかったらstrlen
0474デフォルトの名無しさん
NGNGワードマシン?
0475
NGNGhttp://research.microsoft.com/~hollasch/cgindex/coding/ieeefloat.html
ありがとうマイクロソフト。
0476デフォルトの名無しさん
NGNG一般に使われてる数字の表記法に問題があるだけだと気づいてからは
今は同じ理由でビッグエンディアンがキモイ。
まぁ、普段はどっちだろうと気にしないんだけどな、
クロスプラットフォームのデータは意識的にどっちかにあわせないといけないからめんどいな。
0477デフォルトの名無しさん
NGNGお前がいなくても世間は動いているけどな。
0478デフォルトの名無しさん
NGNGはっきりいってお前は、親から世間を
教えてもらえなかったのがまずかったのかな。
普通の日本人は理解しているぜ。
0480デフォルトの名無しさん
NGNG0481448
NGNGくだらないこと聞いてすみませんでした。。。
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNG2 little
3 little endian
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNG決まってません。というか、どちらでも平気。
基本的に送信側が送ってきたバイトオーダーに従う。
そいやDCE RPCはPDPエンディアンの記述もあったな〜
0488デフォルトの名無しさん
NGNG真珠?
0489デフォルトの名無しさん
NGNGコイツ は パール を 知らねぃのか? プ
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNGプ
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNGint main()
{
printf("ぬる");
puts("ぽん");
return 0;
}
これでprintfとputsは中身まで含めてちゃんと消える?
どっちかダメ?
0498デフォルトの名無しさん
NGNGsscanfとfgetsでチェックしながら入力させる・・・・・・ということを聞き、
早速、
char str[20];
char buf[20];
for (i = 0; i < MAX; i++){
while (1){
fgets(buf, MAX, stdin);
if (sscanf(buf, "%s", str) == 1);
break;
printf("もう一度入力して下さい。\n");
}
みたいな感じで実践してます。ここで疑問に思ったんですが、文字列だけでなく
数値を入力させる際にも気をつけておくべき「定石」みたいな方法があると思うんです。
こういったエラーを防ぐときに、みなさんが実務で使われている方法ってどんなものなんでしょうか?
上の改良すればいけるんじゃないかとは思ってるんですが・・・・
0499デフォルトの名無しさん
NGNG> #define printf(hoge)#define puts()
#define printf(hoge)
#define puts(hoge)
こうしないとエラーになる。
しかし、printf()は可変引数だから一般的にはこれだけじゃダメ
0500498
NGNG数値を入力する際の、型のサイズ越えとか、間違えて文字列を入力してまった、とか
そういう部分でのエラー検出方法ですね。
0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNGif()の戻り値ってint型なの?
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNG・fgets()の使い方が変。
fgets()用バッファとサイズを揃えるのが一般的。
なので、
char buf[20];
fgets(buf, sizeof(buf), stdin);
とするか、
#define TMP_BUF_LEN 20
fgets(buf, TMP_BUF_LEN, stdin);
などとする。
・全体のロジックは不明だけど少なくとも{}がアンマッチ。
0505デフォルトの名無しさん
NGNGchar hoge;
sscan(buf,"%02x",buf2);
hoge = *(int *)buf2;
*str +=3;
}
上記のような関数があってmain側で呼び出す際に
char hogeを利用したのですが、いかようにすればよろしいの
でしょうか?初心な質問で申し訳ございませんが
御教授お願い致します。
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNG#define printf
#define puts
引数に副作用が無いならコレで OK
0508デフォルトの名無しさん
NGNGという複数のファイル編集を下のような方法で行っているのですが、
もっと標準的な方法はあるのでしょうか?
char filename[12];
for(int i=1;i<=MaxNumberOfFiles;i++){
sprintf(filename,"hoge%d.txt",i);
fp=fopen(filename,"w");
/* 編集 */
fclose(fp);
}
0509デフォルトの名無しさん
NGNG本当に凄い奴だと思った。
http://homepage3.nifty.com/digikei/ten.html
0510デフォルトの名無しさん
NGNGmain(){
int i,a[10]={35,67,28,19,83,98,71,58,5,90}
int max,min;
max=a[0]; min=a[0];
for(i=1;i<10;i++){
if(max<a[i]) max=a[i];
if(min>a[i]) min=a[i];
}}
このプログラムの中間コードと目的コードを教えて欲しいのです。
また、UNIXコマンドで生成できるのであればそのコマンドを
教えていただけませんでしょうか・・。m(__)m
0511デフォルトの名無しさん
NGNG標準的な方法は知らないが、すくなくともおれだったら
fopenからfcloseまでの部分を別の関数にまとめる。
0512デフォルトの名無しさん
NGNG質問の意味がよくわからない。中間コードとはなんだろう。
目的コードとは? UNIXコマンドで何を生成したいんだろう。
処理系がgccだとして、-save-tempsが求める答えなのかな。
0513デフォルトの名無しさん
NGNGcc -S
cc -c
0514デフォルトの名無しさん
NGNGttp://www.hpcs.is.tsukuba.ac.jp/~msato/lecture-note/comp2002/1/lecture1.pdf
みたいなもの、らしいです(自分もよく理解してないっす)
>>513
サンクスです。
えと、 cc -Sが中間コードでcc -cが目的コードでしょうか?
googleで検索しても英文字のせいかうまく検索できないっす。。。。泣
0515デフォルトの名無しさん
NGNGAcrobatReader入っていないから読めないんだけど、なんて書いてある?
0516デフォルトの名無しさん
NGNG中間コードの出力のしかたはわからないや。
0517510
NGNGこっちのほうがわかりやすいかも
ttp://www.hi.sfc.keio.ac.jp/~yosuke/keisan-kino-ron/10th.html
プログラムのアセンブリコードを最適化したのが中間コード・・らしいです。
昨日からずーっと目的コードを調べてるのに一向に理解できない(TωT)
0518デフォルトの名無しさん
NGNGスレ違いじゃないか、とは思わないか?
コンパイラの本でも読めば?
0519デフォルトの名無しさん
NGNGはぁ?
なんか、物凄く一般的でない話になってないか?
0520デフォルトの名無しさん
NGNGgcc の場合は gasm に落として最適化するから、
それが中間コードと言えなくもない。
0521デフォルトの名無しさん
NGNGgasmってなんでつか?
0522510
NGNG今、なんとか中間コードを生成するコマンドを発見しました。
gcc -S test.c でアセンブリコード生成
gcc -O2 -S test.c 最適化されたコード(中間コード?)を生成
egcsをインストしてようやくできました。
0523デフォルトの名無しさん
NGNGオブジェクトファイルやらアセンブラコード等
Winなら *.obj *.s *.asm 等
目的コード
ロードモジュール
Winなら *.exe *.dll
↑なんじゃないの?
0524デフォルトの名無しさん
NGNG人によって呼び方が違ったり訳し方が違ったり・・・
objectには目的という意味がある
コンパイルで生成するobjファイルを目的ファイルと言ったりする
それをライブラリとかとリンクして実行ファイルにするから
objファイルは中間ファイルとも言うし中間コードとも呼ぶ
目的プログラムとも呼ぶのか・・・・
http://www.geocities.co.jp/SiliconValley-Oakland/4509/information/report_01/j025.html
0525デフォルトの名無しさん
NGNGASC2
ってなんのことですか?
0526デフォルトの名無しさん
NGNG> いろいろなところで見かける
ど こ だ ?
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNGおいおい…
>gcc -S test.c でアセンブリコード生成
>gcc -O2 -S test.c 最適化されたコード(中間コード?)を生成
-O2をつけると最適化はされるけど、吐き出すのはつけないとき同様アセンブリコードじゃないのか?
っていうか、それで違うものが吐き出されたら不気味だぞ。
>>521
gasmはアセンブラね。
上記-Sをつけたときに出力されたコードやプログラマが書いたコードをアセンブルするツールだ。
例外があることを承知で書けば、
cソース
↓cプリプロセッサ
↓パーサ
↓ジェネレータ
アセンブリコード
↓アセンブラ
オブジェクトモジュール
↓リンカ
ロードモジュール
って流れになる。
0530初心者(2日目)
NGNG数字を表示するときに、1を01、というふうに2桁で表示されるには
どうしたらいいいんでしょうか? 10は10でいいんです。
教えてください。
0531初心者(2日目)
NGNG(正)で表示させる
です。
0532デフォルトの名無しさん
NGNG0533初心者(2日目)
NGNG小数点の桁合わせはWebページで見つけたんですが、
整数のほうがわからなくて。スミマセン
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNGC Compilerにはどのようなものがありますか?
0537初心者(2日目)
NGNGありがとうございます。読んでみます
0538デフォルトの名無しさん
NGNG.NET環境をターゲットにできるCコンパイラならあるけど?
Java仮想マシンをターゲットにするならC言語やめてJavaにするしかないでしょ。
0539デフォルトの名無しさん
NGNG入力された文字列が配列の範囲を越えてしまった時に、警告を出した上で
もう一度入力させるにはどうすればいいでしょうか?
void main(void){
int i, j;
char str[5][20];
char buf[20];
for (i = 0; i < 5; i++){
while (1){
fflush(stdin);
fgets(buf, sizeof(buf), stdin);
if (sscanf(buf, "%s", str[i]) == 1)
break;
printf("もう一度入力して下さい。\n");
}
}
今はこんな感じで作ってます。
空白だけを入れた場合の警告は出るようにしています。
しかし、配列の上限を越えた入力をチェックする方法が解からず、
しょうがないのでループの先頭でバッファに溜まった分を切り捨てるようにしています。
これを解決するスマートな方法ってないですかね。。。
0540デフォルトの名無しさん
NGNGそんな対話志向な設計、標準Cでできましたっけ?
0541デフォルトの名無しさん
NGNGbufを大きく取った上で、超えた分は捨てていいならfflush()は妥当じゃない?
私ならbufの最後に改行コードが入ってなければ読み捨てるようにするけど。
0542デフォルトの名無しさん
NGNGfflush()をstdinに対して実行した結果は、処理系依存です。
0543デフォルトの名無しさん
NGNGgasなら知ってるんだが…。
GASMってのもあるとは知らなかった。全然読めんが。
ttp://gasm.cjb.net/
0544デフォルトの名無しさん
NGNGint piyo;
char dmy[512];
printf(" str = %s\n", str);
sscanf(str, "%02x",piyo);
*str2 = piyo;
return 0;
}
main(int ac, char *av[]){
FILE *ifp,
char buf[512],tmp[512];
int x,res;
if ((ifp = fopen(av[1], "r")) == NULL);exit(1);
fgets(buf,512,ifp) !=NULL;
for( x=0; x < 16; x++){
res = WAKARAN(s,hoge);
if ( res != 0 ){
printf("Fmq_ipTRSF56:Error\n");
break;
}
DATA->usr[x] = *hoge;
*hoge +=3;
}
printf("usr = %s\n",DATA->usr);
こんなプログラムあるんですが、実行するとエラー(core)してしまいます。
構造体の存在は書ききれなかったので省略しています。
なぜウゴカナイのかご指導いただけると幸いです。お願い致します。
0545デフォルトの名無しさん
NGNG引数つけたか?
つければ即終了すると思うぞ。
0546デフォルトの名無しさん
NGNG間違い
>}
dmyが使われていない
>main(int ac, char *av[]){
戻り値の型がない
>if ((ifp = fopen(av[1], "r")) == NULL);exit(1);
パラメータがないときに異常終了しそう
>fgets(buf,512,ifp) !=NULL;
条件判断の結果が捨てられている
>res = WAKARAN(s,hoge);
sもhogeも宣言されていない
>DATA->usr[x] = *hoge;
DATAが宣言されていない
>printf("usr = %s\n",DATA->usr);
main()が終了してない
0547デフォルトの名無しさん
NGNG実行できているんだから文法エラーになるようなことは指摘するなよ。
0548544
NGNG虫食いしてみたところ
>>546さんのおっしゃる通り
sscanf()がぁtぃぃようです。。。
何がおかしいのでしょうか?
ご指摘頂けると幸いです。
お願いいたします。
0549デフォルトの名無しさん
NGNGそれはscanfがして、だからだよ。
0550デフォルトの名無しさん
NGNG・引き数の間違い
0551デフォルトの名無しさん
NGNGそれとも何か動作に影響があるのでしょうか?
よろしくお願いします。
0552デフォルトの名無しさん
NGNGプロトタイプ宣言のことならコンパイル時の引数及び型チェックを厳密にするため。
0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG宣言すると>>552の言うようにチェックを厳密にしてくれるだけでなく、
暗黙の型の格上げを行わなくなる場合もあるので要注意。
0555551
NGNG普段は宣言しておいたほうがよさそうですね。
0556デフォルトの名無しさん
NGNG配列が大域的であれば(つまり、関数の外で定義されていれば)、
文字列配列は次のような文で初期化できる。
char a[] = "Hello!";
この配列を関数の局所変数として定義する場合には、
次のようにstatic変数として定義しなければならない。
static char a[] = "Hello!";
なんでだー!!
関数が呼ばれるたびに、文字列が配列にコピーされるのを防ぐためですか?
でも、「定義しなければならない」って……。
0557デフォルトの名無しさん
NGNGの最後のQAをみるといい。
0558デフォルトの名無しさん
NGNGつまり、過去の文章を引き摺っているわけやね。
0560デフォルトの名無しさん
NGNG2次元配列のメモリを動的変数で確保するにはどうすればいいのですか?
調べたところ、for文を使って1次元配列みたいなものを繰り返し作成して
確保していたのですが、一般的にはどうするのですか?
よろしくお願いします。
0561デフォルトの名無しさん
NGNGこのスレを読めばわかる。
0562デフォルトの名無しさん
NGNGこんな配列があって要素をひとつ
ずらしたい場合ってどうすればよろしいのでしょうか?
ポインタだったら、*p++って感じですよね?
それが配列の場合はどうなるんでしょう、、、
御教授お願いイタします。
0563デフォルトの名無しさん
NGNGmemmove()
0564デフォルトの名無しさん
NGNGジエン気味やな。
0565デフォルトの名無しさん
NGNGすいませでした。それとありがとうございました。
0566562
NGNGありがとうございます。
memmoveを使用する。。。
ワタシの想像で
for ( i=0; i <32; i++){
.....HOGE->mona[i] = piyo[i];
こんな感じを想像していたのですが
memmoveで実現できるのでしょうか?
0567デフォルトの名無しさん
NGNGchar base[10000];
char *piyo = base + 5000;
0568デフォルトの名無しさん
NGNGホゲってなんだ?
0569デフォルトの名無しさん
NGNGfooとかbarの日本語版だと思われ。
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNGhoge
geko
ugo
だんだん苦しそうになっていく…
0572デフォルトの名無しさん
NGNG0573デフォルトの名無しさん
NGNG> for ( i=0; i <32; i++){
> .....HOGE->mona[i] = piyo[i];
そういうのは要素をずらすとは言わないと思うが、いったい何をやりたい?
0574566
NGNG31 32 33 34.....
こんなテキストファイルを読み込んで
sscanfで%02xでとり、構造体の配列に
ひとつづついれていきたいのです。。。
まじアタマから煙でそうっす。
御教授くだせぇぇぇ。。。
0575デフォルトの名無しさん
NGNG1行に16進文字列が固定数入っているなら、寧ろstrtol()を使ったほうが楽かも。
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNGfgetcを使わないでgetcを使うことのメリットは?
0580デフォルトの名無しさん
NGNG君はその2つの違いを理解しているのかね?
0581デフォルトの名無しさん
NGNG正しく使えば安全だよ
0582デフォルトの名無しさん
NGNGgetcはマクロかもしれないってだけじゃないの?
0583デフォルトの名無しさん
NGNG#define putc fputc
0584デフォルトの名無しさん
NGNG貧乳の方がもっと好きだ。
0585デフォルトの名無しさん
NGNG貧乳の方がもっと嫌いだ。
0586デフォルトの名無しさん
NGNG0587デフォルトの名無しさん
NGNGそんなことやめとき。しんどいだけや。
0588574
NGNGご指摘ありが�dございますた!
ボキも貧乳好きだ。
0589デフォルトの名無しさん
NGNG! i iノノリ)) 〉
i l l.´ヮ`ノリ <先生!こんなのがありました!
l く/_只ヽ
| ̄ ̄ ̄ ̄ ̄|
http://saitama.gasuki.com/kaorin/
0590デフォルトの名無しさん
NGNG例123.45+67.89=191.34
ただし入力には、getchar()を使い、char型として1文字ずつ受け取る。
解釈できない文字が含まれた場合、それが入力された時点でそこまでの計算するものとする。
できなければエラーを表示して打ち切りでもよい。冒頭の0をゆるしてもよい。
scanfやatoi関数など既存の関数は使わないこと。
意味不明、焼肉定職
0591デフォルトの名無しさん
NGNG出題者に何でそんな無意味な制限を付けるのですかって文句を言えば良い。
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNG無意味じゃないだろ。
学習段階なら、atoi()などのライブラリ関数がどうやって
文字列から数値に変換しているかを一度は自分で試すべき。
0596デフォルトの名無しさん
NGNG宿題マル投げなら、専用のスレあるから。
そっち逝け。
0597
NGNGもしできるなら方法を教えてください。
0598デフォルトの名無しさん
NGNGこの配列を
switch(なんでもいい){
case A:
for ( i=0; i <16; i++){
hoge[15]までなんらかの処理}
その次に同じように
case B:
for ( i =0; i <16; i++){
hoge[16]からhoge[31];まで処理する}
こんな風にしたいんですが
case Bのfor文の記述がわかりません。
case Aではhoge[0]からhoge[15]
case Bではhoge[16]からhoge[31]という仕様にしたいと思っています。
ベタで書くことができないので、ウマイ処理がございましたら
御教授頂きたいです。おながいします。
0599デフォルトの名無しさん
NGNGargvをどっかに保存しる。
0600デフォルトの名無しさん
NGNGVC++なら__argvで。
_argvじゃないよ。
二個ね
0601デフォルトの名無しさん
NGNG管理人がクソ厨なブタ野郎だからいじり倒してサイトを閉鎖させちゃえ!
閉鎖できた人は「荒らし王」の称号が手に入る!さぁ!荒らせ!!!!!
http://www.geocities.co.jp/Bookend/6473/
0602デフォルトの名無しさん
NGNGfloatだのdoubleだのに直すのに標準ライブラリの
力を借りないと思いっきり移植性が…とか一瞬思ったんだが、
べつにそんなの使わなくても計算できることに気づいた。
いい問題かも、これ。
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNG具体的には、
char hoge[10];
int i;
sprintf(hoge, "%03d", i);
みたいなので、「3」を場合によっては4とか5とかにしたいのですが。。。
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNGfor (i = 16; i <= 31; i++) {
処理(hoge[i]);
}
か
for (i = 0; i < 16; i++) {
処理(hoge[i + 16]);
}
じゃダメなの?
>>603
グローバルに持たずにパラメータで渡せないの?
ex.)
void 下請け(char **argv);
int main(int argc, char **argv)
{
下請け(argv);
}
void 下請け(char **argv)
{
}
0608デフォルトの名無しさん
NGNGsprintf()のマニュアルをよく読もう。
sprintf(hoge, "%0*d", len, val);
0609デフォルトの名無しさん
NGNGつまり、配列 a[i][j] のjの部分のみを取り出したいんです。
また、その逆も行いたいんですがわかる方いたら教えていただけないでしょうか
0610デフォルトの名無しさん
NGNGchar format[] = "%03d";
format[2] = digit - '0';
sprintf(hoge, format, i);
0613デフォルトの名無しさん
NGNGint n = 6, m = 2;
char format[10];
char hoge[10];
sprintf( format, "%%0%dd", n );
sprintf( hoge, format, m );
0614デフォルトの名無しさん
NGNG二次元配列の片方って考え方が既に間違っている。
よく判っていないなら、配列の要素を一つずつコピーすべし。
>>611=610
ごめん。たまたまリロードしたら見えたんで。
>>613
以下同文。
0615デフォルトの名無しさん
NGNGtypedef struct {
int argc;
char ** argv;
} MAINARG;
MAINARG * get_mainarg() {
static MAINARG arg;
return &arg;
}
/* これをmainで呼ぶ */
void init_mainarg(int argc, char ** argv) {
MAINARG * arg = get_mainarg();
arg->argc = argc;
arg->argv = argv;
}
・・・素直にグローバルに置いた方が良いと思ふ。
0616デフォルトの名無しさん
NGNG0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNGグローバルで確保しても良い(問題無い)変数の1つだと思うけど?
0620598
NGNGアリガ�dであります。
char hoge[128]にどこまで入っているかは
わからない状態なんです。仕様記載漏れすみません。
んーどうしたもんなんでしょう、、、
0621デフォルトの名無しさん
NGNG訳が分からない
もっと分かり易く説明汁
0622デフォルトの名無しさん
NGNG発生させる場合どうかけばいいのでしょうか?
例えばx=0.0000100なら0.0000080から0.0000120までの乱数です。
0623デフォルトの名無しさん
NGNG0624622
NGNGransu=(((float)rand%5*0.1)+0.8)*x
こんな感じでしょうか?間違ってたら訂正おねがいします・・・
0625622
NGNGでできました!スレ汚しすいませんです・・・
0626デフォルトの名無しさん
NGNGget_commandline()
とかそんなのが大概用意されてるだろ?
それ使えよ。
どうせ(略)クソコードだろ
0627†♥
NGNG疑問に思ったんですがそもそもコンパイラってDOSとかUnixと
ペアで出来てる物なんですか?
それともcygwinだけですか?
0628デフォルトの名無しさん
NGNGCコンパイラ=C言語ソースプログラムを機械語へ翻訳する機械
歴史的にCコンパイラはunixという土壌でOSと共に発展してきた
経緯で強い影響を受けてはいるが、一般的にコンパイラと
OSには”ペアで出来ている”という関係はない。
世の中にはOSがないマイコン向けCコンパイラも、コンパイラの
動作OSとは違うマシンで動くコードを生成するコンパイラだってある。
0630†♥
NGNGありがとうございます
ずうずうしくもう壱つ質問
catとかlsとかのコマンドは
一般的に何をみなさん使ってるんですかね?
やっぱDOSが多い…ですか?
0631デフォルトの名無しさん
NGNGいわれたことを全く理解してない香具師ハケーン
0632デフォルトの名無しさん
NGNG確かにコンパイラを作成する理論はOSとは独立だけど、
C言語の場合、Unixの開発ときっても切り離せない関係にあるのでは?
C言語でUnixを書き、そのUnixの上でC言語コンパイラとその改良
を行って、そのC言語で再び改良されたUnixを書く。この繰り返しが
初期のUnixの開発では良く行われた。
逆に言えば初期の言語がアセンブラ並にプリミティブじゃなきゃ
そのコンパイラを動かしてくれるOSなんて皆無だったし、コンパイラが
ある程度OSの機能を代替できなければ実装不能な机上のものだった。
コンパイラがOSと独立するようになったのは、もうコンパイラそのもの
の開発よりも、OSの洗練、アプリケーション管理とかライブラリ管理とか
が重要になった1970年代後半以降の話でしょう。
0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNG「クロス開発」といいます
cat,lsはUNIXのコマンド
dirはdos、UNIX両方にあるようですね。
Cygwinということは、WINDOW用のソフトですよね。
ゲームですか?
0635†♥
NGNGテキスト系エディタ
↓
ソースプログラム
↓
コンパイル
↓
実行形式
↓
実行
この流れを
みなさんDOSを使って
やっているのかな?って思ったんですよ
それともなんですか?音声認識でやってるんですか?
実はマウス使うのがやっととか?
Unixとの関係が上がってますがそんなのCの参考書の
(はじめに)の所に書いてあってわかってます
…って言うか誰も聞いとらん
0636デフォルトの名無しさん
NGNGお前の質問のレベルがその程度ってことだよ
0637デフォルトの名無しさん
NGNG難しく考えすぎ
>>全
初心者にしては話がわかるな…
と思ったのは俺だけか?この初心者のレス開始から順に読んで
行けばわかりそうだけどな
0638デフォルトの名無しさん
NGNGカキミダサレださださ
0639デフォルトの名無しさん
NGNGもしかしてコマンドプロンプトのことをDOSと勘違いしている馬鹿?
0640デフォルトの名無しさん
NGNGとりあえず意味は分かるけど「DOS」というと普通はMSDOSを
指すんで紛らわしいから使わんほうがいいと思われ。
実際には「コマンドプロンプト」とか「コンソール」のつもりで
云ってるんだよね?
コンパイラ、リンカをどのように実行させるかは人による。
例えばVC++のような統合開発環境ではエディタ、コンパイラ、リンカ、
デバッガなどは全てGUIの統合開発環境上で実行できるので、そもそも
コンパイルのフェーズを意識する必要もあまりないが、別にcl.exeやlink.exe、
nmake.exeを直截実行しても構わないし、ソースコードは単なる
テキストファイルに過ぎないのだから、どのようなテキストエディタ
を用いても構わない。それどころか
C:\> type con >test.c
のような方法であってもさしあたりは構わない。
ただしnotepad.exeはファイル名の拡張子の
付け方について多少おせっかいなところがあるので止めた方がよい。
0641デフォルトの名無しさん
NGNGよくわからんが士ね。といいたくなった。
0642デフォルトの名無しさん
NGNGみなさんDOSを使って
みなさんDOSを使って
みなさんDOSを使って
0643†♥
NGNGありえない
プログラム初心者=バカ 違う
>>640
ありがとうございます
Visual C++6.0SPは持ってるんでけどね
>全員
でも一つ分った事はプログラムが出来ないだけでみなさん
ものすごく卑下するんですね
感じ悪
(結果>cygwin は Unix コマンドだと何かと簡単だからと一言欲しかった)
0644デフォルトの名無しさん
NGNGなにが「ありえない」だか
ではどういう意図で「DOS」と書いたのか説明してみろ
それと「卑下」する、とは自分を低く扱う事
0645デフォルトの名無しさん
NGNG> それともなんですか?
以降のほうが感じ悪。
0646デフォルトの名無しさん
NGNGWindowが立ち上がる前のDOSで一連の流れを実行する事は可能
又低水準であるがゆえWindousをおっぴろげ無い方がより効率的に
処理速度をかせげるから?と言いたいんじゃないの?
卑下はヒゲって意味で言ったんじゃないの?
0647デフォルトの名無しさん
NGNG->
ってどういう処理なんでしょうか?
img1->data = (char *)pdata1;
という処理で使われていて、
img1はX-windowのXImage
pdata1は
pdata1 = (unsigned short*)mmap(0, X_SIZE*Y_SIZE*2, PROT_READ|PROT_WRITE
, MAP_SHARED, *video, 0);
こんなかんじで処理されています。
0648デフォルトの名無しさん
NGNG0649デフォルトの名無しさん
NGNGマニュアル嫁、構造体や共用体のポインタからメンバを選択する演算子
0650デフォルトの名無しさん
NGNGchar *a[] = { "age", "sage" };
return a;
}
ってなことやりたいんだけど、これだとローカルのアドレスだから
static char *a[] = { "age", "sage" };
でOKなんだけど、実際はリテラルじゃない文字列の配列なので、
可変長の文字列の可変長の配列を作って返したいんですけど、
こういう場合ってどうしてます??
mallocの場合はどっかで開放が必要なんですよね。
0651デフォルトの名無しさん
NGNG別にmalloc使えばいいべ。freeを忘れなければよいし、すぐに終了する類の
プログラムであって、mallocの量がそれほどでもない場合は一切freeしない
という手も有る。
Bohem GCのようなGCライブラリ使うってのも手だが、それぐらいなら
C++使っちゃったほうがいいよな。。。
0652デフォルトの名無しさん
NGNG> 可変長の文字列の可変長の配列を作って返したい
どれがいいと思う?
・C++を使う。
・mallocを使う。
・C++のStirng, Vectorを真似て実装する。
0653デフォルトの名無しさん
NGNGレングスを測りたいんすけど、
いかようにすればよろしいでしょうか?
ごきょうじゅお願いします。
0654デフォルトの名無しさん
NGNG> strlen()でスペースと"#"を無視して
strlen()じゃできないと思うが、全部無視したいのか?
> レングスを測りたいんすけど、
ところでなんでカタカナ?
0655デフォルトの名無しさん
NGNGspaceと#を取った文字列作るか、
その長さからspaceと#の数引けばいいんじゃない
0656デフォルトの名無しさん
NGNGstrlen()じゃできないっすかー。
どんなもの使うべきでしょうか?
カタカナに特にいみはないっす。
0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNGOpenNap-NGのsearch.cを2byte文字に対応させたいのだけど・・・
さっぱり・・・
http://220.37.152.5/opennap-ng-0.46.tar.bz2
一応ソースね
0659デフォルトの名無しさん
NGNGトークン1つ1つ切るしかないのでしょうかね?
わかる人書いてくれるとうれしいです。
0660デフォルトの名無しさん
NGNG0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNG素朴なstrstr()ではいわゆる「Overlap」の問題が起きる。
1) マルチバイト文字の片割れと別の文字がマッチしてしまう
2) マルチバイト文字が二つ並んでいる状態で、1文字目の2バイト目と
2文字目の1バイト目の並びに別の文字がマッチしてしまう
UTF-8は1)2)が発生しないように設計されている。SJISやEUC-JP
では発生する。
>>658
別に詳しくは無いが...
見たところ素朴なcharのインクリメントやtolower()のようなものを
使っているようだが、通常そういう箇所は軒並み書き換える必要が有る。
エンコーディング方式がわからんが、内部コードをUTF-8にすることが
可能なら、↑に挙げた理由により、多少は楽になるよ。UTF-8であれば、
文字列中の任意のバイトについて、
・マルチバイト文字の片割れかどうかを判定する
・それがマルチバイト文字の先頭バイトか後続バイトかを判定する
・「前の文字」に移動する
・「次の文字」に移動する
といったことが極めて容易にできる。逆に、これらの道具(材料)があれば、
何をすればいいかは分かるだろう。
無論、ワイド文字を使えるのなら、その方が楽だが。
0663デフォルトの名無しさん
NGNGよって余計なことを考える必要はない
0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNGfunc(void)
と書かずに
func()
と書くの?
0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNG必要なら評調べて買うんで
0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNG必要なのかなって
0672デフォルトの名無しさん
NGNGsize_t strlen(const char *s)
{
size_t cnt = 0;
for(;*s != '\0'; s++)
if(*s != ' ' && *s != '#')
cnt++;
retrun cnt;
}
0673デフォルトの名無しさん
NGNG用もないのに読んでも実際使う頃には忘れてる
とりあえずどんなアルゴリズムがあるか
名前と概要だけ知ってればいい
0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG死ね
0678デフォルトの名無しさん
NGNGhttp://www.cs.u-gakugei.ac.jp/~miyadera/LECTURE/algo2/program.html
0679665
NGNG標準委員会的にはどうなのよ。
int func(...)
を
func(...)
って書くのと同じくらいスッキリしないんだけど。
それとも、JAVAやC++のクラスメソッドでいうところの
暗黙の*thisの存在故にvoidとは書かない、てのが
Cでも何となく習慣化してるということ?
0681デフォルトの名無しさん
NGNGfunc()
と
func(void)
は意味が違うくないか?
0682デフォルトの名無しさん
NGNGプロトタイプ宣言ではな。
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNGそんな使い道のなさそうな関数が標準関数にあるわけないだろ。
自分でかけ
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNGpascalなら ^ だYO!
0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNGべき乗ならpow()
0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG組み込みにはきついな。
0691デフォルトの名無しさん
NGNG師ね
0692デフォルトの名無しさん
NGNGなんでlpowじゃないんだよ。
しね
0693デフォルトの名無しさん
NGNGint で十分だろうが
SHINE
0694デフォルトの名無しさん
NGNGまたよろしくお願いします。
0695デフォルトの名無しさん
NGNG整数の(オーバーフローを無視した)べき乗なら、書くのは簡単だろ。
K&Rにも乗ってるが
int power(int base, int n)
{
int res = 1;
while (n-- > 0)
res *= base;
return res;
}
0697デフォルトの名無しさん
NGNG0698665
NGNG// assume 16bit short
そんなことよりvoid引数の見解を述べてくれよ。
0699デフォルトの名無しさん
NGNG前回の結果よりも小さかったらオーバーフロウとか?
0700デフォルトの名無しさん
NGNGANSI C以前はvoidがなかったから。
終了。
0701デフォルトの名無しさん
NGNG正確にはunsignedにするだけでオーバーフローは発生しないことになるが
多分そういうことを云いたいんじゃないよな。
多倍長計算ができるライブラリでも使ってみたら?
0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG突然負の値になったりはしないけど、桁落ちはするからオーバーフローするっていわない??
オーバーフローってそういうものじゃないとか?
0704デフォルトの名無しさん
NGNGプロトタイプ宣言がANSIで導入された機能であることは知ってるんだよな。
K&R流の書き方では
定義:
double func(a, b)
int a;
double b;
{
:
}
宣言:
double func();
となるが、宣言が無い場合は戻り値はintと仮定されるから
intを戻す関数の宣言は省略可能で、事実省略されることが多かった。
ANSIの規格でK&R風の書き方を許しているのは単なる妥協の産物だろ。
ANSI Cで仮引数リストが書かれていない場合は、引数が空という意味ではなく
"引数は、なんでもよい(K&R風宣言と見なし、チェックしない)"
という意味だから、voidと同じではない。そういう意味ではANSI C
のプロトタイプ宣言の機能を利用するなら、voidは省略するべきではない。
0705デフォルトの名無しさん
NGNG本来は
>突然負の値になったり
することを云う。K&Rあたりにはunsigned演算ではオーバーフローは
発生しないとちゃんと書いて有るから、持ってるなら読んでみ。
機械のレベルではキャリーフラグが立ったりする訳で
asmならチェックするのも簡単だが、Cでは簡単・高速・移植性のたかい
方法でチェックする方法は存在しないだろう。
0706デフォルトの名無しさん
NGNGおーそうなのか。サンクス。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/strtoul.3.html
このstrtoulの説明でも範囲外と言っているだけで、オーバーフローとは言っていないな。
0707デフォルトの名無しさん
NGNGどうしていいか解りません。いい方法ありませんか?
0708665
NGNGサンクス。
ok、要するにC++(のメンバ関数)で仮引数リストを空のままにすることとは
意味が違うということだな。
これまで、Cのソースではvoid指定してきたから安心できたよ。
スレ違いだが、C++の場合はどうなのよ。
>>679に書いた理由でvoid指定しないのがスタンダードなの?
それともみんな単に省略してるだけ?
0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNGC++ではK&R風の宣言は許していないし、引数リストを省略した場合の意味は
voidと同じになる。この点はC++とANSI Cの異なるところで、
引数リストを(K&R風の意味で)省略したCのソースをC++から使う場合は
注意が必要。
0712665
NGNG書いてない。
EC++, More EC++, Accelerated C++, その他の教本も当たり前のように
func()
だ。プライマーは見てない。
唯一のヒントは、虎本の
「引数を取らないメソッドは、voidを付けずに空の括弧だけで宣言するという点で、
JavaとCとは異なります(C++とは似ています)。」
という一節だが、理由までは言及していない。
じゃぁstaticメンバ関数とかグローバル関数はvoid付けるのかというと、
C++3版でも当たり前のように空括弧だ。
0713デフォルトの名無しさん
NGNG動的メンバも静的メンバもネームスペースレベルの関数も同じ
thisは関係無いと思うが
0714デフォルトの名無しさん
NGNGあるいは、もしコーディング規約があるなら従うくらい
0715665
NGNG>>714
わかった。
大衆に迎合して、今まで通り空括弧でいくよ。
しかしint戻り値の省略の廃止やプロトタイプ宣言の厳格化など厳しくなったC++で
なんでこの点だけアバウトのままにしたかね。
パラメータ宣言の省略は禁止にすればよかったのに。互換性の問題か?
0716658
NGNG非常に参考になりました。
ただ、自分にコードが書けるかどうか・・・(汗
とりあえず、今からぼちぼちやっていきます。
0717デフォルトの名無しさん
NGNG引数がないんだから、何も書かないのは当然。
にもかかわらず、引数に void が書けるのは C との互換性のため。
0718デフォルトの名無しさん
NGNG引数がないんだから、何も書かないのは当然。
にもかかわらず、引数に void が書けるのは日下部陽一のファンだから。
0719デフォルトの名無しさん
NGNG普通に引数は渡せるけど使わないときは(void)にしてる。
0720デフォルトの名無しさん
NGNGいい事を教えてやろう。
食パンににんにくを擦り付けてトーストにし、オリーブオイルを塗って醤油
をちょっとかけて食べると、うまい。
ところでデコンストラクタって何?
0721プログラムってなんじゃ(゚Д゚)ゴルァ
NGNG「( ゚Д゚)ハァ?、初心者はVisual Basicしとけ」といわれました。
プログラムについて何にも知らない香具師が
C言語にチャレンジするのは無謀なんでしょうか・・・
スレ違いだったら吸いません
0722デフォルトの名無しさん
NGNG( ゚Д゚)ハァ?と言い返しておきましょう。ていうか折れCしか知らんし。
0723デフォルトの名無しさん
NGNGJavaにしとけば?とCスレで言ってみるテスト。
0724デフォルトの名無しさん
NGNG死ね 糞言語薦めるな
>>721
Rubyがいいよ
0725デフォルトの名無しさん
NGNGリッチーもこんなに広く使われると予想したならば最初からもうちょっとましな仕様にしたのかな。
0726デフォルトの名無しさん
NGNGC++は過去との互換性を多少犠牲にして論理性を向上しているね。
でも元がCだけに文法的に相当無理をしていると感じられる部分が
たくさんあり、C++はとても文法が汚くなってしまったのではないか。
C99はCのマイナーチェンジだよね。根本的には何も変わっていない。
0727デフォルトの名無しさん
NGNGScheme, Ruby, Python, Java
日本でコミュニティが一番大きいのはRubyかなあ…
別に上に挙げたのでなくてもいいけど、
きっちり使えるようになったら別の言語に手を染めてみるべし。
二番目に手を出すならCがお勧め。
Lisp系は一度やっとくといいと思うよ。
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNGCならデフォルトで使えると思っていい
Cが使えないのは例外的な場合
マイナーな言語はインストールされてないんじゃないの?
root権限なくてインストールできなくて使えない
使えない言語覚えてもしょうがない
Lispは基本教養なの?
Unixの入門書じゃ見かけないよ
0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNGパソコンスクールとか英会話学校とか資格試験とか
そういうのが好きならいいかもね
0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNGprintf()等で
%*s等の記述に用いられる
*は何を意味するのでしょうか?
0734デフォルトの名無しさん
NGNG検索すれば初心者脱出できますよ!
0735デフォルトの名無しさん
NGNG教養のない香具師
0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNGマニュアル読もうよ。
一つだけ注意点。
一部の初心者向けの本で、
printf()系のフォーマットとscanf()系のフォーマットは「同じ」と
嘘を書いてある場合があるので要注意。
#そんな本なら捨ててしまえ。
0738デフォルトの名無しさん
NGNGiomanipのsetw()と似ている
0739デフォルトの名無しさん
NGNG・サブネットアドレス(1〜32)を数値(例えば24なら0xFFFFFF00)に変換するような
効率の良いコーディング方法はありますか?
・あと、ある文字列に対し、ビット誤り率が与えられて(例えば0.008)文字列を
ビット誤り(ランダム、バーストどっちでも良い)させてくれる効率の良い
方法はありますか?
二つもあつかましいですが、よろしくお願いします。
0740デフォルトの名無しさん
NGNG#define SUBNET(bit) (unsigned int)(((int)0x80000000)>>(bit-1))
こんなんでどうだ?
一応、漏れの書き方は処理系依存だと思うが。
後者はパス。酔ってっから。
0741739
NGNGありがとうございます。
しかしこの方法では、例えばbit=2なら0x40000000となるんじゃないでしょうか??
0743740
NGNG皆様、良い仮眠を。
0744739
NGNGあっ、gccっす。
私も明日試してみます。
おやすみなさい。。
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNG0747デフォルトの名無しさん
NGNG#define SUBNET(bit) (0xFFFFFFFF^(((unsigned)0xFFFFFFFF)>>bit))
0748デフォルトの名無しさん
NGNG#define SUBNET(bit) (((unsigned)~0)<<(32-(bit)))
0749デフォルトの名無しさん
NGNG256bitマシン(・∀・)イイ!!
0750デフォルトの名無しさん
NGNGあるの?
>>745とかぶったな・・・マスクして下位32bitを取り出せばいいのか。
0751デフォルトの名無しさん
NGNGなんで結果を反転させているの??
0752デフォルトの名無しさん
NGNG256bit以上で256とは限らないけど(・∀・)イイ!!
>>748==750
>>749は
(sizeof(int)==4&&CHAR_BIT==8)の間違いに対する突っ込み
0753748
NGNGなにがsizeof(int)==32だ
(sizeof(int)*CHAR_BIT)==32だろ
>>749>>752
サンクス
0754デフォルトの名無しさん
NGNG0755721
NGNG非常に勉強になりました。皆さんのレスを参考に勉強してみようと思います。
皆さんのような初心者に助言出来る漢に早くなりたいです。
恥ずいので、sage(´Д`;)
0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNGstruct HOGE{
int n;
char buff[INT_MAX];
};
この順番でもいいの?
未定義の識別子とかエラーにならない?
0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNG探してたら(◎_◎)なんとっ!☆彡(ノ^^)ノ☆彡ヘ(^^ヘ)☆彡(ノ^^)ノ☆彡
素敵な掲示板♪を発見!!!!(^o^)//""" パチパチパチ
あやしい所とか…{{ (>_<;) }} ブルブルすごい数の掲示板がありますけど、
これ全部1人の方が管理しているんですか?(@@;)すごすぎ …
てなわけで、ついつい書いちゃったのらー(o^v^o) エヘヘφ(`∇´)φカキコカキコ♪
メル友に、なってくれるよねっ。(*^-^*) お・ね・が・い♪(* ̄・ ̄)ちゅ♪ッ
アドレス[email protected]
0760デフォルトの名無しさん
NGNG0761デフォルトの名無しさん
NGNGtypedefではstruct HOGEという型にhoge_tを割り当てるだけ。
struct HOGEをこの段階で参照しているわけではないので問題なし。
そうでないとこう言うことができない。
typedef struct HOGE hoge_t;
struct HOGE {
int n;
hoge_t *pNext;
};
それはいいけど、INT_MAX個の配列の方が(文法上問題なくても)無理っぽ。
0762デフォルトの名無しさん
NGNGa *= 1.5;
の結果ってコンパイラによって違うんですか?
LSI-C86だと a == 2
LightCだと a == 3
になるんですが。
0763デフォルトの名無しさん
NGNG普通のコンパイラなら、doubleの演算を行なうので3になるはず。
0764デフォルトの名無しさん
NGNGgccでオプティマイズしたら、
int a = 3;
と同じコードを出力してきた。
0765デフォルトの名無しさん
NGNGgcc,と,bcc,と,mscとか,あんしcを比べてみれば?
0766デフォルトの名無しさん
NGNGstruct AHYA{
unsigned char piyo[2];
}
printf( "s =%s\n", s);
$3438 /* 文字列 */
sscanf( s, "%x", hoge );
printf( "hoge =%x\n", *(int *)hoge);
$3438 /* "34""38"の2バイト */
このhogeの中身を
AHYA.piyoに格納したいのですが
どうにもいれることができません。
童貞だったときに、あせって尻の穴に
ティンコを挿れようとし、怒られた気分です。
どなたか御教授くださいませ。
おながいします。。。
0767デフォルトの名無しさん
NGNGstructの定義の仕方を勉強し直してらっしゃい。
0768762
NGNGありがとうございます。
ちょっとLSI-Cのマニュアル見てみたんですけど、これに関する記述は見つからなかったです。
「標準」というのがどういう場合かわからなくて不安です。
0769766
NGNGスマソ・・・
変数定義し忘れておりますた。
スマタスマタ・・・(;´Д`) ハァハァハァハァハァハァハァ
struct AHYA{
} sumata;
ということで、再度御教授おながいいたします!!
0770デフォルトの名無しさん
NGNG他の人お願いします。
0771デフォルトの名無しさん
NGNGLSI-Cの代入演算子は、代入されるべき型へのキャスト後に演算を行なう仕様だったかと。
即ち、
int a = 2;
a *= 1.5;
は
通常のcが
a = (int) ((double) a * (double) 1.5);
と解釈してdoubleで乗算を行なうのに対してLSI-Cでは
a = a * (int) 1.5;
と解釈してintで乗算を行なう。
なので、代入演算子には注意が必要。
0772デフォルトの名無しさん
NGNG添点の読みかた教えてください
てんてん?そてん?
0773デフォルトの名無しさん
NGNG添点ソエテ
0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNGATOK14じゃ変換できねーぞおい。
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNGgoo国語辞典でも出てこない罠。
つーかおまいら、ここはC言語スレですよ?
0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNG1978,Brian W. Kernighan
0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG日本語の勉強はしていたらしいとマゾレス
0783デフォルトの名無しさん
NGNG0784デフォルトの名無しさん
NGNGK&R日本語第2版の訳者前書きにそういうエピソード出てくるよね。
0785デフォルトの名無しさん
NGNG0786デフォルトの名無しさん
NGNG0787デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNG独習CとK&R、買うんだったらどっちがいいでしょうか?
もしよければ、みなさんのオススメの本も教えてくらさい
0790デフォルトの名無しさん
NGNGそれ以外ならK&R
0791デフォルトの名無しさん
NGNGじゃあ自分は初心者だから独習かな
返答ありがとうございました
0792デフォルトの名無しさん
NGNG0793791
NGNGもう1つ質問なのですが
どんなことが出来れば上級者で
どんなことが出来なければ初心者なのでしょうか?
愚問スマソ
0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNG0797デフォルトの名無しさん
NGNGクズコーダーの方ですか?
0798デフォルトの名無しさん
NGNG嫉妬ですか:-)
0799デフォルトの名無しさん
NGNGそんなに級がほしけりゃパソコン検定でも受けてろ
0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNGまともに設計して 30K ステップ程度のものを
100K ステップ書いたのだとしたら相当無能ですが。
0803デフォルトの名無しさん
NGNGコンパイラ書きでもなければ、Cという言語自体のベテランである必要はない。
0804デフォルトの名無しさん
NGNG> 事前の設計無しに
(・∀・)ニヤニヤ
( ´,_ゝ`)プッ
(゚Д゚)ハァ?
0805デフォルトの名無しさん
NGNG行数との違いは?
0806デフォルトの名無しさん
NGNG正確な定義はしらん。というか多分無いだろう。
構文規則で云うところの「文(statement)」のような気もするが、
複文(compound-statement)のように、他のstatementを(再帰的に)含む
文の扱いが自明でないので、違う気もする。
現実的にはコメントや空白のみの行、空行等を除いた行数を「ステップ数」
と云っていることが多いと思われ。
0808デフォルトの名無しさん
NGNGおもうけど
それは間違い?
0809デフォルトの名無しさん
NGNGそれは間違い?
0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNGLinuxでは動くプログラムがBorlndのコンパイラではコンパイルはできるのですが
実行ファイルが正常に動かないんです。何か解決方法あれば教えていただけないですか
0812デフォルトの名無しさん
NGNGリンクできたのならLinux独自の関数(各種システムコールとか)を使っているせいではないだろうし。
0813デフォルトの名無しさん
NGNGコードによってはコンパイラ毎に動作が異なることがあるし
バグがあった場合その症状が出たり出なかったりすることもある。
単純にバグだと思ってBorland Cでデバッグしなよ。
0814デフォルトの名無しさん
NGNG即レスありがとうございます.
やはり、コンパイラが異なるからからですか。とりあえずやってみます。
0815デフォルトの名無しさん
NGNGコンパイラのせいにするな。
0816デフォルトの名無しさん
NGNGそれをWinに移植するとちゃんとバグってくれる。フフフフフ
0817デフォルトの名無しさん
NGNG単に gcc 拡張を使っているんじゃないのか?
それか、もとのLinuxでも、警告が出ているのを無視しているとか。
他のコンパイラだと警告レベルのものを、Borlandだとエラーで止めることがある。
0818デフォルトの名無しさん
NGNGコンパイルもリンクもできたと言っているが。
0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNGかつエラーチェックしていないってやつね。
0826デフォルトの名無しさん
NGNG(ソース変更してないのに)プログラムがクラッシュしだした。
Windowsでの実話。俺が悪いんだが、Windowsって不思議なOS。
0827Y.Kusakabe
NGNGよくありますね。そういうこと。
0828デフォルトの名無しさん
NGNGいっつもVCでビルドとおるようにしてるよ。VSの方が使いやすいって事もあるけど。
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNG↑0バイトの領域確保しても問題ないですか?
常にNULLでぃすか?
0831デフォルトの名無しさん
NGNG0バイトでも問題無いんじゃねーの?
0バイトの時に、*pに大して全く参照も代入もしないんであれば。
但し常にNULLとも、NULLで無いとも言えない。
処理系に依存してたと思う。
心配なら、mallocする前に引数チェックしる。
0832デフォルトの名無しさん
NGNG0833怒り
NGNGどうあがいても、コンパイラにプロトタイプ宣言のない関数の呼び出しって
怒られます。すげーむかついてます。
なんででしょうね?不思議ですね。
考え得る原因はなんでしょうか。
0834デフォルトの名無しさん
NGNGプロトタイプ宣言が無いから。
0835デフォルトの名無しさん
NGNG本当に足掻いたか?
足掻いたソースを見せてみろ。
0836怒り
NGNGなんか怒られつつも実行できたから、余計にむかついてるんです
すざけんな!
0838怒り
NGNG俺が使ってるボーランドのコンパイラに向けての叫びです。
何度もすみません。
0839デフォルトの名無しさん
NGNGint main()
{
func();
return 0;
}
こういうのがいけない。
funcの呼び出しの前にint func(void);など(もちろん実際の関数定義と同じもの)と書いておく。Cならエラーにならないけど、C++だとエラーになる。
ちなみに通常printfなどで警告がでないのは、それのプロトタイプがかかれたファイル(stdio.h)をインクルードしているから。
0840怒り
NGNGどうか見捨てないでください。ソース書きます。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
/* 定数 */
#define GAME_COUNT 5 //ゲーム回数
#define INITIALIZE_POINT 10 //得点の初期値
#define NOT_USED 0 //未使用カード
#define USED (-1) //使用済みカード
/* グローバル変数 */
int computer_card[3];
int computer_point;
int player_card[3];
int player_point;
int card[4][13];
/* プロトタイプ宣言 */
void showpoint();
void shuffle();
int getcard();
void showcard();
void judge();
int main(){
て感じですが、、、
0841デフォルトの名無しさん
NGNG肝心の「プロトタイプ宣言のない関数の呼び出し」の部分を書かないとだめでしょ(^_^;)
0842841
NGNG0843怒り
NGNGfor(i = 0; i < GAME_COUNT; i++){
showpoint();//現在のプレイヤの得点を表示
shuffle();//カードを初期化
computer_card[0] = getcard();//コンピュータにカードを1枚配る
player_card[0] = getcard();
player_card[1] = getcard();//プレイヤにカードを2枚配る
showcard();//カードを表示
の部分のshowpoint(), shuffle, getcard()及びこのあとの関数全部に
警告が出ます。もちろんいっちゃん下のほうで全関数を定義してるんですけども
うぅぅ、、、
0844デフォルトの名無しさん
NGNGちゃんと動いてるというのがたまたまちゃんと動いているように見えるだけかもしらんし。
プロトタイプ宣言があればそういう危険性はかなり減らせるぞ。
(あくまで減るだけな。なくせはしない)
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNGこの問題とは関係ないけど、Cの場合、プロトタイプの引数リストの省略はやめた方がいい。voidならvoidとかく。
0847デフォルトの名無しさん
NGNG問題なさそうだが・・・・
0848デフォルトの名無しさん
NGNG0849怒り改め開放感
NGNG>>845様のいうようにmainを一番下に移動しても
警告が出て、きれました。
そこで、>>846様のいうように引数を全てvoidに書き換えた所、
問題なくコンパイルできました。
感動しました。
今後もこのプログラム技術板にくだらない質問を投げかける可能性があります。
そのときも、どうか今回のような暖かい対応をしてやってください。
まじでありがとうございました。
やっと寝れそうです。
0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNGえ?BCCってそういう挙動をするの?
gccじゃならないけど(^_^;) 多分VC++でも。
どちらが正しいんだろう。
0852デフォルトの名無しさん
NGNG書いてあるぞ。
0853怒り改め開放感
NGNGはい。警告メッセージは、
警告 W8065 bj.c 162: プロトタイプ宣言のない関数
'showpoint' の呼び出し(関数 main)
でございました。
何度もすみません。
0854デフォルトの名無しさん
NGNG/* プロトタイプ宣言 */
void showpoint();
void shuffle();
int getcard();
void showcard();
void judge();
これらをどう見ているんだろう。
0855851
NGNG0856デフォルトの名無しさん
NGNGvoid showpoint();
どう解釈されるか、だな。
cの場合、()の場合は引き数の宣言の省略と見做される。
つまり、プロトタイプ宣言にさえなっていない。
c++の場合、()の場合はvoidの省略と見做される。
つまり、引き数がないことの宣言とか解釈される。
どっちみち、cなら(void)って書いておけ。
0857デフォルトの名無しさん
NGNGCであれば、 void showpoint(); は void showpoint(...); と見倣される。
0858デフォルトの名無しさん
NGNGなってません。
任意の引数がOKというのと引数に関する情報がないというのは別。
そもそも...単独というのはCでは許されない。
0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNGmain()の場合はエラー
bccはこのようなことになるのに
gccだとエラーがでないのは何故ですか?
どちらが正常ですか?
0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNGお前のコーディングが間違っている
コンパイラがエラーに厳しいか甘いかの違い
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNGvoid mainだと正常
正解はint mainでしたか
なかなか基本的な部分で違いがあるので混乱しますね
レベルが低いということでしょうか
この程度も統一できないということは
0867デフォルトの名無しさん
NGNGレベルが低いということでしょうか
この程度も理解できないということは
0868デフォルトの名無しさん
NGNGcとc++の違いによるものですか?
0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNGみたいに戻り値を省略したらintを返すと解釈される
だからintを返さないとエラー
0872デフォルトの名無しさん
NGNGint main(void)
{
printf("c\n");
return(0);
}
#include <stdio.h>
void main(void)
{
printf("c\n");
}
この二つはどちらが正常ですか それともどこが間違っていますか?
0873デフォルトの名無しさん
NGNG>>1からリンクされてるものをみましょう。
0874デフォルトの名無しさん
NGNGchar * main(void)
{
printf("c\n");
return "successful";
}
が正解だろ。
0875デフォルトの名無しさん
NGNG872のような二つと単なる main() だけの記載のものと
三者三様でした
0876デフォルトの名無しさん
NGNG↓これが正解
FILE *main(double argc,size_t *argv[])
0877デフォルトの名無しさん
NGNG>>1からリンクされてるものをみましょう。
0878デフォルトの名無しさん
NGNG僕がいつも使っている『ほんとおの馬鹿向けのC』には、いつもvoid main()と書いてる。
A:
たぶんその本の著者は自分も対象読者の一人に数えているのだろう。 不思議なことに、例題のコードでvoid main()と書いてる本は多い。 そういう本は間違っている。
0879デフォルトの名無しさん
NGNGいやー、ごめんね。普段Cなんていう化石使ってないから・・・
0880デフォルトの名無しさん
NGNGわかる人が誰もいないということですね
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNGOSが自動的に開放してくれることを期待したコードを書いても大丈夫ですか?
それとC言語のgotoってどのようなケースで使われるのでしょうか?
0885デフォルトの名無しさん
NGNGgotoはifと組み合わせてwhileのかわりに使う。
0886デフォルトの名無しさん
NGNGそのOSでfreeせずに抜けるコードを作ってためしゃいいのでは?
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNGC言語と関係あるんですか?
0891デフォルトの名無しさん
NGNGHANDLE FindPastLog(LPCTSTR lpszName, DWORD dwReserved);
0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNGbreakもreturnも、言ってみれば飛び先の確定しているgoto。
つまり、関数分けを使いたくないときに使われることがたまにある。
ex)
void func(void)
{
初期処理();
if (条件) {
goto end;
}
本処理();
end:
終了処理();
return;
}
この場合、条件判断を本処理に入れればgotoは不用になる。
或いは、次のように書いてもいい。
void func(void)
{
初期処理();
if (!条件) {
本処理();
}
終了処理();
return;
}
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >.__Λ∩
_/し' //. V・∀・)/
(_フ彡 / ←>>895
0897デフォルトの名無しさん
NGNGint *(*ptr)[3][3];
のとき、ptr が arr[1][1][1] を指すようにする方法を教えてください。
0898デフォルトの名無しさん
NGNG0899897
NGNG誤 ) int *(*ptr)[3][3];
正 ) int (*ptr)[3][3];
>>898
それだと、int * から int (*)[3][3] に変換できない。といわれます。
0900デフォルトの名無しさん
NGNGその定義では ptr はサイズ[3][3]の int型へのポインタの配列を
指しているから、キャストするだけでは無理。
0901デフォルトの名無しさん
NGNGptr = (int (*)[3][3])&arr[1][1][1];
0902デフォルトの名無しさん
NGNG期待する結果が出ました。ありがとうございました。
単にキャストするだけでよかったのですね。
ptr = arr + 1 + 3 + 9;
などとやっていました。
0903デフォルトの名無しさん
NGNGガッ
0904デフォルトの名無しさん
NGNGgccだとラベルのアドレス取得とポインタへのgoto使えるから、
関数内ジャンプテーブルなんてことも出来るんだけどね。
これってC99でも仕様に取り込まれてないよね?
0905デフォルトの名無しさん
NGNGない。
0906デフォルトの名無しさん
NGNGint a,b;
int hoge;
hoge = a+b;
a = hoge-b;
b = hoge;
これでいいのでしょうか?
もっとうまく、見やすくする方法とかないですか?
単純なことですがどうかよろしくお願いします。
0907デフォルトの名無しさん
NGNGa=b;
b=tmp;
0908デフォルトの名無しさん
NGNGint tmp;
tmp = a;
a = b;
a = tmp;
?
0909906
NGNGどっちも>906より見やすいですね。
0910621です
NGNGC言語でファイルを読み込む際、途中から読み込むにはどうしたらいいのでしょうか?
(例) test.txtに保存されてある情報
-----------------------------------------
name:takasi
age:20
kao:c:\windows\デスクトップ\data\kao1.bmp
name:taro
age:22
kao:c:\windows\デスクトップ\data\kao2.bmp
name:yasiro
age:25
kao:c:\windows\デスクトップ\data\kao3.bmp
-----------------------------------------
とあった場合、test.txtをopenした時、先頭の行から読み込むのではなく、「taro」だけの部
分を読み取りたいのですが…
(具体的にはtaroとageの部分とkaoの部分を一緒にテキストファイルから取得したい)
どういうふうにCにすればいいのかでまた困っている状態ですので教えてください
0911デフォルトの名無しさん
NGNGただの名無しなのでこのスレ中の621さん、スマソ つД;)
0912デフォルトの名無しさん
NGNG"name:taro" が出てくるまで普通に読め。
0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNGWindows 専用で良ければ、ファイルを以下のように直した後
-----------------------------------------
[takasi]
age=20
kao=c:\windows\デスクトップ\data\kao1.bmp
[taro]
age=22
kao=c:\windows\デスクトップ\data\kao2.bmp
[yasiro]
age=25
kao=c:\windows\デスクトップ\data\kao3.bmp
-----------------------------------------
const char *inifile = "test.txt";
const char *section = "taro";
int age;
char kao[MAX_PATH};
age = (int)GetPrivateProfileInt(*section, "age", 0, inifile);
GetPrivateProfileString(section, "kao", "NUL", kao, sizeof(kao), inifile);
>>913
どこにシークしろと
0915デフォルトの名無しさん
NGNGFILE *f = popen("sed -n '/^name:taro/,/^$/{//q;p;}' test.txt", "r");
fgets(name, sizeof name, f);
fgets(age, sizeof age, f);
fgets(kao, sizeof kao, f);
0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG一体どういう意味でこれを書いたのか教えてもらいたい。
0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNG初心者ですので懇切丁寧に教えてください。
0921デフォルトの名無しさん
NGNGその事をどうやって知り得ましたか?
0922デフォルトの名無しさん
NGNG自分がそうなりました。
0923デフォルトの名無しさん
NGNG頑固なジジイなんだからしょうがないじゃん。
0924デフォルトの名無しさん
NGNG>>910
typedef struct USER {
char name[20];
int age;
char kao[200];
} User_t;
とでもしておいて、
User_t *getUserData(FILE *fp);
んな関数作って、
User_t *pUser;
FILE *fp = fopen("test.txt", "r");
do {
pUser = getUserData(fp);
} while (strcmp(pUser->name, "taro") != 0);
fclose(fp);
printf("%s の年齢は %d、顔は %s を見ろ。\n", pUser->name, pUser->age, pUser->kao);
とでもすればいいんでないの?
0925デフォルトの名無しさん
NGNG#define MSG(p) ("test" + p + "\n")
というようなマクロを作りたいのですが、
うまくいきません。
pには文字列を入れる場合と、数値の場合があるのですが、
それぞれどのようなマクロを作ればよいでしょうか?
0926デフォルトの名無しさん
NGNG#define MSG(str) "test" str "\n"
定数用
#define MSGi_(n) MSG(#n)
#define MSGi(n) MSGi_(n)
0927925
NGNGありがとうございました。
定数用の#nはどのように使うのですか?
0928デフォルトの名無しさん
NGNGと連結するマクロだが、MSGi_()はwork用のマクロなので直接使うものではない。
0929デフォルトの名無しさん
NGNGint main()
{
FILE *fp;
char c;
fp = fopen("c:\\hoge.txt", "wb");
c='.';
fwrite(&c, 1, 1, fp);
fwrite(&c, 1, 1, fp);
??
fclose(fp);
return 0;
}
2バイト目を削ってサイズが1バイトのファイルとしてクローズさせるには
どんな関数を使えば良いのでしょう?
0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNG/:\.____\
|: ̄\(∩´∀`) \ <先生!こんなのがありました!
|:在 |: ̄ ̄ U ̄:|
http://saitama.gasuki.com/wara/
0932デフォルトの名無しさん
NGNGftruncate()とかchsize()
0933デフォルトの名無しさん
NGNG天才!まさに、これがやりたかったのです。
fseekじゃあ移動するだけでした。(汗
0934デフォルトの名無しさん
NGNGそんなもん使うなんて設計がおかしくねぇの?
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNGrenameがおすすめ。
0937デフォルトの名無しさん
NGNGvoid truncFile(char const *file, size_t len)
{
FILE *fpOrg;
FILE *fpTmp;
char *pBuf;
char const *pTemp;
pBuf = malloc(len);
fpOrg = fopen(file, "r");
fread(pBuf, 1, len, fpOrg);
fclose(fpOrg);
pTemp = tmpnam(NULL);
fpTmp = fopen(pTemp, "w");
fwrite(pBuf, 1, len, fpTmp);
fclose(fpTmp);
rename(pTemp, file);
free(pBuf);
return;
} /* きたねぇコードだ */
0938デフォルトの名無しさん
NGNGlen = fread(pBuf, 1, len, fpOrg);
にすればlenがファイルより長くても安心だな。
勿論、malloc()、fopen()、fwrite()、(write後の)fclose()、rename()の
戻り値のチェックも忘れずに。
0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNGマニュアルページを見る限りできるように思う。
できなきゃremove()するまで。
>>940
真面目に戻り値を返す意図があった名残。
0942デフォルトの名無しさん
NGNGこの関数を使って名前作成しよう。
0943937=938=941
NGNG使ってますが何か。
0944デフォルトの名無しさん
NGNG戻り値
成功すると 0 を返します。エラーが発生すると 0 以外の値を返し、
グローバル変数 errno に以下のどちらかの値を設定します。
EACCES
newname で指定したファイルまたはディレクトリが既に存在するか、
パスが無効で作成できない。
あるいは、oldname がディレクトリであるのに、newname で別のパスを指定した。
ENOENT
oldname で指定したファイルまたはパスを検出できない。
EINVAL
名前に無効な文字が使われている。
0945デフォルトの名無しさん
NGNGどういう読みかたしたのか知らんが出来ない
> できなきゃremove()するまで。
最初からそうしとけ
0946デフォルトの名無しさん
NGNG環境は?
0947デフォルトの名無しさん
NGNG関数 必要なヘッダー 互換性
rename <io.h> または <stdio.h> ANSI, Win 95, Win NT
0948デフォルトの名無しさん
NGNG|説明
| tmpnam() 関数は、ファイル名に使える文字列へのポインタを返す。この名前を持つファイル
| は、ある時点では存在していなかった。従って幼稚なプログラマはこの文字列がテンポラ リ
| ファイルのファイル名として適していると考えるかもしれない。
それに同じファイルシステム上に作られるという保証はない。
>>945,947
一般的にUNIXでは可能。
0949デフォルトの名無しさん
NGNG注:古いMSDNライブラリ
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNG> fpTmp = fopen(pTemp, "w");
この時点で目的のファイル名にしておけば
0953デフォルトの名無しさん
NGNG指定されたnewnameのファイル/ディレクトリが既に存在していた場合どうなるの?
既存の方は消される?
あるファイル名を既存のディレクトリ名にrenameしたら、そのディレクトリは消える?
Windowsだと同名のファイルとフォルダは共存出来ないけど…
0954デフォルトの名無しさん
NGNGファイルはアンリンクされるけど、
他のプロセスがそのファイルをオープンしている限りディスク上からは消えない。
0955デフォルトの名無しさん
NGNG> 指定されたnewnameのファイル/ディレクトリが既に存在していた場合どうなるの?
> 既存の方は消される?
removeはターゲットがファイルの場合はunlink, ディレクトリの場合はrmdir
相当の処理を行う。よって
> あるファイル名を既存のディレクトリ名にrenameしたら、そのディレクトリは消える?
既存のディレクトリ配下にファイルやディレクトリが存在しない場合は消える。
存在する場合、rmdirも失敗するので、removeも失敗する。
> Windowsだと同名のファイルとフォルダは共存出来ないけど…
Unixでも同じ。
0956デフォルトの名無しさん
NGNGmkstemp()とか。
0957デフォルトの名無しさん
NGNGディレクトリもひとつのファイルだしな。
0958デフォルトの名無しさん
NGNGなるほど、要するに既存の場合はremoveを試みてくれるわけね。
どうもありがとう。
0959951
NGNGttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/tmpnam.3.html
>この名前を持つファイルは、ある時点では存在していなかった。
この部分の解説きぼん。。
0960デフォルトの名無しさん
NGNGファイルを作成しようとした時にそのファイル名が存在しない事は保証されない、
という事かな
0961デフォルトの名無しさん
NGNGtmpnamを呼んだ時点では存在しなくても、その後実際にファイルを作成しようと試みるまでに他のプロセスによって作成されてしまうかもしれない。
ということでしょ?
0962951
NGNGあーやっぱりそれかあ。どうもです。
mktemp()のほうには書いてあった。
>その名前がすでに存在しているかどうかテストして、そのファイルをオープンする間に競合がある事から
0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNGなり、はっきり言って全然実用的じゃない。俺は使わない。
0965デフォルトの名無しさん
NGNGwhile(fgets(buffer,BUFFERSIZE,fp)!=NULL){
}
のBUFFERSIZEを#define BUFFERSIZE 4096
としてるんですが、4096を超えるファイルに対応するには
どうしたらよいですか?
0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNGすること自体が驚きだ。
内部構造はgapped bufferかlinked listなんでしょ?
同じように動的に行を読めばいいだけの話。
0969デフォルトの名無しさん
NGNG作りかけのやつうpして質問してた
0970デフォルトの名無しさん
NGNGgapped buffer、linked list
ってなんですか?
0971デフォルトの名無しさん
NGNG今時はソフトウェア作法も読まないのかねぇ。
0972デフォルトの名無しさん
NGNGfread(buffer,sizeof(char),BUFFERSIZE,fp);
fwrite(buffer,sizeof(char),BUFFERSIZE,stdout);
}
こうやってあるバイナリファイルを画面出力するとBEEP音が2回くらい鳴るのですが
どうして?
0973デフォルトの名無しさん
NGNGそのファイル中にベルコード(0x7)が含まれているからだろ。
0974デフォルトの名無しさん
NGNG\a
0975デフォルトの名無しさん
NGNGメーカーにクレーム
0976739
NGNG・あと、ある文字列に対し、ビット誤り率が与えられて(例えば0.008)文字列を
ビット誤り(ランダム、バーストどっちでも良い)させてくれる効率の良い
方法はありますか?
どなたか良いコーディング方法がわかる方アドバイスください。
ある関数に引数で、バッファのポインタとバッファ長を渡し、
ビットエラーレート0.008がわかっていて、
ランダムで誤りを生成したいです。
よろしくお願いしますm(__)m
0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNGよろ。
0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNGそれを言ったら2ch全て(ry
0982デフォルトの名無しさん
NGNGC言語なら、俺に聞け! Part 51
http://pc2.2ch.net/test/read.cgi/tech/1046104909/l50
0983デフォルトの名無しさん
NGNG0984デフォルトの名無しさん
NGNG文字列に直して先頭3文字以降を0にして戻すとか。整数の場合ね。
0985デフォルトの名無しさん
NGNGおつかれ
0986デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >.__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>983
0987デフォルトの名無しさん
NGNG質問の意味が理解できない・・
0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG. V`Д´)/←>>988
0990デフォルトの名無しさん
NGNG他にありますか?
0991デフォルトの名無しさん
NGNGモツカレー
0992デフォルトの名無しさん
NGNGi、 __ _, --- 、_ _ r'
`ヽ (ノ´ 二ニ二 て) /
i、,〉'<入_li il_入>tイ、ノ
0993デフォルトの名無しさん
NGNGstrnicmp
0994デフォルトの名無しさん
NGNGstrncasecmp
だろ
0995デフォルトの名無しさん
NGNG何これ?
0996デフォルトの名無しさん
NGNG(=゚ω゚)ノ 蝉の頭部です
0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG!!!!!!!!!!
1000デフォルトの名無しさん
NGNG|从 リ)〉
|゚ ヮ゚ノ| 1000 キタ…
⊂)} i !
|_/ヽ|」
|
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。