1 :
デフォルトの名無しさん :
2010/11/27(土) 20:33:30 BE:56803223-S★(532000)
2 :
デフォルトの名無しさん :2010/11/27(土) 20:41:01
糞スレ
3 :
3 :2010/11/27(土) 20:42:50
なんだこのスレ
5 :
デフォルトの名無しさん :2010/11/27(土) 20:57:34
↓アイちゃん
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
7 :
デフォルトの名無しさん :2010/11/27(土) 23:48:47
嫌です!
struct zzz{ char car[50]; int nedan; int nebiki; }; これを char car[50]; int nedan; int nebiki; こうすれば直接参照できる
なんのための構造体だよw
VBのwithみたいのを考えてるなら、Cにはないとしか言えない。
うそ
basic系のwithナツカシス いまwithといわれたらpythonのwithを連想するわ
->で連結されている形なら、途中までの->を他のポインタに代入して withの替わりのような事をさせるのは良くある
でもどうしても1個は残るよね C++ならメンバ関数作れるけど
メンバ関数があるからなんだと
メンバ関数じゃなくても、纏めてアクセスする関数を作ればいいだけじゃねぇの。
おまいら何か忘れちゃいませんか? define
>>18 お前は何を言ってるんだ。
前処理字句の文字列置換マクロのことなら#defineだが。
さすが糞スレには糞低脳しか糞いないな。
俺のような高脳を見習え。
効能を見習うのか...
終了条件よく考えてみろよ
23 :
デフォルトの名無しさん :2010/11/28(日) 23:16:27
C言語超初心者です。 if (year % 4 == 0) printf("夏季五輪\n"); if (year % 2 == 0 && year % 4 != 0) printf("冬季五輪\n"); if (year % 2 != 0) printf("五輪なし\n"); 何故このプログラムは正しいのか教えてほしいです。。 year%4==0だったら(西暦が4で割り切れない時=0(偽)) だから西暦が4で割り切れない時に表示されるんじゃないんですか?
>>22 俺の頭ではよく分からんのよ。
xが次にとる値と等しければ停止
i=6以降はxが次にとる値と等しい
何故止まらん
ってのが俺の頭の中の流れ。
整数じゃないんだから!=で比較するのはダメ
>>25 どうして? 精度いっぱいまで回すならこれでよいと思っているのですが?
いいわけねーだろw
>>21 浮動小数点はせいぜい 10 進法で15 桁か16 桁かそのあたりまでしか正確に表現できない。
x = x - (Sq(x)+Sq(y)-1)/(4*x+1);
の計算で x を更新していくのがニュートン法だが、小数点以下 15桁か16 桁どまりでそれ以上 x を正確に更新できないのではないかと。
(上の収束するときの解とくらべると小数点以下 15 桁めくらいで差異がある。)
浮動小数点の演算では == とか != はつかわないで、ある程度の幅(解を利用するにあたって実用上十分な精度)で打ち切るもの。
>>33 問題の本質とずれているような。
まぁとにかく、理由は分からんが double に == と != を使うなということで。
マレにうまくいくこともあるが、基本ダメということで。
double a,b; とすると 環境によっては a/2/2/2/2/2/2/2/.... = 0.0 となり、 環境によっては a == a+0.0 は真となるが、 a == b はあてにならん。そういうことかね。
ふっふっ
>>35 二分法は
>>31 でいえば、指摘のとおり a は小さくなる一方でやがては機械イプシロンを下回って 0 になる。
でもニュートン法は x(n+1)を x(n) の関数f で求める。 f の個々の計算が正確に計算できるのは機械イプシロン近辺まで。
それ以下になると f の計算がでたらめになるので、x(n + 1) の振る舞いは予測できない。うまくいくかもしれないし、だめかもしれない。
ここにはメチャ詳しい人も来るから、 正確な答えがそのうち来ると期待しつつ寝る。
double d = 0.1; if(d * 0.1 == 0.01) puts("0.01です"); else puts("0.01ではありません。"); たいていの環境では「0.01ではありません。」になるな。
>>23 year % 4 はyearを4で割った余り。
year % 4 == 0 はそれが0であったら真。
つまり、yearが4で割り切れたときに真。
余談だが>23の2番目は、「2で割り切れるが4で割り切れない年」と読める。
パズルではないのだから、「4で割った余りが2の年」と考えてyear % 4 == 2の方が自然だろう。
また、3番目も自然じゃない。五輪がない年は読んで字の如く、「!(year % 4 == 0 || year % 4 == 2)」だろう。
まあアプローチはべつにいいじゃん
1+1を解く時の脳の使い方がみんな違うってハナシと似たようなもんだ
オレならそもそも3つ目は条件書かないだろうし、
>>23 、
>>40 、オレの3人の時点でもうこんだけ違う
多分、剰余を一時変数に入れてswitchに突っ込む人とかもいるぞ
それを考えたときに、自然っていう書き方はまるで
>>40 が多数意見みたいな感じでちょっとイヤだな
俺なら全てのif文に{}を付ける。
糞スレ
今更何を
>>43 >まず最初に、「GNU コーディング規約」(GNU coding standards)を入手して印刷してみてください。
>でも、読むために印刷するのではありません。
>印刷した物を燃やすのです。
>この儀式は晴れがましい意思表示なのです。
ワロタw
これだからゆとりは
ほっほっ
どぴゅっどぴゅっ
ぶはっぶはっ
#include <stdio.h> #include <direct.h> void main(){ _mkdir("c:\\testmake"); _chdir("c:\\testmake"); } コンパイラ通らない・・・ _chdirの使い方間違ってる?
ダwwwwイwwレwクwトwwwwwww wwwwwwwwwwwww
55 :
デフォルトの名無しさん :2010/11/29(月) 17:36:11
もったいぶってないで教えてくれよw
通らないと言うと、どんなエラーを出して通らないの?
なんでエラーを書いたら負けだと思ってるの
>>52 void main() 爆笑
それはともかく、OS と処理系を教えていただければ、場合によってはアドバイスできるかも。
_をはずしてみたら?
>>52 ヘッダファイルの読み方わかる?
direct.hを探して中を読んでみな
_mkdir()とか_chdir()って関数が定義されているかどうか調べてみると
一番早い
「do〜whileを使って1〜10の和を求めよ(但し表示させるのは1〜5の和)」って問題が分からない・・・ 誰か教えて
int i = 1; int sum = 0; do { sum += i; i++; } while (i <= 10); これでおk 後は付けたしたら良い
#include <stdio.h> int main(void) { int i=1; int sum=0; do{ sum += i; }while((i++) < 10); puts("15"); return 0; }
ペペロンチーノの作成法を詳しく解説しているサイトを教えてください。
65 :
デフォルトの名無しさん :2010/11/29(月) 19:44:12
自然数nを入力し、2以上n以下の偶数のsumを求めるプログラムを教えて下さい。
その前にお礼が先だろ
その前にお札が先だろ
その前に割礼が先だろ
┌○┐ │お|ハ,,ハ │断|゚ω゚ ) お断りします │り _| // └○┘ (⌒) し⌒
70 :
デフォルトの名無しさん :2010/11/29(月) 20:38:27
>>58 わからないならレスしないでください
うざいだけです
いい雰囲気だ こうして皆で切磋琢磨することで高脳となる
72 :
58 :2010/11/29(月) 21:03:05
>>52 void main() (笑)
それはともかく、
手元の VC++2008EE では無事にコンパイル・実行できました。コンパイ"ル" が通らないのであれば、どんなエラーが出たのか教えてください。
73 :
デフォルトの名無しさん :2010/11/29(月) 21:10:01
┌○┐ │お|ハ,,ハ │断|゚ω゚ ) お断りします │り _| // └○┘ (⌒) し⌒ 自力でやれよ。
74 :
デフォルトの名無しさん :2010/11/29(月) 21:27:49
ふっほっはっ
コンパイルエラーをコピペしたら負け
レベルの低い戦いだなw
ほっほっ
「C++ クラスと継承完全制覇」 でCとC++の違いを垣間見る ↓ 「ロベールのC++入門講座」 でC++の文法など基礎を習得 ↓ 「Effective C++」 でよりよいC++プログラムの記述法を学ぶ ↓ 「STL標準講座 標準テンプレートライブラリを利用したC++プログラミング」 でSTLを習得 ↓ 「オブジェクト指向における再利用のためのデザインパターン」 で大規模プログラムの設計法について学ぶ ↓ 神を恐れぬ者の誕生
>>78 最後の本、出版社のサイトでサンプルコードを落としてみてみたけど、
大規模の設計方法を学べるとは思えない感じだった。
分からない所があるので教えてください。 入力した英字を大文字か小文字に変換するプログラムなのですが #include<stdio.h> int main(void) {char x; printf("英字を1文字入力しなさい. \n"); scanf("%c",&x); if('A'<=x&&x<='Z'); x=x+32; printf("入力された英字%cの小文字は%c\nです. \n",x,x+32); else if('a'<=x&&x<='z') x=x-32; printf("入力された英字%cの大文字は%c\nです. \n",x,x-32); else printf("英字ではありません.\n");} これでコンパイルしようとしたところ In function ‘main’: 9: expected expression before ‘else’ 12: expected expression before ‘else’ と出ます。どこがおかしいのか自分では分かりません、どなたかお助けください。
ふっふっ
GUHUHU
どぴゅっどぴゅっ
一人で何やってるの
includeのファイルの代わりにプログラムの出力結果を使いたいのだけどどうすればいいの
意味わからんが リダイレクト?
最近の子はmakeの使い方というか存在を知らんからね
「プログラムの出力結果」がでるのが コンパイル前の話なのか コンパイル時に解決しないといけない話なのか 実行中なのかによって違ってくるんじゃ
糞スレ
最近の子だけど makeってなによ
Antのご先祖様だよ。
ふっほっ
make makes many problems
ふーん
使いたいデータをcのソースとして出力するプログラムを書けばいいだけでしょ
ほっほっ
102 :
デフォルトの名無しさん :2010/11/30(火) 23:11:51
むかつく話だが 期末試験で#includeの必要性を問う問題が出題されてて うちは「プログラムを動かすおまじないのようなもの」と書いたんだが 解答として不適切だって教授に駄目出しされた。 てめぇがそのように教えたんだろうがふざけんな
103 :
デフォルトの名無しさん :2010/11/30(火) 23:14:51
教えたことを鵜呑みにする奴はダメだしされてもしかたがない
いやまぁでも気持ちはわかるw その教授はちゃんと説明するべきだったな
大学ってのはな、自分で勉強する場なんだよ ゆとりの餓鬼じゃあるまいしレベルの低い事はやめてくれ
おまじないとか言うのは最初のうちだけで、後からちゃんとした意味を説明すると思うんだが
>>102 が授業にちゃんと出てなかったとかいうオチだろ
108 :
デフォルトの名無しさん :2010/11/30(火) 23:43:11
>>107 だったら最初からきちんと説明してくれといいたい
図星だったのかwww
最初から説明しても絶対分からないしむしろ混乱するだけだからおまじないでよろし。 いきなりprintfやらの説明されても困るだろ
111 :
デフォルトの名無しさん :2010/11/30(火) 23:58:31
>>110 だったら「プログラムを動かすおまじないのようなもの」で解答あってんじゃん。
逆ギレしている馬鹿生徒がいるというスレはここですか?
>>103 まず有効桁数が無限であればニュートン法は必ず収束する。
だが有効桁数が有限の場合は収束しない場合がある。下記の場合だ。
ニュートン法を10回数行ったときの値をf1とし、f1の次の値をf2とする。
10回目以降の動きを数直線上に示すと、下記のケースとなる場合がある。
10 f1 解
11 解 f2
12 f1 解
:
この場合f1とf2で発振し、収束しない。
有効桁数が無限であれば fn と解との距離は無限に小さくなっていくが、
有効桁数が有限の場合は丸めによって途中の値に戻ってしまうことがあるわけ。
場合によっては、
10 f1 解
11 f1 解
:
となって収束する。
> どちらかの方法で収束しない
というのはあくまである環境での話であって、
君の環境でそうなるとは限らない。
おまじないって教わったのに駄目出しされた! ↓ 最初はおまじない、後の授業で説明したんだろ。 ↓ だったら最初の授業から教えろ! ↓ 最初から教えても理解出来ないからおまじないで良い。 ↓ だったら解答あってんじゃん ! ↓ 最初はおまじない、後の授業で説明したんだろ。 以下延々ループ処理
_____ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /:\.____\ / 対ガッ用超高性能ぬるボックスのテスト開始! |: ̄\(∩( ;゚∀゚) < 重いので持ち上げたり投げ飛ばしたりするのは不可能 |: |: ̄ ̄ ̄∪:| \ 耐熱耐寒仕様、太陽に突っ込んでも大丈夫 \___________ _____ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /:\.____\ / 圧力にも屈しない。外部からの衝撃で中の人間が死ぬ事もない。 |: ̄\(∩( ;゚∀゚) < 宇宙空間でも大丈夫。酸素も食料も一生分ある。排泄物も秘密システムで処理できる。 |: |: ̄ ̄ ̄∪:| \ 箱は 外 側 からしか開かない。ふはははは、完璧すぎる。ぬるぽぬるぽぬるぽ! \___________ バタンッ!! ________ |: ̄\ \ <ヌルポヌルポー!! |: |: ̄ ̄ ̄ ̄:|
何年前のAAだよw
118 :
デフォルトの名無しさん :2010/12/01(水) 03:37:33
FILE *fp; fp = fopen( "test.txt", "w" ); fclose(fp); これで同じディレクトリにtest.txtが作られるはずですが、出来ません。なぜでしょうか。
書き込み権限の無いシステムディレクトリだからファイルが作れないとか VSでやっててソリューションディレクトリとプロジェクトディレクトリを勘違いしてるとか そもそもfopenした後のfpがNULLかどうか確認したのか?
int main ( int argc, char *argv[] ) { ... FILE *fp; fp = fopen( "test.txt", "w" ); fclose(fp); ... } だと動かないけど int main ( void ) { ... FILE *fp; fp = fopen( "test.txt", "w" ); fclose(fp); ... } だとtest.txtが出来上がっていた
糞スレ
>>102 これ教授の目の前で言ってるのと同じだけど、大丈夫か?
大学生でこの文章力だとプログラムの方は絶望的だな
125 :
デフォルトの名無しさん :2010/12/02(木) 00:08:53
http://codepad.org/7MRjreIq 参考書のサンプルプログラムです
質問1
このプログラムの2番目のif文はargv[]の2番目を処理しているのですか?
仮に2番目のパラメータだとしたら1番目のパラメータはこのプログラムのこと
を言っているのですか
質問2
while文の記述が私の想像だと
while ((c=fgetc(fp))!=EOF){
fputc(c,stdout)};
fclose(fp);
のようにfputcだけループされる具合になると思うんですがあってますか
質問3
fputcの第2引数stdoutの意味を教えてください(おまけで答えてほしいです)
126 :
デフォルトの名無しさん :2010/12/02(木) 00:26:39
すいません 上の質問すべて解決しました
ふっふっ
128 :
デフォルトの名無しさん :2010/12/02(木) 00:33:13
ありがとうございました
どういたしまして
いえいえ
ほっほっ
どぴゅっどぴゅっ
もしもし
かめよ
かめさんよ
世界のうちにおまえほど歩みののろいものはない どうしてそんなにのろいのか なんとおっしゃる うさぎさん
つきにかわって
おしおきよ
良スレの悪寒
ふっほっ
ぶはっぶはっ
142 :
デフォルトの名無しさん :2010/12/02(木) 23:23:29
作者かわいそす
参考書なのに、どんなつもりのコードなのか解説がないのかね。
ASCIIコードについて説明しようとしてるんじゃね?
配列の初期化、配列に代入、配列の出力 終わり
質問です。 縦横5x5つのマス目からなる表の1列目の上から下に向かって、文字列の1文字目から順に当てはめていく。 一番下までいったら、2列目、3列目、・・・に同様に文字を当てはめていく。 この操作を二次元配列を用いて行いたいのですが、どうすればいいのか見当もつきません。 ヒントだけでもいいので教えてください、お願いいたします。
へえ
150 :
デフォルトの名無しさん :2010/12/03(金) 00:41:20
char masu[] = "abcdefghijklmnopqrstuvwxyz"; for(int i = 0; i < 5; i++){ for(int j = 0; j < 5; j++){ printf("%c ", masu[j * 5 + i]); } printf("\n"); }
151 :
デフォルトの名無しさん :2010/12/03(金) 01:05:57
>>142 です
やっぱこのプログラム糞ですわ、
while((c=getchar())!=EOF)
count[c]++;
ここの部分がほかの処理となんも関係ない
数字を標準入力してその分の配列を作ろうとでもしたのかこれは
ちなみに文字コードのことは解説にはないです
全然違います プログラムが糞なんじゃなくて ちゃんと読めない君が糞なんじゃないの?
いくらなんでも釣りだろ。 こんなアホみたいな簡単なソース読めないのにこんなに偉そうなのはありえない。
154 :
デフォルトの名無しさん :2010/12/03(金) 01:44:04
>>142 標準入力から1バイトずつ読み込んでEOFに相当する値を読み込むまで各値の個数を集計している。
最後に集計した各値の個数を表示して終了。
糞スレ
>>148 char masu[5][5], moji[] "abcdefghijklmnopqrstuvwxy";
int i, j, k = 0;
for(i = 0; i < 5; i++) for(j = 0; j < 5; j++) masu[j][i] = moji[k++];
157 :
デフォルトの名無しさん :2010/12/03(金) 02:26:22
すいません
ラストオーダーです(汗)
これ以降ロムします
>>142 のプログラムについてforやwhileのあとに[]をつけてほしいです
あと
count[c]++は配列、中に格納してある値のどちらをインクリメントしているのか知りたいです
ラストチャンスをください!
配列をインクリトリスメントする場合は当然cunt[c++]だろがタイコンデロガ。 よって中の値をインラクリマクリスティメントしてるよ。
配列をどうやったらインクリメントできんだよw
ヒント ポインタ演算
しつもんです〜 Delphiで TUnkoClass: class of TUnko function BuildUnko(AType:TUnkoClass):TUnko; begin Result:=AType.Create; end; type TGeri = class(TUnko) ・ ・ TIpponGuso = class(TUnko) ・ ・ こういうのがあったとして、これをC++でやるにはどうしたらいいんでしょうか。
残念ながらここは ++ の付かない C のスレ
んじゃCではどうやるんですか?
Cにはクラスがないので、まずCでどのようにクラスを実現するのかという問題から議論せねばなるまいな ただの構造体とするなら、サイズを覚えておいて malloc に渡すだけでいいぞ
なるほどw まぁ構造体ID→分岐→静的コンストラクタって流れなら問題なく記入したコードぐらいなら再現できるけど クラスの扱いに関してはC++へ行けって事ですね。 んじゃそうします。
ふっほっ
ほっほっ
どぴゅっどぴゅっ
>>151 糞かもしれん。が、糞かどうかは
>>142 だけでは判断できんのだ。
前に何が書いてあるのか分からんことには・・・
>>142 はまともなプログラムだから。
え?
低水準入出力関数でファイルを開いて ファイルの文字列から1文字うけとって それをASCIIコードで出力したい場合どうすればいいですか?
>>173 open
read
write
close
open read printf close じゃない?
>>175 printf()は低水準じゃないぞ。
題意は出力も低水準かも知れん。
stdoutのハンドルはどう取ればよいのだ?
ファイルから読んだデータをそのまま書き出すんじゃなくて、 出力するときだけわざわざアスキーと書いてるってことは 入力はアスキーじゃないのかとか、いろいろ空想が広がる質問だな。
>>177 つ[fileno()]
つーか、1だろ。JK
>>177 ファイルハンドルで0だか1だかでしょ? > 標準出力
もう忘れたけど。
標準出力が1で標準エラー出力が2じゃないかい
ふっふっ
おお、1なんだ。初めて知ったわ。 shやbashのやつと同じなのか。
stdout
へえ
ふっほっ
関数を呼び出すときって 例えば構造型じゃない変数型の関数 int star(void) を呼び出す時は int main(void)の中で int a,b star(); のようにstar()は{}内の最初の行で定義しなくていいですよね? でも構造体の場合は 例えば構造体関数の場合, STAR moon(STAR a1)の場合 mainに呼ぶときは int main(void)の中で STAR m,n, moon(STAR)のように {}内の最初の行で宣言が必要なんですか? こう宣言しとかないとエラーが出ます。
>>188 構造型とか変数型とか勝手に自分用語作るな
日本語もおかしいし
根本的にC言語を理解してないように見える
今時宣言なしとかやめてくれ。
ちょっと何言ってるか分からないですねえ
プロトタイプ宣言のない関数は戻り値が int で引数が不定だと推定される
>>188 まず下記のソースをそのまま(順番変えずに)コンパイルすると普通エラーだ。これはいいか?
int main(void) { return star(); }
int star(void) { return 0; }
どういう勉強の仕方をしたら
>>188 みたいなことになるんだろう
すいません 日本語不自由で・・・ #include <stdio.h> int star(int b) {int c;c=b+1;return c;} int main(void) { int a;a=3;printf("%d\n",star(a)); return 0; } このように int main(){int a, star(); 略} と書かなくてもエラーでませんよ?構造体の場合 int main(){STAR a1,a2,moon()・・・略} と構造体関数をmainに呼ぶときは最初に宣言しとかないとエラーでます。
>>194 すいません、ソースは簡単なもんで良いです。、単に原理の話をしたいのです。
ポインタ、や配列一切考えず、すごい単純な例を考えると原理部分以外でエラー
でないので考えてみましょう。
りんごとみかんの数の合計をそれぞれ出すプログラム作ってみてください。
構造体型関数 FRUITS moon(FRUITS nani FRUITS dore)
の中で二つを計算してmainで呼んでください。
>>196 お前が上に張ったコードと
>int main(){int a, star();
これにいったいどんな関連性があるんだ…
構造体関数ってなんだよ本にそう書いてあったのか?
エラーが出ると言うコードを略さず全部書いてくれ
もう釣りなんじゃないかって気がしてきた
ぶはっぶはっ
#include <stdio.h> int main(void) { printf("あなたが好きです\n"); return 0; }
VS でやると、一瞬出て読めないスピードで消えるメッセージですね。 いわゆる、心の中で思っただけという。
UNIXじゃないとか
>>196 日本語不自由というより、用語がむちゃくちゃで、
意味が全く通じんのよ。
君の造語は全く意味が通じんから、
せめてエラーが出ないソースと、エラーが出ないソース貼れと。
構造体の中身を直接観るようなプログラミングをしているということは、 設計に失敗しているという認識でよろしいのでしょうか?
#include <stdio.h> typedef struct {int a,b;}FRUIT; int main(void){ FRUIT ikutsu,nanen,sougaku,moon(); scanf("りんごが何個何円=(%d,%d)\n",&ikutsu,&nanen); scanf("みかんが何個何円=(%d,%d)\n",&ikutsu,&nanen); sougaku = moon(ikutsu,nanen); printf("りんごの総額、みかんの総額=(%d,%d\n)",sougaku.a,sougaku.b); } FRUIT moon (FRUIT nani,dore) { static FRUIT nanitodore; FRUIT nani,dore; nanitodore.a = (nani.a)*(dore.a); nanitodore.b = (nani.b)*(dore.b); return nanitodore; } エラーが出ます。t.c:10: error: parse error before "dore"となります・・・どうしたらいいでしょう?
(FRUIT nani,dore) 馬鹿か死ね
>>209 全然釣りじゃありません・・・
普通に構造体をmoonという関数に渡したいだけなんですが・・
二つ渡すので
(FRUIT nani,dore)ですよね?
でFRUITで返したいので
FRUIT moon (FRUIT nani,dore)
教科書とおりにやってるだけですが・・
それで死ねとか。
>>210 その教科書を破り捨てろ
お前がそんなおかしなことばかりするのはそれのせいだ
今すぐ捨てろ
分からないならレスしなくて結構ですが……
FRUIT nani, FRUIT dore それ以外にもエラーがありすぎる 解決するまでに10回は質問を繰り返されそうだ めんどいな
そもそも a, b って何だろうな FRUIT っていったい何を表す構造体なんだろうな これバナナが増えたら c が増えるのかな 何で static なんて使ってるんだろうな そもそもこのレベルで static なんてどこで知ったんだろうな 教科書に載ってたのかな FRUIT moon(); main の中にこんな書き方してる本なんてあるのかな 教科書どおりってことは教科書に載ってたのかな 本当に載ってるならうpしてほしいな 変数名が全部日本語ってすごいな 教科書でも日本語だったのかな ところで moon って何?月?フルムーン? というわけで分からないことだらけなので答えようがないのです。 お手上げです。頑張って下さい。
typedef struct {int a,b;}FRUIT; scanf("%d",&ikutsu); 便乗して質問なんだけど構造体の変数にこれで値いれてみたら構造体の最初に宣言した変数に値が入ってた。 これって環境依存?
>>216 大抵できるだろうけれど、当てにしないようにね。
赤鬼さんと朝まで豆まき
220 :
207 :2010/12/05(日) 00:00:55
>>213 >>212 は俺じゃないです。
>>214 FRUIT moon (FRUIT nani,FRUIT dore)
も当然試しましたが、エラーでました・・
>>215 a,bは構造体のメンバーです。
moonは唯の関数名、意味は何もないです。
staticは初期値みたいな感じです。
221 :
207 :2010/12/05(日) 00:02:51
とりあえず
>>207 の奴でコンパイル(cygwin)でしたら
t.c:10: error: parse error before "dore"
この一行だけのエラーのみでした。
>>215 FRUITっていうのは構造体の変数型名です。
222 :
207 :2010/12/05(日) 00:09:53
りんごの個数 3個 一個10円 みかんの個数 2個 一個3円 総額 りんご30円 みかん6円 こんな感じのプログラムが作りたいです。 作りたいんじゃなくて、構造体と関数を同時に勉強したいんで。 こんなもん関数使わなくても出来るプログラムですが。
#include <stdio.h> typedef struct { int value; int count; } FRUIT; int moon(FRUIT object) { return object.value * object.count; } int main(void) { FRUIT apple, orange; printf("りんごが何個何円= "); scanf("%d %d", &apple.value, &apple.count); printf("みかんが何個何円= "); scanf("%d %d", &orange.value, &orange.count); printf("りんごの総額、みかんの総額=(%d,%d\n)", moon(apple), moon(orange)); return 0; }
224 :
207 :2010/12/05(日) 00:23:24
>>223 int moon(FRUIT object)
ここを
FRUIT moon(FRUIT object1, object2)みたいにできないですかねぇ?・・
型どうりにやりたいんで・・
プログラムを作ることより何故エラーが出るかのほうが今は学びたい気分です。
高校までは暗記ばっかやってたんで。
#include <stdio.h> typedef struct { int a; int b; } FRUIT; FRUIT moon(FRUIT object1, FRUIT object2) { FRUIT nanitodore; nanitodore.a = object1.a * object1.b; nanitodore.b = object2.a * object2.b; return nanitodore; } int main(void) { FRUIT apple, orange, sougaku; printf("りんごが何個何円= "); scanf("%d %d", &apple.a, &apple.b); printf("みかんが何個何円= "); scanf("%d %d", &orange.a, &orange.b); sougaku = moon(apple, orange); printf("りんごの総額、みかんの総額=(%d,%d\n)",sougaku.a,sougaku.b); return 0; }
226 :
207 ◆hRHl1sG9G1dV :2010/12/05(日) 00:33:06
>>225 それエラーでませんかねぇ?
ちょっとやってみます。
結局 a, b は何を表したかったんだ 個数と単価なのか。りんごとみかんなのか。 変数名が適当だから意図がさっぱり分からない。 せめて a, b に適切な名前をつけてくれ。ついでに moon にも。
本人は理解できなさそうだから、もう突っ込まないほうがいい。
>>226 コンパイルチェックしてるよ〜
ただ意味のある変数名に変えることをお勧めする。
230 :
207 ◆SGcgbjkFYo :2010/12/05(日) 00:44:02
>>229 OK牧場
>>227 いや本当にシステム的なことで精いっぱいで・・・
自分でも何が何やら・・・
しかし、これは酷いな せめて配列と個数で渡すようにしないと りんごとみかんとばななの合計が欲しくなったときにまた引数増やすのか?
233 :
207 ◆SGcgbjkFYo :2010/12/05(日) 00:49:47
色々厳しいけど最終的に教えてくれるので感謝してます。 ありがとうございました。
ボーランドとcygwinってなにが違うんですか?
>>233 嫌味じゃないがまぁもうちょっと勉強した方が良いな。
あんまり変な質問したらこのスレだと結構叩かれるからなw
ほとんど変わらないなら、わずかに違ってる部分こそが問題だってわかるだろうに
>>225 7行目の
FRUIT moon(FRUIT object1, FRUIT object2)
は
FRUIT moon(FRUIT object1, object2)
じゃだめなんでしょうか?そうならば何故ダメなのでしょう?
一応
>>225 でエラーチェッカーしましたが
エラーなかったです、ありがとうございました。
後何故
typedef struct {
int a;
int b;
}
のように構造体宣言では
int a; intb;のように;がいるのでしょうか
int main(void;)とはやりませんよね?
エラーチェッカーってなんだろう。 コンパイルして動かして確認してるんじゃないんだろうか。
>>240 コンパイルしてエラーチェッカーしました・・
ノンエラーでした・・
>>238 2ch で人に聞いて勉強しようと思わずに、適当な本を買って読んでみるといい。
その上でわからないことがあれば、あらためてここにくればいい。
暗記ですまさない、ということはいい心がけだが、勉強というものは元来暗記ものだ、後からわかってくるということも多い。
>FRUIT moon(FRUIT object1, object2)
>じゃだめなんでしょうか?そうならば何故ダメなのでしょう?
そういう文法だ、としかいいようがない。関数の引数を指定するときは、いちいち引数の型を全部に書かなければならない。
>>239 そういう文法であるから、としかいいようがない。
プログラム言語も所詮人の造りしもの。決め事の細部は開発者がえいや、ときめたところも多い。
ふっほっ
C だと構造体って中に配列が入っててもまるごとコピーされるんだよね? だったら普通ポインタで渡すべきなんでしょうか?
普通ポインターでやりとりする場合が多い。 小さい構造体なら、そのままの場合もある。
250 :
デフォルトの名無しさん :2010/12/05(日) 18:55:20
ヘッダ struct A : public B{};←変えれない ソース1 A * p = new A;←変えれない q = p ←ここ ソース2 関数(B型)で関数(q)として使いたい←引数の型は変えられない の状態なのですがどうしたらいいですか? ポインタ型のpの中身(アドレス)じゃなくてそのアドレスの中身をqに入れる感じだと思うのですがやり方がわかりません!教えてください
>>250 日本語がおかしい
それにここC++スレじゃないから
252 :
デフォルトの名無しさん :2010/12/05(日) 19:02:56
>>250 せめてソースぐらいアップロードしてくれないと説明が理解出来ない。
ほっほっ
255 :
デフォルトの名無しさん :2010/12/05(日) 21:27:56
さっき見たけど別に凄くないな
ビットフィールドってビットフラグに比べてあんまし見かけない気がするんだけどなんか問題でもあるの? struct X { unsigned char valid : 1 ; unsigned char value: 7 ; }; struct X x; if( x.valid ) { printf( "%d", x.value ) ; } ビットマスクとかより解かりやすいし多分早いと思うんだけど
使う必然性がないからだよ。
>>257 なんでそれをビットマスクと比較するしw
ちなみにビットフィールドに使える型はint, signed int, unsigned int, _Boolだけ
フラグはフラグで、論理積とか取って一発で比較するので便利。 特定の組み合わせを一つの変数で表現できるのでラク。
ビットフィールドってハード屋が、 1アドレスの各ビットに機能詰め込んだとき以外は、 それ程便利とは思わんけど・・・ 上記もCPU変わってエンディアン変わると後で大変だから、 面倒でも関数介してアクセスしたりしてる。
264 :
デフォルトの名無しさん :2010/12/05(日) 23:06:04
#include<stdio.h> main(int ac, char *av[]){ --ac; *(++av); printf("%s",*av); } エラーの原因がわかりませn 四行目を++av;にすると正常に動作します なんで?? printfの引数と見比べてみておかしいとおもったんですが
>>264 bcc32 や gcc-4 では警告はでるにせよ、コンパイルは通り、
実行結果は第一引数の文字列を表示しています。
エラー、というのはコンパイル時の警告のことですか?
そうだったら、「*(++av) というコードが効果を持たない」という意味の警告がでます。たしかにそれはそのとおりだと思います。
>>266 コマンドライン実行時に引数がなくても av は最終的に argv[1]= "" を指すから、オーバーランは発生していません。
269 :
デフォルトの名無しさん :2010/12/05(日) 23:42:48
もう一回コンパイルしたら警告もエラーもでなかった なんでエラーがでたのか謎 解決はしました ありがとう
>>268 俺は266ではないがそんなことはない。
>>268 例えばac==1の時にはav[0]しか指してはいけないのにav[1]を指してるだろ
272 :
デフォルトの名無しさん :2010/12/05(日) 23:57:39
if(ポインタ→ポインタ)ってどういう判定基準なんですか?
>>272 char* p0 = (char*)A;
char** p1 = &p0;
if (p1->p0) A≠の時の処理
else A=0の時の処理
274 :
デフォルトの名無しさん :2010/12/06(月) 00:05:00
>>273 if (p1->p0) A≠0の時の処理ですか?
>>274 Aに0とか1とか2を入れて試してみればよかろう。
276 :
デフォルトの名無しさん :2010/12/06(月) 00:18:21
>>275 それが今if (p1->p0)のところで
0xC0000005: 場所 0xfeeefef2を読み込み中にエラーが発生しました
と出るのです。よくこれは何も入ってないポインターを使った時に出るのは経験的に知ってたのですが
delete p1,p2をしたので、elseの方に行ってほしいのですが、このエラーのせいで止まってしまうのです
どうしてでしょうか?
deleteしても0は入らないよ 自分で0を代入しないと
寝ぼけてた。こうな。 #include <stdio.h> #include <stdlib.h> struct hoge { char* p0; }; int main(void) { struct hoge obj; struct hoge* p1 = &obj; int a,i; for (i=0 ; i<20 ; i++) { a = rand()%5; printf("%d ",obj.p0=(char*)a); if (p1->p0) printf("true\n"); else printf("false\n"); } return 0; }
279 :
デフォルトの名無しさん :2010/12/06(月) 00:25:57
>>277 そうなんですか。ありがとうございました
>>271 いいえ。この場合はav[1]を指してもよく、av[1]==NULL です。(
>>268 は間違っておりました。)
一般に int main(int argc, char *argv[]) において、argv[argc] == NULL であることが保障されています。
ISO/IEC 9899:1999 5.1.2.2.1-2
うぜー
そんなウザがるなって。 センスがあるかどうかは別として。 ◆QZaw55cn4c はそれなりの知識を備えているし、 こうしてかまってもらうことで知識を増強してる。 ある意味いい勉強方法だと思うがな。
でもうぜーよな?
NULL終端になるって知らんかったわ
285 :
デフォルトの名無しさん :2010/12/06(月) 01:15:52
ねーよ うざいだけ 居なくても誰も困らない むしろ初心者にとっては助かる
ぶはっぶはっ
287 :
282 :2010/12/06(月) 01:19:53
>>283 いや、俺は別にウザイとも思わんが、
ウザイと思う人の気持ちも分かるといった程度。
スレ内で多少意固地になって反論する面もあるが、
その後のソースを見ると全く聞く耳を持たんというほどでもない。
ウザイと思われることでレスを貰い、どんどん成長していきそうだ。
そのうちウザイじゃ済まなくなるかもよ。超ウザイ。ってね。
理解した お前も同類だ
289 :
デフォルトの名無しさん :2010/12/06(月) 01:26:47
282もうざいから消えていいよ
分かったよ。名無しにもどるわ。
俺は勉強になったけどな。
俺は天使になったけどな。
◆QZaw55cn4c は自分を分析されるのが嫌いだと見た。
どこで?
#define HOGE(N) ??? HOGE(1) -> Hoge1() { Hoge2(); } HOGE(2) -> Hoge2() { Hoge3(); } HOGE(3) -> Hoge3() { Hoge4(); } こんな感じで展開されるマクロってどうやって書くの?
>>295 #define HOGE(x) Hoge##x() { Hoge##x(); }
>>280 でさ、何回も聞くけど、どうしてC99のソースを貼るの?今聞かれているのはC89だと思うんだが
298 :
デフォルトの名無しさん :2010/12/06(月) 09:02:46
ループの中で一回だけその処理をしてその後はまるで//されたみたいにさせる関数はありませんか?
>>298 意味が判らんのだが、こういうことか?
for (int ic = 0; ic < num; ++ic) {
static bool static_1st = true;
if (static_1st) {
func();
static_1st = false;
}
// other sequence
}
301 :
デフォルトの名無しさん :2010/12/06(月) 09:36:36
>>300 ありがとうございます
そんな感じです。多分。
staticをすると2週目にstatic_1stにtrueが入らないのでしょうか?
それなのに一回目にfalseを入れることが可能なのですか?どういう仕組みなのですか?
>>301 関数の中で使われるstatic変数の実体は、
ほとんどグローバル変数と思ってよい。
下記2つはほぼ実体は同じ。
1.
int a =0;
void func() { a++; }
2.
void func() { static int a=0; a++; }
2の方は関数内でしか使えないってだけ。
初期化のタイミングはmain関数が呼ばれる前。
func関数が呼ばれるタイミングでは初期化は実行されない。
staticには色んな意味があるので、それ以外は自身で調べて欲しい。
303 :
デフォルトの名無しさん :2010/12/06(月) 11:19:28
>>302 あーなるほど
スコープの中ではグローバル変数と同じように使えるから代入はできる
けどforループ開始前に既に実は初期化されてて、次から初期化部分は無視されるので、trueが入ることはない
こういうことですか?
え?
ふっほっ
それよりstatic変数でその使い方じゃループ全体が二回目呼ばれたときまずくね?
307 :
デフォルトの名無しさん :2010/12/06(月) 15:23:23
二回目呼ばれた時も実行しない仕様なんだと思って読んでたけど
308 :
デフォルトの名無しさん :2010/12/06(月) 15:44:49
ありがとうございます そんな感じで食傷気味です。多分
すいません、mallocって何ですか? 教科書のプログラム例で説明なかったんで・・・ 極々簡単な例で教えてくれませんでしょうか?
>>309 #include <stdlib.h>
int main(){
char * p;
p = malloc(1);
*p = 'c';
}
>>310 ほうほう
char型ポインタpはmalloc(1)をどうするのでしょう?
malloc(1)は何でしょうか?
int i; int *p = malloc(sizeof(int)*10) ;//int10個分のメモリ確保 for ( i = 0 ; i < 10 ; i++ ){ p[i] = i ;//配列として扱える } for ( i = 0 ; i < 10 ; i++ ){ printf ( "%d\n", *(p+i) ) ;//もちろんポインタとしても使える } free(p);// 確保したメモリ解放
313 :
デフォルトの名無しさん :2010/12/06(月) 17:17:48
>>312 sizeof、freeの二つがわかりません・・すいません。
ggrks
どうみても釣りです 本当にありがとうございました
sizeofはメモリの大きさを出す関数 freeはポインタが指す領域を解放する関数 うーん、良く意味がわからないなぁ。 メモリを確保ってどういうことでしょうか?
作業台になる机を借りるんだよ
では全てのプログラムはmalloc関数が必要なのですか?
int「10個分」の配列が欲しいと最初から分かってるなら int a[10]; でいいけど プログラムの計算結果で欲しい数が100個だったり200個だったり決まってない場合 int n=100; int a[n]; みたいに変数を配列の数にしたい所だが実際は出来なかった(C99からはできる) なので int* p = malloc(sizeof(int)*n) ; のようにして必要な数だけメモリを確保する必要があった
>>319 int a[10]とした時点で4byteのメモリが10個確保されるけど
変数個の場合は確保できないってことですね?
出来なかったってどいうことですか?理論的に無理じゃなかった
ってことですか?
>>319 わかりやすすぎワロタw
プログラムやってると頭悪い奴と頭良い奴の差が本当に出るなぁ。
322 :
デフォルトの名無しさん :2010/12/06(月) 17:42:40
age
教えるのが下手なやつは教えれるほど理解していない。 人に物を教えるには3倍理解していないといけない。
プログラミングって実行したら自動的に必要な分だけ メモリ確保するんじゃないんですか?
基本的に、変数や配列の内容を記憶するメモリは確保しないと使えない。 int i; double d[10]; などとして変数や配列が使えるのは、スタックと呼ばれるメモリがすでに確保されているから。 ただし、スタックの量は限られているため、あまり大量に使う事ができない。 そこで、大量のメモリが必要な場合は、ヒープと呼ばれるスタックよりも広いメモリ領域から確保してくる。 そのための関数が malloc() で、引数に指定されたバイト数の領域をヒープから確保してくる。 また、C99 未対応の C 処理系や C++ などでは double d[n]; のように要素数が定数でない配列は確保できないので、 この場合も malloc() で (C++ では new 演算子も使い)、ヒープからメモリを確保する。
メモリを使うのと確保するのは意味が違うんですね。 処理にはメモリが必要だけど、確保してないとその範囲内で 処理できないってことですね。
昔に比べて説明しにくいよな 限られてるといってもスタック1MBくらいあるもんな
何で計算など複雑な処理をするメモリは確保してなくても使えるのですか?
>>328 計算に必要なメモリ=計算に使う変数のメモリだから
多分
どんな複雑な計算だろうがコンパイル時には既に その計算に必要な量のメモリが分かっているから int a[n]; のようにコンパイル時にサイズが解決できない宣言はエラーとなる
お願いします。 C言語でGoogleカレンダーに食わせるCSVを作成するツールを作成中です。 Googleカレンダーの仕様上、CSVの日本語部分がUTF-8でなくては文字化けが起こります。 Cでファイルに書き込む時に、明示的に文字コードをUTF-8に指定する方法を教えていただきたいです。 よろしくお願いいたします。
開発環境くらい書いてくれないと
>>331 Cの仕様に文字コードという存在自体無いので
文字コードをなんとかするにはそれ用のライブラリを入れるしか無い
まぁ環境によっては設定で常にUTF-8を扱う感じにできるかもしれんが
>>330 たとえば(100!)^(100!)の計算を算出するプログラムだとどのくらい
メモリ食いますかねぇ?
もういい加減しろよ
>>332 失礼しました。
開発環境は VIM 7.2 でコンパイラはbcc32.exeです。
作成しているツールはDOS窓内で動く簡単なものです。
>>333 ありがとうございます。
参考になりました。文字コードを指定してファイル出力するには
どんなライブラリを使用すればいいのでしょうか?
夕方のここスレは空いている
>>336 Linuxだったら普通に書き込んだあとに
system関数でiconvをコールして変換すればいいだけじゃ?
>>338 ありがとうございます。
使用中のOSはWindowsです。
使ってもらうのは別の人になるので、
できればツール単体でUTF-8のファイルを吐きだすものに仕上げたいのです。
>>297 C89 の pdf ファイルがあれば、そっちを貼りますが、残念ながらまだ手に入れていないのです。
K&R2 の付録は確認しています。
今回の内容は C89 でも同じです。
>>334 nt型一つで32ビットだから
100が2つで64ビット
>>339 じゃあ
MultiByteToWideChar
でぐぐれ
>>341 いや処理系のメモリ、
100だと2^5<100だから
6ビットじゃないんですか?
対数とれ
345 :
デフォルトの名無しさん :2010/12/06(月) 18:48:15
>>342 ありがとうございます!
やはりあったのですね、こういった関数が。
しかしKERNEL.DLL内に含まれる関数を呼ぶ方法がわかりません。
ご教授お願いします。
100 だと 1100100だから7ビットじゃないんですか?
ひゅっひゅっ
348 :
デフォルトの名無しさん :2010/12/06(月) 19:07:18
7ビットと7ビットの掛け算 100×100だと49ビットが必要何ですか? ここらへん良くわかりませんね。
349 :
デフォルトの名無しさん :2010/12/06(月) 19:44:32
unsigned char HOGE[100]を関数の引数・仮引数を使ってchar*型の変数に渡したいのですが、うまくいきません。よい方法はありますか?
351 :
デフォルトの名無しさん :2010/12/06(月) 20:08:05
>>349 「うまくいかない」とは、どんな目的が達成できないことを言っているんだ?
その文面を見る限り実行結果は出るはずだが
>>350 はい、すいません。
勘違いしてましたね。
100は
1100100は8byte=32bitですよね。
100^100も32bitのメモリがあれば
できるんですか?膨大な計算結果になりますが。
>>353 どう考えても32bitじゃ足りませんよね。
あれ?8byteは64bitか。
1byte=8bitだよ
>>354 計算する型とか計算結果の型でわかるだろ
もっと大きく欲しけりゃそういうライブラリ使う
そういう時は何桁とか指定する
>>356 とは限らん
358 :
デフォルトの名無しさん :2010/12/06(月) 20:46:57
いや1byte=8bitだろ。 違うの?
1byte=8bit とは限らない何てプログラミングにとってはどうでもいいことだ。
9bitのものもある
361 :
デフォルトの名無しさん :2010/12/06(月) 21:13:52
>>348 おまえさんが使ってるそのマシンで計算できてるじゃないか
その文面は 100 の 100 乗を 7bytes つまり 56bits で表現したつもりなんだろ?
計算とは出力を得るための処理であり、その出力の表現次第でどうにでもなる
32bit でも float なら 340282346638528859800000000000000000000.0 くらいまで表現できるし
グラハム数だって貧弱なマシンで「表現」できるわけだ
>>358 文字コードのいろいろでいろいろなる場合もある
>>348 > 100×100
まず10進で考えよう3桁と3桁掛けて9桁になってるかい?
>>348 中学校の数学指数のとこやり直した方がいいな
あと進法についても
WCHARやTCHARでユニコードを使ってAPIの関数を使ってプログラムをしているのですが 他の関数の引数はL""で今までできていたのですが、新しいソースファイルをプロジェクトに追加して 同じAPIのある関数を使うとLPCSTR型でないので使えませんと出るようになりました。逆にcharだと上手くいきます そのソースではTCHARで主に書いていて、さっきとは別のAPIの関数もTCHARで使っていて 今、TCHAR+L””した文字列を使ってその関数の引数にしたいのですが、LPCSTR()でキャストするとできません。 変換する前の文字列はデバッガで見るとちゃんとできています。 wcscpyt等の時にLPCSTR()でキャストすると文字列が短くなってしまいます どうすれば良いでしょうか?
プロジェクトの文字セットの設定で マルチバイト文字列を使うからUnicodeを使うに変更する
367 :
デフォルトの名無しさん :2010/12/07(火) 04:41:12
WideCharToMultiByteをした後に chargata[wcslen(wchargata) ] をしたらできました。ありがとうございました
368 :
デフォルトの名無しさん :2010/12/07(火) 04:44:03
>>366 ありがとうございます
Unicode 文字セットを使用するになっています
TCHAR+L””じゃなくてTCHAR+_T(””)を使わなきゃ駄目だよ あとwcscpyじゃなくて_tcscpyを使うようにするとか WCHARと混ぜて使うのはやめた方がいい キャストは一切必要ないはず まぁTCHAR辞めるのが一番の気もするけど
英数記号を全角で書く人の言うことってなんか信用できないんだよなあ おまえほんとにコード書いたことあんのか?って思う
ファイルのオープンモードってテキストとバイナリで具体的に何が違うんですか? 改行の変換だけですか?
372 :
デフォルトの名無しさん :2010/12/07(火) 14:04:22
>>351 = (char*)HOGE;で無理やり代入してるんですが、先頭バイトしか入っていないようなのです。
unsigned char hoge[10] = "abc123"; char* c; c = (char*)hoge;
>>374 ここまでは、いいとして・・・。これ以外の部分のソースは?
cの値があれば、文字列hogeの中身を c[0]、c[1]〜 で取り出せるわけだが。
それがうまくいかないってこと?
376 :
デフォルトの名無しさん :2010/12/07(火) 15:16:19
整数i, j,実数x,y それぞれに任意の値を入力し、 i+j, i-j, およびx+y,x/yを計算し、その結果を出力するプログラムを作成せよ 入力にはscanf関数、出力にはprintf関数を用いること 出力結果は i+j=計算結果の数字 i-j=計算結果の数字 x*y=計算結果の数字 x/y=計算結果の数字 この問題誰かできませんか??TeraPaDでコマンドプロンプトに実行 お願いします
これはひどい
宿題スレ池
379 :
デフォルトの名無しさん :2010/12/07(火) 15:37:11
すいませんでした
>>371 環境によって、改行を示す目印として、0x0a 単独の場合と、0x0d 単独の場合と、0x0a + 0x0d 2 バイトで表示する場合とがありました。
それを吸収してユーザーに意識させないのがテキストモードです。
改行を示す目印も単なる文字として扱うのがバイナリモードです。バイナリモードでは 0x0a, 0x0d 両者とも別の1キャラクタとして扱われます。
>>380 黙れ
知らない方に
こいつの隔離スレをご覧ください
>>382 そうですね。
でも、それはOS側での raw モード/ cocked モードの話が絡むので、ちょっとややこしいなあ。
ぷぷっ
知ったかほど痛いものはない
>>385 ん、raw/cocked は con デバイスだけの話だったかな?昔のことで忘れてしまった。
これは恥ずかしい
知らないならわざわざネットの付け焼刃知識でレスしなければいいのに
まさにグーグル先生状態
グーグル先生のほうがまだ信じられる
>>386 ググったけど無かったって素直に書けばいいのに…
お前ら厳しいなw
厳しいって言うかどっちかって言うと個人叩きだな そこら中で敵作ってるから
いるよね、存在自体がウザい奴って。
おっとそこまでだ。
396 :
デフォルトの名無しさん :2010/12/08(水) 02:36:18
デバッグ時→コメントアウト デバッグなしで開始→コメントアウトされない ってできますか?
できます
#define と #ifndef あたりを使ってね^^
399 :
デフォルトの名無しさん :2010/12/08(水) 03:28:37
>>398 できませんでした
どう書いたら良いですか?
>>399 >398の方法はコンパイルするときに切り替える方法だ。
デバッガから起動されているかどうかを知る一般的な方法はないから、必要ならデバッガまたは環境のスレへ。
401 :
デフォルトの名無しさん :2010/12/08(水) 03:46:12
>>400 ありがとうございます
とりあえずVC++のスレで聞いてきます
昨日からC言語の世界に入りました。初歩の初歩ですみません。 NSString *str1; NSString* str2; この違いってなんですか?上のポインタ指定は分かります。 下の型宣言に*が付いてるのがいまいちよく分かりません。 どうぞよろしくお願いいたします。
違わない
ふっほっ
405 :
デフォルトの名無しさん :2010/12/08(水) 10:44:08
弾性係数40g重/pのばねがある。いま,重さy[g重]のおもりをばねにつるしたとする。 scanf関数を用いておもりの重さをキーボードから入力し,ばねの伸びを計算する。 さらにおもりの重さと計算した伸びの両方をディスプレイに表示するプログラムを 作成せよ。おもりの重さy[g重],ばねの伸びx[cm],弾性係数k[g重/cm]の間にはx=y/kの 関係がある。 という問題なんですが,C言語はじめたばかりなので全然わかりません。 どなたか解説お願いします。
406 :
デフォルトの名無しさん :2010/12/08(水) 11:13:12
407 :
デフォルトの名無しさん :2010/12/08(水) 11:16:05
物理の問題としてならわかります。 先ほどからエラーが絶えません。
>>405 宿題スレに書けばすぐ答えが帰ってくるぞ
409 :
デフォルトの名無しさん :2010/12/08(水) 11:19:27
410 :
デフォルトの名無しさん :2010/12/08(水) 11:25:46
#include <stdio.h> int main(void) { int k=40; double x, y; /* 実数変数宣言 */ scanf("%d\n %d\n, &x, &y); /* scanf 文 */ x=y/k printf("x=%f\n", x); return 0; } 笑われるかもしれませんが
>>410 %d を %lf にすればきっと大丈夫
412 :
デフォルトの名無しさん :2010/12/08(水) 11:32:22
>>410 scanf は %f で \n はいらない
x=y/k の右にセミコロンがない
あと直接的には関係ないが scanf は文ではなく関数な
413 :
412 :2010/12/08(水) 11:35:15
わりい訂正 %f じゃなく %lf あと y も表示するんだったよな
414 :
デフォルトの名無しさん :2010/12/08(水) 11:39:10
#include <stdio.h> int main(void) { int k=40; double x, y; /* 実数変数宣言 */ scanf("%f %f, &x, &y); /* scanf 文 */ x=y/k; printf("x=%f\n", x); return 0; } 1 2 3 4 5 In function 'main': Line 6: error: missing terminating " character Line 7: error: expected ')' before ';' token Line 10: error: incompatible type for argument 1 of 'scanf' Line 10: error: expected ';' before '}' token できません;;
>>414 #include <stdio.h>
int main(void)
{
int k=40;
double x, y; /* 実数変数宣言 */
scanf("%lf%lf", &x, &y); /* scanf 文 */
x=y/k;
printf("x=%f\n", x);
return 0;
}
題意を満たしているのだろうか?(・∀・)
417 :
デフォルトの名無しさん :2010/12/08(水) 11:51:18
できました。 みなさんありがとうございます。
418 :
デフォルトの名無しさん :2010/12/08(水) 11:54:51
でも,伸びしかディスプレイに表示されないんですが。 おもりの重さと計算した伸びの両方をディスプレイに表示する プログラムをつくらなけれbならないんですが
頑張れよ
printf("x=%f[cm], y = %f[g重]\n", x, y);
421 :
デフォルトの名無しさん :2010/12/08(水) 12:09:39
>>420 ありがとうございます。
すこし理解できた気がします。
for (j = 0; j < 6; j++, i++) { a[i] = n % 2 ; n /= 2 ; 質問です この文のn /= 2 ;とはどういう処理をしているのでしょうか?
n=n/2;
私の母は昔から体が弱くて、それが理由かは知らないが、 母の作る弁当はお世辞にも華やかとは言えない質素で見映えの悪い物ばかりだった。 友達に見られるのが恥ずかしくて、毎日食堂へ行き、お弁当はゴミ箱へ捨てていた。 ある朝母が嬉しそうに「今日は〇〇の大好きな海老入れといたよ」と私に言ってきた。 私は生返事でそのまま高校へ行き、こっそり中身を確認した。 すると確に海老が入っていたが殻剥きもめちゃくちゃだし 彩りも悪いし、とても食べられなかった。 家に帰ると母は私に「今日の弁当美味しかった?」としつこく尋ねてきた。 私はその時イライラしていたし、いつもの母の弁当に対する鬱憤も溜っていたので 「うるさいな!あんな汚い弁当捨てたよ!もう作らなくていいから」とついきつく言ってしまった。 母は悲しそうに「気付かなくてごめんね…」と言いそれから弁当を作らなくなった。 それから半年後、母は死んだ。私の知らない病気だった。母の遺品を整理していたら、日記が出てきた。 中を見ると弁当のことばかり書いていた。 「手の震えが止まらず上手く卵が焼けない」 日記はあの日で終わっていた。
うおーーーーーーーーーーーーーーん うおーーーーーーーーーーーーーーん なげるじゃねぇがいおおおおおおおおおおおおおお
何年前のコピペだよw
おっと、あぶねぇ。かあちゃんスレを開いてしまったぜ
int型で入力した整数を文字配列つかってchar型で表示したいんですけどどうすればいいですか?
sprintfを使えばいいです
sprintf
ふっふっ
435 :
デフォルトの名無しさん :2010/12/08(水) 19:23:42
ほっほっ
ぶはっぶはっ
ぶりぶりぶりゅ
キチガイ共
440 :
デフォルトの名無しさん :2010/12/08(水) 20:29:03
関数rってなにいってんだ?
442 :
デフォルトの名無しさん :2010/12/08(水) 20:34:24
>>441 ポインタrです。
ポインタの階層が多すぎて全然理解できないです。
リストの基本的な例だと思うんですが。
>>440 基礎的な線形リストです。なんとか体得してください。
何この上から目線w
説明できないくせにな
>>443 そうなんですよねぇ・・
insert関数内のqとかが良く分からん。
後何でmain内でinit,p=NULLとデフォってるのか分からん。
本当に基本的なんだけど。
きゅっきゅっ
>>446 じゃあ、insert() をちょっと書き直してみました。これでどうでしょうか?
struct cell *insert(int x, struct cell *p, struct cell *root) {
struct cell *r;
r = malloc(sizeof(struct cell));
if(p == NULL) {
r->element = x;
r->next = root;
root = r;
} else {
r->element = x;
r->next = p->next;
p->next = r;
}
return(root);
}
449 :
デフォルトの名無しさん :2010/12/08(水) 21:07:40
>>448 余計わからんくなったです。
図書くと余計わからなくなるし。
何のプログラムなのかよくわからない。
リストでcellを途中に入れるプログラム
なんだろうけどそれを可能にするアルゴリズムの
ソースの意味がわからない。
じゃあ向いてないんだろうあきらめろ
ふっほっ
452 :
デフォルトの名無しさん :2010/12/08(水) 23:26:00
#include <stdio.h> /* 標準入出力のヘッダファイルの読込み */ #include <stdlib.h> /* 標準ライブラリのヘッダファイル */ struct cell {int element; struct cell *next;}; /* 構造体cellの定義 */ struct cell *insert(int x, struct cell *p, struct cell *init);/*関数の宣言*/ main() /* Manipulation of a linked list of cells. */ { struct cell *init; struct cell *p, *q; int i; init=NULL; p=NULL; for(i=0; i<10; i++) {init=insert(i+1, p, init); p=NULL;} printf("init = %p\n", init); q=init; while(q!=NULL) { printf("cell = %d, %p\n", q->element, q->next); q=q->next; } return(0); } struct cell *insert(int x, struct cell *p, struct cell *init) /* ポインタpが指すセルの次にxのセルを挿入; p==NULLなら先頭へ挿入 */ /* 連結リストはポインタinitから始まる */ { struct cell *q, *r; r=(struct cell *)malloc(sizeof(struct cell)); /* 新しいポインタの獲得 */ if(p==NULL) {q=init; init=r;} /* 先頭への挿入 */ else {q=p->next; p->next=r;} /* 途中への挿入 */ r->element=x; r->next=q; return(init); }
delete()消しました。 おそらくリスト構造を作るプログラム何だと思うんですが、配列使えば 一瞬ですよね?後々双方向リストとかでポインタの方が表現の幅広がる のでポインタで表現したいアルゴリズム何ですが、ポインタはやっぱり 難しいです、全然作用が分かりません。 後、改行多すぎですのウザさは異常。
>>453 線形リストをはじめとする、ポインタで領域を連結するかたちでのデータの保持、という手段は、基本中の基本です。
時間をおいて見直してみるのもありだと思います。
ここが山場だと思って、あきらめずに、なんどでも「理解しようと」アタックすれば、いつの日かからくりが腑に落ちる日がくると思います。
配列は簡単ですが、データを格納する領域がコンパイル時に固定されてしまう点で、いまひとつ柔軟性にかけるのです。
さらに仕組みを簡単に書き直してみました。同じく delete は省略しています。
http://codepad.org/mGZF188g
何この上から目線w
457 :
デフォルトの名無しさん :2010/12/09(木) 06:49:00
C言語のフリーのコンパイラで何か良いのありますか?
LSI C-86試食版
>>457 VC++もしくはgccが鉄板
bccでもいい
C言語で僕のチンコが大きくなる方法を教えてください。
間違ってもそれはない。
これだからゆとりは
組み込み型の ・ビット幅はsizeof(hoge)*CHAR_BITS ・最大最小はlimitsの対応するマクロ以外の方法で調べても保証はできない で正しいですか?
もっと確実な方法があることにはあるが・・・
>>453 Cをやるならポインタは避けて通れないし、
また、避けて通るべきではないよ。
ポインタがない言語に移ったとき、その恩恵が分かる。
ポインタ、っていう簡単な仕組みですごくラクできてた。
最初のとっかかりだけは難しいけど。
参照渡しでいいじゃん
>>466 Cの後継言語C++ではポインタはバグの温床として、ポインタよりイテレータや参照を
積極的に使用するように推奨しているけど、肝心の部分ではやはりポインタを使わないと
書けない所がたくさんあるしな
イテレータはポインタとは別の機能だし、参照とテンプレートの相性がいいだけで ポインタより推奨されてるわけじゃないような
470 :
デフォルトの名無しさん :2010/12/09(木) 12:07:55
イテレータって何ですか?
↓ボケて
│ _、_ │ ヽ( ,_ノ`)ノ 残念、それは私のおいなりさんだ │ へノ / └→ ω へノ
473 :
◆B3pvyhGHME :2010/12/09(木) 12:15:40
ソノブイってなんですか?
ふっふっ
ふっほっ
つーかポインタ使えないCに存在価値はあるのか?ぶっちゃけ無いよな
477 :
デフォルトの名無しさん :2010/12/09(木) 14:02:37
#pragma と asm の嵐になりそうだな
どぴゅっどぴゅっ
ほっほっ
バイナリストリームに対するfreadみたいにテキストストリームを一括で読み込む方法って在りますか? fgetsだと改行でとまってしまうし、freadは失敗してしまいます
>>480 fread で失敗するなら他の方法も無理だろう
482 :
デフォルトの名無しさん :2010/12/09(木) 15:53:19
>>454 ありがとうございます、1年の段階でこんな難しいポインタを応用した
プログラム書かせる何て難関国立大に入った付けですね。
がんばって見ますね、inserとmain()の関与部分はただ連結リストを
ポインタで作るだけの作用ですね、deleteからが本題のような気がします。
まーがんばって見ます。
Cをやる時点で自己参照構造体を使ったリストの作成は必ずやるだろ
>>483 だなw 工学部、とくに情報系だとやらんほうがおかしいw
485 :
デフォルトの名無しさん :2010/12/09(木) 16:05:20
>>483 いやいや、構造体、ポインタ、関数が雁字搦めになれば気が遠くなりますよ。
東大理Vの数学の入試問題より難しいです。
ほっほっ
>>454 struct cell *root = NULL
こうしとかないと最後にエラーが出るんだが
ふっふっほっ
エラーというよりプログラムが実行時にクラッシュする
東大理Vの入試っていつから小学生でも解けるようになったんだ?
ふっふっ
さすがに理Vの入試問題はPG初歩より難しだろうに。
東大って…試験問題共通じゃなかったか?
へっふっ
>>493 文系・理系で分かれるけど、理I〜理IIIは共通だね
ぶはっぶはっ
時代によって入試形式は変わるしねぇ。 ちなみにこのスレの人間は高卒がほとんどじゃね?
理Vだけ問題が違った時代なんてあんのか? 理Vのみの面接は最近廃止されたらしいけど
>>500 願書取り寄せたりしてないから分らん
でも理Vって最難関だから、全部他の学科と同じ問題ってことはないんじゃね?
どうでもよすぎワロタw
C言語ってコンストラクタないんですか?
structだろw
Cしか知らない人ってそういう反応するんだなぁと思える良レス。
508 :
デフォルトの名無しさん :2010/12/10(金) 01:15:03
C言語のプログラムの動作についての質問です while((c=fgetc(fp))!=EOF){ if(iskanji(c)){ fputc(c,stdout); fputc(fgetc(fp),stdout); } 参考書のサンプルの一部です fpはFILE型のポインタです ちなみにiskanji(c)についてはマクロで以下のように定義されてます #define iskanji(c)\ (0x81 <= (c & 0xff)&&(c & 0xff) <= 0x9f || 0xe0 <= (c & 0xff) && (c & 0xff) <= 0xfc) どうやらcがシフトジス漢字コードの一バイト目であるかをこれで判断するようです 真の場合ifの条件式以下の[]が実行されます 質問の内容は[]の動作です fputc(c,stdout); fputc(fgetc(fp),stdout); 私にはどちらの行も同じ動作をしているように思われます。 この部分の説明をお願いしたいです
>>508 前者は変数cの値を出力している。
後者はストリームfpより入力した値を出力している。
但し、後者はEOFにぶち当たった場合に想定外の出力を行なうことになるので不適当。
つまり、その参考書はカス。
>>508 fputc(c,stdout); ← こっちでshift-jisを構成する2byteの1byte目を出力
fputc(fgetc(fp),stdout); ← こっちで2byte目を出力
>>509 の指摘はshift-jisの一文字目に当てはまる文字コードで終わる異常な文字列であれば当てはまるが
基本問題ない
エラー処理が甘いとはいえるが、サンプルだし分かりやすさ重視なだけだろう
512 :
デフォルトの名無しさん :2010/12/10(金) 02:16:55
なんで[]の中二つ書かないといけないんですか シフトジスのことは調べてみたつもりですが if(iskanji(c)){ fputc(c,stdout); } これじゃだめなんですか?
漢字は1文字で2バイトあるのに 1バイトしか出力しなくていいと思いますか?
>>512 shift-jisの2バイト文字だけ出力したいという処理を作ろうとしている。
ある1byteについて、それがshift-jisの2byte文字の1byte目であるかどうかについては、iskanjiで判断できる。
ある1byteについて、それがshift-jisの2byte文字の2byte目であるかどうかは、今のあなたは道具を持っていない。
このとき、shift-jisの2byte文字の、1byte目、2byte目を共に出力したいとしたら、どうする?
朝鮮人か?
理解できないのか?
518 :
デフォルトの名無しさん :2010/12/10(金) 14:03:03
あ
ほっほっ
522 :
デフォルトの名無しさん :2010/12/10(金) 15:27:08
朝鮮人ですよ なんとなくですがわかりました Whileの判別で間があくと漢字が出力できないってことですね
へっふっ
(´・ω・`)
どぴゅっどぴゅっ
大域変数はいくつかあるが、処理が関数に分割されている状態と 大域変数はないが、ほとんどの処理がmain関数に記述されている状態 どっちが健全?
>>529 いろいろなところで使う変数でもなるべく引数で渡していったほうがいいってこと?
オブジェクト指向に慣れきってしまったせいで処理の分割方法がぜんぜんわかんないです;;
規模は先輩方の書いたコードだと800行ほど(全部main関数)
おかしすぎ >オブジェクト指向に慣れきってしまったせいで処理の分割方法がぜんぜんわかんないです;; オブジェクト指向に慣れきったら、データー処理に困る事はあり得ない。 OO素人発言だ。
>>530 オブジェクト指向でやればいいじゃない
言語のサポートは無いけどな
533 :
528 :2010/12/10(金) 21:53:00
なるほど、struct使ってオブジェクト指向っぽいことすればいいのか
534 :
デフォルトの名無しさん :2010/12/10(金) 22:05:47
>>528 迷わず前者が健全
本質的にアプリケーションインスタンスに1:1対応する値は大域変数であるべき
static にしてもゲッタとセッタを作っているパターンは大域変数と結局同じ
main が外部結合を持つこと自体が持つリスクなどどうしようもない
>>528 前者は健全というかCでは普通。
後者は論外。
536 :
528 :2010/12/10(金) 22:21:31
仮に大域変数を作る場合、利用するのがそのファイル限定ならstaticはつけるべき?
>>536 見せなくていいものは見えなくするってのが基本じゃろ
constも付けろ
540 :
528 :2010/12/10(金) 22:25:37
541 :
デフォルトの名無しさん :2010/12/10(金) 22:34:27
const は転ばぬ先の杖にすぎない 信じすぎるな
const 付けたら変更できなくなるじゃんw
変更できなくするためにconst付けるんだろが
544 :
528 :2010/12/10(金) 22:42:22
ザーッと先輩方のコードを眺めてみましたが、 データのやり取りをする計6つのサーバーに対する ファイルディスクリプタがあったので、 まずはこれを大域変数にしてみようと思います。
545 :
デフォルトの名無しさん :2010/12/10(金) 23:14:50
>>544 大規模な変更はまずお窺いをたててからにしろ
>>544 君にとってそれが最も貢献できる仕事ならそれも良かろう。
548 :
528 :2010/12/10(金) 23:21:13
>>545 勉強がてらいじってみろ程度ののりなので大丈夫です
>>546 申し訳ありませんでした
いろいろ参考になりました。ありがとうございました。
size_tをprintfしたいときの書式っていったいどうなってるというのです?
%zd
>>549 こんなかんじかな。
printf("size_t\n");
552 :
デフォルトの名無しさん :2010/12/10(金) 23:29:41
putsでいい
おら多少効率悪くてもprintfしか使わねーだ。 putsもputcharもcoutも覚えるのメンドくせーだ。 たまにsprintfとfprintfは使う。これは仕方ない。
ぷっつwwww ぷっつっつwwww ぷっつんぷりんぎょいwwww
putchar ぷっちゃー
printf(str); よくあるミス
557 :
デフォルトの名無しさん :2010/12/11(土) 01:19:31
printf(fmt, str); 初見では分からない人多数
>>556 おお、これいいじゃん!と思った時があったなあと懐かしく。
そのプロジェクトでそれのだめな点に自ら出くわして、ああそりゃそうだなwとおもったのもまた、懐かしい。
先生、どこに問題があるのかわからないので教えてください
560 :
デフォルトの名無しさん :2010/12/11(土) 02:45:37
const char* str = ”
>>559 is %s”;
printf(str);
ほっほっ
まぁどうせ、gccならprintf("foo\n")と書いても実態はputs("foo")だしね。
563 :
デフォルトの名無しさん :2010/12/11(土) 05:24:24
第1引数に入る文字列が推測でき,その中にパラメタが無い場合orパラメタも推測できる場合に限る
564 :
デフォルトの名無しさん :2010/12/11(土) 11:51:31
漢字出力可能なコンパイラないですか?
聞いたことないな
ソースコードに漢字書けばそのまま出ると思うけど・・・。 gcc なら --input-charset、--exec-charset の問題かもしれない
568 :
デフォルトの名無しさん :2010/12/11(土) 12:51:41
C言語ってのはとりあえずEclipse使えばいいんだろ? みなさんEclipse使ってますか?
使ってないぞ。Javaでの開発では、たまに使うけど
そうなんですか・・・ JavaだけじゃなくてCもあったので使ってみようかと ハイパー初心者なんでどれ使えばいいかもわからないんですよね
VisualStudioが無償で使えるからそれ使えばいいだろ
インスコしなくても使えるんで不足がないならEclipse使おうと思ってるけどいいですか
EclipseはNios専用で使ってるけど、 ハイパー初心者ならコマンドプロンプトからコンパイルする奴のほうがいいと思うぞ。 WindowsならMinGW取りあえず入れて、それでやればいいじゃないかね。
>>572 「インスコしなくても」ってすでにインストール済みってこと?
じゃ使えばいいと思う。
ありがとうごじあます とりあえずVisualStudio使えってことですね Visual C++ 2010をいんすこでおk? VBとC#とWEBなんちゃらがほかにあるけど・・・
cygwinかubuntuにしとけ
>>575 eclipse入ってるなら、それ使えばいいよ。
別にVCでもいいけど。
基本はVisual Cのくうきを感じるんでいんすこしてきます なんかほかのつかってわかんねぇ!ってなったときVisual C使えよ馬鹿って言われるとあれなんでw
visual studioのcl&linuxシェルコマンドだとcygwin以外に選択肢は無いのか?
580 :
440 :2010/12/11(土) 13:48:11
やっと理解できました今日・・・ 解読に3週間ってかかりすぎですかね? >-や%pの意味、malloc,callocの意味、ポインタの本質 ==NULLなど全部調べたらこんだけかかりました。 ありがとうございました。 これから先不安です。
ふっほっ
終了
「ふっほっ」とか書いてる奴はC言語の話題がなくて面白くないんだろうな
ほっほっ
どぴゅっどぴゅっ
キチガイ乙
>>579 SFUは?名前変わったかもしれないけど
ふっふっ
自分でなんか作ってたら何時間でも出来るけど参考書だと1時間くらいで飽きてしまう。 どうすればいいですか?
答えもう出てるじゃん
だな。 とりあえず何か作って勉強しろ
593 :
デフォルトの名無しさん :2010/12/11(土) 23:30:35
C言語でライブラリ関数や構造体(struct sockaddr_inとか)の宣言を探すスマートな方法ってありますか? includeパスをgrepするのが確実ですか? 誰が書いたか分からないような解説HPやリファレンス本の情報に頼るのが早いんですか?
VCなら右クリックして「定義に移動」
>>593 検索用語に msdn を追加するとか
最初から msdn のヘルプをダウンロードしておいて調べるとか
┌○┐ │お|ハ,,ハ │断|゚ω゚ ) お断りします │り _| // └○┘ (⌒) し⌒
>>593 > 誰が書いたか分からないような解説HPやリファレンス本の情報に頼るのが早いんですか?
随分上から目線だが・・・
> includeパスをgrepするのが確実ですか?
信用できなきゃそれでいいんじゃね。
598 :
デフォルトの名無しさん :2010/12/12(日) 00:03:09
コマンドラインでファイルを指定してその内容を画面に出力するプログラムなんだけど エラーがでまくる #include <stdio.h> #include <stdlib.h> include<ctype.h> #define iskanji(c)\ (0x81 <= (c & 0xff)&&(c & 0xff) <= 0x9f || 0xe0 <= (c & 0xff) && (c & 0xff) <= 0xfc) main(int ac, char *av) { FILE fp; ++av; fp=fopen(av,"r"); while((c=fgetc(fp))!=EOF){ if(iskanji(c)){ fputc(c,stdout); fputc(fgetc(fp),stdout); } else { fputc(c,stdout); } } } ちょっと直してくれませんか コードパッド遅いんでここにかくよ
× include<ctype.h> ○ #include <ctype.h> × FILE fp; ○ FILE *fp; あと変数 c が無いぜ
>>598 #include <stdio.h>
直すつーか完全無視で。
int main (int argc ,char* argv[]) {
int i,c;
FILE* f;
if (argc<2) return 1;
for (i=1 ; i<argc<2 ; i++) {
if (!(f=fopen(argv[i],"r"))) continue;
printf("-- %s --\n",argv[i]);
while ((c=getc(f))!=EOF) putchar(c);
fclose(f);
}
return 0;
}
>>600 上の行ピーコしたら間違った。
for (i=1 ; i<argc ; i++) {
FILE *fp1, *fp2; があったとして、それぞれに同じ内容をミラーリングして書き出させる方法はありますか? (fprintfを2行書くとかforで回すとかは無しで)
>>602 putcを2回書け。whileで回せ。
パイプってそういうことに使えなかったっけ?
cat hoge | tee file1 | tee file2 > file3 見たいな感じか?
606 :
sage :2010/12/12(日) 01:01:08
#include <stdio.h> #include <stdlib.h> #include<ctype.h> #define iskanji(c)\ (0x81 <= (c & 0xff)&&(c & 0xff) <= 0x9f || 0xe0 <= (c & 0xff) && (c & 0xff) <= 0xfc) main(int ac, char *av) { FILE *fp; ++av; if(av==0){ exit(1); } fp=fopen(av,"r"); char c; while((c=fgetc(fp))!=EOF){ if(iskanji(c)){ fputc(c,stdout); fputc(fgetc(fp),stdout); } else { fputc(c,stdout); } } } segmentation fault (core damped) です これはなにが原因ですか
>>606 コンパイラが gcc なら -Wall をつけてコンパイルしてみろ。
警告出るから、それを無視するな。
CLなら/W4だがこっちはあまりまともな警告出さんな。
fgetc()の戻り値はcharで受けちゃダメ〜
fp=fopen(av,"r"); の後に、 printf("%d\n",(int)fp); printf("%s\n",av); return 0; をつけて実行してミソ。
>>606 main(int ac, char **av)
fp=fopen(*av,"r");
と訂正すればとりあえず動きます。が、致命的なミスはもうひとつあって、
>char c;
は、場所も書き方も悪くて、
FILE *fp;
の次の行に
int c;
と書かなければなりません。
理由は省略。
誰も使ってないようなC99を根拠にするのに、宣言の場所が悪いとかw
>>610 別人ですが、"r","tr"でオープンしてる前提で、
char c に何か実害ありますか?
本来正しくないという意味ではなくて。
俺の環境では↓が1になるんだけど、これって普通?
char c;
printf("%X\n",(c=0xFFFFFFFF)==EOF);
>>611 たしかに、C99 では任意の場所に変数宣言を置けるんですけれどもね。
C89 の pdf がころがっておればいいんですけどね。そうであれば引用したとしてそれが正しいかどうかチェックがはいりやすくなるし。
>>612 自己レスですがintが64ビットであるような環境では0になるのかな。
と言うことで例文は下記とさせてください。
char c;
printf("%d\n",(c=-1)==EOF);
>>613 基本C99を論拠にするのはやめた方が・・・・
>>613 お前のダブスタっぷりをバカにしてんだよw
>>612 fgetc の戻り値は 0〜255 および EOF (全部で257通り) だから char では保持し切れない
テキストファイル限定なら EOF とかぶるような値が来ることはあまりないのだろうけど
char は signed の場合も多いし、EOF は -1 の場合も多いから、普通かと
618 :
sage :2010/12/12(日) 02:17:57
コントロール+Dで終了できない たすけて
>>612 fgetc() の返り値は int です。
そうであるのには理由があって、
もし fgetc() の返り値を char で受けていると、
ファイルの終端に達して EOF となったのか、ファイルに 0xff があったのかが区別できません。
>printf("%X\n",(c=0xFFFFFFFF)==EOF);
EOF は負の整数ときまっています。それなのに、正の整数 0xffffffff と等しくなる、というのがどこかおかしくありませんか?
負数が2の補数表現であり、符号拡張があり、整数の格上げがあり、と複数の要素が重なって、
EOF == 0xffffffff
となってしまったのです。
char が unsigned で EOF が -1 な環境では fgetc の戻り値を char で受けてたら CTRL+D では終了できないかもね unsigned char が -1 に一致することはありえんから
1.ctrl+c 2.ctrl+z , ps , kill 3.シェル。コマンドプロンプトを閉じる。 4.タスクマネージャで該当プロセスを殺す。 5.再起動してみる。 6.電源ボタンを2秒以上押し続けてみる。 7.AC電源を抜く。
623 :
sage :2010/12/12(日) 03:09:38
http://codepad.org/nUMPs1K8 おかげさまでコンパイルとおりました
また漢字の出力についての質問なんですが・・・
fputc(c,stdout);
fputc(fgetc(fp),stdout);
文字の一番目のバイトが漢字コードの場合上の2ブロックが実行されます
これらは同じ動作と思ってたんですが
片方消したり並べ替えたりしてたらそれぞれ違う文字化けが生じることに
気がつきました
この二つの違いってなんなんですか>?
>>597 信用できるか出来ないかを判断するのが面倒じゃない?
何度も体験してるだろうけど、検索上位に出てくるサイトにウソ書いてる事って結構あるでしょ。
ほっほっ
ふっほっ
struct Hohho { size_t size; int data[1]; }; struct Hohho *p = (struct Hohho *)malloc(sizeof(size_t)+(N-1)*sizeof(int)); こんなことしていいんですか?
>>628 struct Hohho *p = (struct Hohho *)malloc(sizeof(struct Hohho)+(N-1)*sizeof(int));
sizeとdataの間に詰め物がはいる可能性があるからこうで。
(N-1 となってるのは間違いでそ)
Hohho Fuhho いいなHogeFugaの代わりに使わせてもらおう
>>629 mallocの引数はsize_t型のただの数字なんで、
> こんなことしていい?
と聞かれれば。別にかまわんよとの答えとなるかな。
期待した動作ではないと思うけど。
注意点として、
1.sizeof(struct Hohho) とした時点で詰め物含めた構造体のサイズになるよ。
sizeof(struct Hohho)+(N-1)*sizeof(int) は、
N>=1の時必要サイズよりも大きなサイズを取るだけで別に問題はない。
2.sizeof(構造体)とsizeof(各構造体の要素)の和は等しくなるわけではない。
これを実行すればイメージつかめるんじゃないかな。
#include <stdio.h>
#define N (10)
struct Hohho {
size_t size; int tumemono[N-1] ; int data[1];
};
struct Hohho2 {
int a; char b; int c;
};
int main (void) {
printf("%d\n",sizeof(struct Hohho));
printf("%d %d\n",sizeof(struct Hohho2),sizeof(int)+sizeof(char)+sizeof(int));
return 0;
}
eclipseでpgmの画像ファイルを上下左右反転するプログラムを作ってます。 配列入れ替えで比較的簡単にいけると思ったのですが、 いざ出力されたファイルを見るとなぜか半分だけしか反転されていません。 要するに <− を −>にしようとしたら <>になると言う感じです。 まだまだド素人なもので、今の所 void reverse_pgm(){ int x, y; for(x = 0; x < x_size; x++){ for(y = 0; y < y_size; y++){ img[y][x] = img[Y_SIZE - y][X_SIZE - x]; } } } こんな無様な状況です。もう一つ変数が必要と言われましたが、 どのように使うのかよく分からないです。
Hohhoを見て思ったんだが、「くっ」とかってローマ字で上手く表せないよな Hohhoも「ほっほ」だし
>>632 void reverse_pgm(){
int x, y;
for(x = 0; x < x_size; x++){
for(y = 0; y < y_size / 2; y++){
pixel tmp = img[y][x];
img[y][x] = img[Y_SIZE - y][X_SIZE - x];
img[Y_SIZE - y][X_SIZE - x] = tmp;
}
}
}
pixel のところはimgと同じ型で。
ふっほっ
ぶっちゃけてしまうと…ファイル読み書きのテキストモードって存在価値なくねーか? バイナリファイルをはじけるわけでもないし、混乱の元になってるだけだと思うんだが なんでこれ存在するの?
テキストファイルを読み書きしたことないの?
どちらにしてもフォーマットのチェックは必須だから 最初からバイナリで統一してれば面倒は起きなかっただろうね
だいたいなんで改行コードとか違うんだろうな 最初に足並み崩したバカはどこのどいつだよ 市中引き回しの系に処するべきだわ
macとlinuxが悪い
>>643 元々のasciiコードではCrが「復帰」でLfが「改行」。
従って、プリンタやTTY端末の動きとしてはCrとLfは別々に実装されるのが普通。
しかし、通信プロトコルでは一バイトでも節約したいのでCrにするケースとLfにするケース(或いはその他)に分かれた。
また、テキストファイルにする段階でも、LfとCrLfとCrに分かれてしまった。
最初から足並みはないので、「崩した馬鹿」はいない。
復帰は col = 0 改行は row++ か。
バイナリでテキスト開いても困ることは無いけど テキストでバイナリ開くとまず死ぬから基本バイナリでおk
分かりにくいからバイナリモードとテキストモードって言えよ
ほっほっ
650 :
デフォルトの名無しさん :2010/12/12(日) 22:29:23
http://codepad.org/lAy2GhB3 2分木を生成して、後順走査をしながら解を求めていくプログラムです。
なのですが、うまく左側の木の値を読み込んでくれません。
4行目が
info1= 2, info2= 0, x= 5, y=10, z= 3
となっているんですけど、
xは大きい方を選択するので5
yは足し算なので11
zは大きい方を選択するので6
つまり
info1= 2, info2= 0, x= 5, y=11, z=6
になって欲しいんですけどどこがおかしいですか?
よろしくお願いします。
わからないことなどがありましたら質問お願いします。
651 :
デフォルトの名無しさん :2010/12/12(日) 23:34:15
【アルゴリズム・データ構造】の質問何ですが、スタック構造って、 ポインタでのリスト構造に比べて利点ってあるんですか? プログラム見ても全然良いところが見つからないんですが・・ 自由自在に操作できるポインタリスト構造のほうがいいですよねぇ?
>>651 ここはアルゴリズムのスレじゃない、そっち系でやれ。
望洋うほうほ
スタック構造って具体的にコードレベルでどんなのを指していってるの? Cの場合リンクリスト・スタック・キューなんかは、実際はどれもデータ構造としてはリンクリストを 使って実装して、操作用関数群でリスト・スタック・キューとして扱えるようにラッピングするのが ほとんどだよ
>>651 配列を使わない単純な一方向リストと仮定してもデータと同じ数のポインタを必要とする
スタックならデータの他にデータ数だけ記憶すればpush,pop,peek全て実装できる
スタックを勉強する目的はアレだろ。 関数呼び出し時の戻り番地とか引数の処理を知るためだろ。
スタック使った最初の実用的な問題は木の巡回だろう
658 :
650 :2010/12/13(月) 00:29:46
スタック構造では探索とか複雑なことできないですよね。 ポインタ無しの単純な構造何だから。
出来ますよ
ポインタ使わずに、木構造の作成、要素の探索、要素の削除、挿入 ってできますか?単純なソース書いてくれませんか?
ヒープ構造のことですか?
googleの中の人がとても親切で、質問すれば詳しく解説してくれますよ
2ちゃんねるに勝手に書き込みをするプログラムってどうやって作るんだろ
666 :
デフォルトの名無しさん :2010/12/13(月) 00:56:26
big ass
再帰中に再帰元を終了させることってできますか
別スレッドから設定されるフラグも一緒に監視するしかないんじゃない?
ふっふっ
>>650 struct node *a=&Z,*b=&Z;
aもbも両方ともZを指してるので
*a=postorder(t->left);
*b=postorder(t->right);
これは
Z=postorder(t->left);
Z=postorder(t->right);
に等しい
戻り値を上書きしてしまってるので思った結果にならない
>>670 となると、どのようにすればいいですか?
zが大文字なのは番兵だからだろうけど 他が1文字だったり2文字だったりなのはなぜ?
static int max(int a, int b) {return a > b ? a : b;} static int min(int a, int b) {return a < b ? a : b;} を定義して使いたいところだな。
あー、min()は要らなかったか
だったら全部大文字にすればいいのに...
ほっほっ
だったらがどこから繋がるのかよく分からない。 ttは引数のtとかぶったからかなー。適当感が溢れている。
679 :
デフォルトの名無しさん :2010/12/13(月) 14:31:30
西暦のある年を入力し、その年がうるう年かどうか判断するプログラムを作成せよ。 っていう問題なんですが、 #include <stdio.h> int main(void) { int i,a,b,c; printf("i="); scanf("%d", &i,&a,&b,&c); if(i==4*a && i !=100*b){ printf("うるう年\n"); } else if(i==400*c){ printf("うるう年\n"); } else{ printf("うるう年でない\n"); } return 0; } これだと全部うるう年ではないになるんですが、どうすればよくなりますか。
まずは、入力された数字が4で割り切れるかどうかのプログラムを作ってみたら?
ひっふっ
今、あるパラメータがテキストファイルに 0 0 0 0 0 1 1 1 1 ・・・ 0 0 0 0 1 1 1 2 2 ・・・ ・ ・ ・ というふうに出力されるファイルがあるのですが、これを A B C D E F・・・ 0 0 0 0 0 1 1 1 1 ・・・ というように上に予め文字を入れるようにするにはどうすればいいですか? 左端にも上から1、2、3、・・・という風に入れたいです。
入れるって言うか、出力すればいいじゃん。 こちとら、その出力ルーチンがどうなっているのか知らないからどうすればいいかなんかわかりゃせんのよ。
2重ループになってるなら、ここで文字を出力したらどこに出るのかな?とかいろいろ試すといいよ。そのうちできる。
685 :
とかね :2010/12/13(月) 15:44:01
いえ、出力する関数は私が作ってないので手を入れることはできません。
strcat( filename, fname);
strcat( filename, ".txt");
fw = fopen( filename ,"wt");
すみません、因みにこのようにしてtxtファイルに出力しています。
どうやれば
>>682 のように出力できるのですかね・・・
ほっほっ
>>686 いじれない関数はどういう引数と返り値なんだ?
void func(FILE * fp);
みたいに完全に閉じてるんじゃ
当然書かれたファイルを普通に読んでもっかい出力するしか無いが
>>686 それはファイルを開くまでのコードで、ファイルに出力するコードはそれじゃない。
>>686 それは出力先のファイルを用意してるだけで出力してない
そのfopenした後fprintf(fw, "A B C D E F・・・");てやれば"A B C D E F・・・"が出力される
ってか、全然わからないのにぽつぽつ端的な質問するより
まずは入門書を一通り読んだほうがいいよ
691 :
デフォルトの名無しさん :2010/12/13(月) 16:16:59
端的な質問ならいいんだけどね
ストリームを引数にするユーザー定義関数ってどうなんだ 標準ストリーム渡せるのは便利だけどオープンモードが関数側から見えないのが怖い
どぴゅっどぴゅっ
ありでしょ。 なしだとしたら、グローバル変数にもたせるの?それとも、関数を呼ぶたびに開きなおすの?
関数プロトタイプに fp_in とか fp_inout とか書いて区別すれば大丈夫でしょ
inoutだけじゃなくてバイナリかテキストか、追記モードかどうかなども問題になるでしょ
基本情報でC言語選択するつもりで勉強してますがそのような類も聞いてもいいんですか? 参考書だけより実際やってみるほうが覚えやすいかなと
ほっほっ
しろうとならC言語じゃなくてアセンブラにしたほうがいいよ
>>698 聞いてみるだけならいくらでもいいぞ
答えられるかどうかはわからないが
>>697 モードも渡せばいいじゃん。開き直すにしても、モードを渡さないといけないだろうし。
>>700 もう参考書買ってしまってるのでなんとかがんばりたいと思います\(^o^)/
>>701 今のところはまだ自分でぐぐればなんとかなりますがそのときはお願いします
>>697 じゃあやっぱり関数呼ぶたびに開きなおすの?
/usr/bin/ld: cannot find -lsocket collect2: ld はステータス 1 で終了しました 上のエラーが解決できなくて困ってる。 /etc/ld.so.confに/usr/bin追加したりしてるんだが一向にsocketライブラリを認識してくれなくてコンパイルできない。誰か助けて
それは何という名前の関数のためにリンクしているの? 実は要らなかったりしないの?
>>704 開きなおしはしない
モードが違えば続きの処理のどこかでエラーがでる確立が高くなるからそこで撒き戻せるだけ戻してリターン
だからどうせエラーになるなら期待してないモードは最初っから処理しないでリターンできればベストだね
ひどい場合はエラーが出ずにそのまま通ってしまうことだけどこれはどうしようもないんだよなぁ検知する汎用的な方法が無い
つーかモードを調べる関数ぐらい用意してくれてもいいのにC作ったやつは相頭悪いんだろうなぁいっぺんあって文句言ってやりたいよ
互いに相容れないだろうなw
>>706 -L socketでコンパイルしたらなんかいけたっぽ。dクス
>>707 サーバー1、クライアント他の双方向のチャットシステムみたいのを作ってる
ふっほっ
ほっふっ
ちんこっ
ちんっこっ
ほっほっ
ふっほっ
ぶはっぶはっ
どぴゅっどぴゅっ
くひゅっくひゅっ
くぎゅっくぎゅっ
キチガイ共乙
ほっほっ
キチガイが粘着するようになってクソスレ化したな。
正規表現で弾けよなんの為の専用ブラウザだ
元から糞スレだったじゃん
ここは糞スレでいいんだよ
>>2 にちゃんと書いてあるじゃん
正規表現ということでregex.h使ったことある人いる?
729 :
sage :2010/12/15(水) 01:40:02
参考書のサンプルプログラムについて int iskanji(int c) { if((c&0x80)==0) return(0); else return(1); } 呼び出し元はif(iskanji(c)){cと次のバイトを出力}です if((c&0x80)==0)とはどういう意味ですか わかりやすく解説してもらえるとうれしいです
あなたは >if((c&0x80)==0) の意味が分からないのではなく、 >& の意味を知らないだけではないのでしょうか? もしそうなら、& 演算子の意味を調べましょう。 上達へのコツは「自分は何を分かっていないのか」を考え見つけることです。
説明できないなら引っ込んでろよw
732 :
sage :2010/12/15(水) 01:58:26
ちゃんとヒントもあるのに読解力のない奴だなぁ。
なるほど 0x80を2進数になおして両方のビットがたっていたら1たてるやつですね ifの式の意味はわからないです
735 :
デフォルトの名無しさん :2010/12/15(水) 02:37:12
ボロノイ図をC言語で組みたいです。 視覚化とかはかんがえてないんですけど どう組んだらいいですか?
>>734 そのifの意味は、文字コードの問題なんで、ちょっと情報が足りない。
記憶で書いてるんでかなり怪しいが、例えばUTF-8だと、
多バイト文字のそれぞれのバイトは、全部先頭ビットが1だったと思う。
(多バイト文字が必ずしも漢字ってわけじゃないけど)
逆に1バイトの文字は先頭ビットが必ず0で、1バイト文字は漢字ではない。
ほっほっ
>>735 何が分からない?
ボロノイ図の意味 or ボロノイ分割のアルゴリズム or C言語?
ふぉっふぉっふぉ
>>738 意味はわかるんですけど、
アルゴリズムとC言語がわかりません・・・
>>740 最も簡単なアルゴリズムは↓
(1)平面(or空間)内の格子点を決める。
(2)格子点に最も近い母点を検索する。
(3)隣接する格子点が同じ母点を共有していない場合、領域の境界とする。
他には、ドロネー三角形およびボロノイ点を全て見つけ出し、境界線を
計算する方法もある。※ここでは説明しきれないので省略。
高速なアルゴリズムは↓
ttp://en.wikipedia.org/wiki/Fortune 's_algorithm
C言語のプログラムサンプルが欲しければ、問題形式にして
宿題スレとかで聞いてみると、誰か答えてくれるかも。
742 :
代行求む :2010/12/15(水) 13:51:48
入力した10進数を16進数、2進数に出力するプログラムをお願いします。
>>744 別に隣の机を勝手に使ってもいいでしょ。
隣の席の人が帰ってきたらしこたま怒鳴られるけど。
というよく分からない例はおいといても、たまたま動いているだけです。
>>744 たまたま偶然うまくいった、もしくは最適化によってa[i]が削除されている。
そのprintfが表示するものは明らか(定数)なので最適化で消える可能性が高い。
>>744 > なんでエラーも出ず
C言語はそのようなエラーチェックをしないから
> segmentation faultにもならないんでしょうか?
配列を少しばかり超えてもそこはまだ自分のプロセスの領域内(たぶん他の変数に使っている)だから
>>745-747 即レスありがとうございます
偶然なんですね
前プログラム書いた時に配列の要素数MAX+1まで間違えて
ループでインクリメントしてしまい、それでも実行できたのでおかしいなと思い悶々としてました
>配列を少しばかり超えてもそこはまだ自分のプロセスの領域内だから
この説明が一番しっくりきました
みなさんありがとうございました
ふっほっ
ぽっぽっ
キチガイ共乙
ぶはっぶはっ
べっぽっ
754 :
デフォルトの名無しさん :2010/12/15(水) 19:41:55
C言語の解説書って痒い所に手が届かないように作られてるの多くないか? 例えばライブラリ関数の説明とかでもprintf関数がそうである。みたいに 書いとけばいいものを、わざわざグチグチ文章で説明するおかげで理解の時間 がかなりかった。わざとわかりにくくして楽しい?
>例えばライブラリ関数の説明とかでもprintf関数がそうである。 >みたいに書いとけばいいものを 何を言ってるか、よくわかりません><;
>>754 何を言いたいのかよくわからないけど、
痒い所に手が届く解説書を探しているなら推薦図書スレへ
楽しいかどうか尋ねたいならその本の著者へ直接連絡して下さい
これは本ではなく読解力の問題だな間違いなく
まぁ、特に入門書を書いているのは実務経験ない連中だから仕方ないがな。
教授はいらない子ですよね
760 :
デフォルトの名無しさん :2010/12/15(水) 20:25:41
わざと分かりにくく書いて、本質的な書き回しの俺かっこいいとか思ってるのかね?
どの辺がわかりにくかったの?
762 :
デフォルトの名無しさん :2010/12/15(水) 20:30:08
著者の経歴みたいなどーでもいいことのせいにして言い訳するやつこそ 金をもらうとはどういうことかがわかってない データシートの類は書いてあることが全てであって どこの馬の骨が書いたかは一切関係ない # function を機能と訳されたくらいでガタガタいうな 誤りや欠落が見つかれば注釈を入れて自分らがはまるのを防ぐだけ それ以上でもそれ以下でもない 情弱ほどここが苦手
>>754 分かりやすいC言語の本はいっぱいある。
もちろんそうでないものもあるが。
> 多い
ていうからには何冊も見たんでしょ?
何冊も読んでそれで分かりにくいとか言ってるんだよね。
そりゃお前のほうに問題があると誰しも思うよ。
グチグチ言ってんのはお前じゃないのか?
>>763 おしい。
>痒い所に手が届かないように作られてるの多くないか?
といいつつ、痒い所に手が届かない本を読んでいるところにツッコミを。
765 :
デフォルトの名無しさん :2010/12/15(水) 20:54:17
バイナリファイルとテキストファイルの違いとかな。 何でもっとわかりやすく書けないのか疑問に思いすぎて 脱腸した。
小学三年生のころVisualBasicの本を初めて読んだ時は、
変数に数字を入れるって”概念”すら、「何のことやら理解不能」だった。
「変数Aに1が入る!! この説明で解らないはずないだろ?」と思うだろうけど、
解らない時は本当にまったく意味不明な説明に聞こえるのである。
「あっ! Aに1が入るって、 Aに1が入ることか!!」と、ある日突然、3日後くらいに
突然ひらめくように理解できる日がくる。
すると今度は、「なんで、こんな簡単なことが、今まで解らなかったのか?」と。解らなかった理由が「解らない」という状態になる。
よくCで恒例の「ポインタがわかりません」も、
解ってる人からすれば「なんで解らないの?? そんなに難しいことか??? これ????」という感じなのである。
たとえば「forループの意味が解りません」と聞かされても、”解らない理由が想像できない”のである。
しかしながら、割合、あたまのデキが悪い人の場合、この「解らなかった期間」を自ら体験していたことが多い。
おかげで、逆に、人に教えるのが上手だったりする。
「何が解らないのか?」の見当が漠然と付くからである。
一方、あたまのデキが良すぎる人の場合、つまり、本を読んだ瞬間に1から10まで理解できてしまう人の場合、
人に説明する時も、本のまんまのノリで説明しがちである。
「…だから!!ポインタはアドレスが入って、参照は実データで…!! なんで解らない???」の調子で。
>>754 その本の作者も、「わざとわかりにくく書く」なんてことはしてないはず。
それどころか、むしろ「この説明で解らない理由が解らない!!」ってくらい分かりやすく説明してるのかもしれない。
…エスパーするが、おそらく、逆にその詳細さが仇になってそうな気がする。w
767 :
デフォルトの名無しさん :2010/12/15(水) 21:06:17
>>766 ワロタww
その通り過ぎてワロタw
俺の分かったとたん、異常に複雑化して、分からない奴に教えたがる
癖が皆にもあるのかと思ったわ・・
>>766 元もらしい文ではあるが、全く持って意味が希薄な文だ。
気がついてないだろうな、すごいこと言ったと思ってるに違いない。
>>766 まあ当然だわな。経験値というのは現実に存在するからな。
経験したことのない事象を、想像や知ったかで語るヤツは大抵信用ならない。
もちろん本だけ読んで理解した気になってるバカもな。
770 :
デフォルトの名無しさん :2010/12/15(水) 21:44:00
C言語みたいな小さい言語なら、いくらかサンプルコードをなぞって 何となくも分からん奴はそもそも向いてないだろ。 あとは作るものとリファレンス、逆引きがあれば 規格を読んで理解できるところまで行ける。
行ってどうしろってんだ
規格を読めって言う奴にろくな奴はいない
774 :
デフォルトの名無しさん :2010/12/15(水) 21:59:55
規格を読め「としか」言えない奴に多くは期待しない
アルゴリズムとデータ構造は、文章を読むだけじゃ皆無に等しい理解しか 得られないが、プログラムソースをみるとそういうことかと理解できると 同時に、文章書いたやつのアスペを疑う。
え?学生の頃教科書見ただけで普通にテンプレートクラス化までできましたけど? それって斜め読みしてるだけじゃないですか?ちゃんと噛み砕いて飲み込んでからページめくってますか?
777 :
デフォルトの名無しさん :2010/12/15(水) 22:05:53
すいません。 ひとつ聞きたいことがあります。 学校でプログラミングをコンパイルするときは ***.cのファイルをテキストエディタでつくり、 コマンドプロンプトで gcc-4 ***.c -o ***.exe というふうにやっています。 しかし家ではそのようにすると 「'gcc-4' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません」 とでます。家のパソコンにGccはないということでしょうか。 出来る限り学校のやり方に忠実に再現したいので、どうすればよいのか教えていただければありがたいです。
>>777 gcc-4でなくgccでやってもそう?
使ってるパソコンと言うのがwindowsであれば、
自分で入れなきゃgccは使えないよ。
MinGWとかcygwin入れると使えるようになる。
学校と同じ環境にする。その環境は何かと言えば、学校で聞きなさい。
Cygwinをインストールすればおうちでもコンパイルできるヨ
>>772 個人的には「こういう規則で動いてたのか」とか
「これって処理系依存だったのね」とかいうところで
規格読んで一人でニヤニヤするのがオススメ。
>>781 こういう人が誰も聞いて無いのに規格ではどうこうってウンチク語りたがるんだよね
なんかの本で 「オブジェクト指向とは気持ちよくウンチクをたれて、みんなから嫌われるために存在する。」 見ないな文章を見たことがあるけど、それと似てるね。
×みんなから嫌われるために存在する ○レベルの低いみんなから嫌われるために存在する
まあ「みんなから嫌われる」とか言うのって、単に自分が嫌いなのを そう言い換えてるだけだよな。 太宰治もそういってるし。
Cygwinって学校以外のやり方をネットで見てやると、パッケージ数が多すぎて ダウンロード時間が3日かかるときあるぞwww 学校のやり方でやると1/1200分の一の5分でダウンロード終わった。
木構造って何のためにあるのか分からない。 普通にリストだけでいいじゃん。直線探索何だから。
>>787 少女だったといつの日か分かるときが来るのさ
ディレクトリとかファイルとかき構造になってんじゃん
793 :
デフォルトの名無しさん :2010/12/16(木) 01:57:16
ほっほっ
パラメータを求めるプログラムで、 2 2 3 4 5 ・・・ 3 3 4 5 6 ・・・ ・ ・ ・ という風にtxtファイルにfprintfを使って出力されるのですが、この出力結果を 1 2 2 3 4 5 ・・・ 2 3 3 4 5 6 ・・・ 3 ・・・ 4 ・・・ のように左端に上から1,2,3,4・・・と番号を振るようにするにはどうすればいいでしょうか?
>>794 どうするって言われても
普通にfprintfをfor文で回せばよくね?
796 :
デフォルトの名無しさん :2010/12/16(木) 15:58:15
アルゴリズムとデータ構造って大体、どこの学校も同じテーマとして 授業やってるんですね。この科目で計算量O(V)とかO(n^2)とかちょくちょく 出てくるんですが、意味が全然わかりません、意識しなくてもいいでしょうか? ふつうにプログラムは組めるんで。
>>797 どこがスレチなんだwww?
該当スレがないよw
アルゴリズムなら俺に聞けスレを誰か建てれば問題解決
計算量はC言語の文法なんかより重要だと思うんだが
単に、どのプログラムが効率良いかどうかでしょ、計算量何て実際に 測定できるわけないし。
O(1)とかO(logx)とかこんなもん覚えるもんじゃねーよww
>>801 もともと言語に依存しない知識だから、
比較するようなものでもないと思う
CはそれほどでもないけどC++だと必須だよね 知らないと標準ライブラリの使い方がめちゃくちゃになる
>>806 例えば?
C++の参考書に計算量の事書いてますか?
書いてる本見た事ありません。プロゴルマーなら計算量は必須勉強事項ですか?
文法を覚えるだけならいらないだろうね でもまともなコードを書こうとすると必須だよ 産業廃棄物を生産したいなら覚える必要はない
>>808 大学レベルか、職業レベルかどの変で重要になるんですか?
アルゴリズムとデータ構造の授業やってますが、体系的にまだ
計算量学んでいません
>大学レベルか、職業レベル 趣味レベルの方が高度なことやってたりするし
大学レベルでは人に迷惑かけるわけじゃないから必要ないよ(普通は身につくものだけど) もちろん教授がやれといったら勉強しないとだめだよ でも職業になると知らないと話にならない 同僚にも上司にも顧客にも迷惑がかかる それでも覚えないなら君の居場所は自宅しかなくなるからね
>>810 それは言えてるな。
お前らわかってんじゃん。
プログラムには計算量記述できないぞ。
知らないでやってるほうがいい時もある。 誤解釈するほうが迷惑
配列のスタックが意味が分らん、ポインタは一つだけでいいんですか?
いいんじゃない?CPUですらスタックポインタ1つで頑張ってるし
どぴゅっどぴゅっ
NGワード ほっほっ ふっほっ どぴゅどぴゅ 他になんかあったっけ
しゅっしゅっ
きゅっきゅっ
きゅぅ〜っきゅぅ〜っ
すっさっ
「俺はしっかりNGしてスルーしてるぜ!」ってスルーできない奴ってまだいたのな
糞スレですので
自演だと思ってた
んで、次にはなんでも自演と言えばいいと思ってる奴が来るんだよなw
期待を裏切ってすまない
C言語のリンカとかスタックとかメモリ周りを解説してくれてる本の紹介お願いします。
このさいだから、Cコンパイラを作ってみてはどうか
>>829 リンカ関係の定番。
linker & loader
スタックは取りあえずアセンブリ言語勉強すればそれでいいんじゃね?
メモリ周りって、なんの?
ありゃ s が抜けてたわ。 Linkers & Loaders
>>830 まだそこまで出来ないかな。
いつかは作ってみたいけど。
>>831 早速見てみます。
どうもありがとう!
>>833 後FreeBSDなら
リンカ・ローダ実践開発テクニック―実行ファイルを作成するために必須の技術
これな。
Windowsなら絶対薦められない。
>>834 こちらの方も参考にさせて頂きます。
本当にありがとうございました〜
へー、こんな本出てたんだ。面白そう
リンカ・ローダの勉強するとものすごくねむたくなる
>>807 参考書に書いてるかどうかはしらんが、vector map deque listの各操作に対するコストは
あちらこちらで見つけられるでしょ。
見つけられなかったとして、それぞれの実装がどうなっているかを理解できれば、
各操作に対する計算量は自力で導き出せるようになるための勉強。
知らないといつか恥をかくレベルの知識。
オタク的思考だな コミュ障の可能性が高い
アルゴリズムから計算量を求めることも出来ない人が書いたコードをメンテするのはめんどくさい。コード書かないでほしい。
オーダーオーダーうるさいアホはろくなコード書けないって身をもって実証してる人いるしなぁ
逆に、アルゴリズムを適所で使える人って、オーダーのこと知らなかったとしても、 オーダーの話をしたらすぐ理解できるんだよね。ビッグオー記法を知らないだけで。
O記法の形式的な定義とかはどうでもよくて、 だいたいどんな振る舞いをするか知っていることが大切
>>846 >>794 ?
既存の出力ロジックに追加するだけだろ。例えば既存のロジックが
--
for (int iy = 0; iy < ySize; ++iy) {
for (int ix = 0; ix < xSize; ++ix) {
fprintf(fp, "%d ", array[iy][ix]);
}
fprintf(fp, "\n");
}
--
のようなものなら、ixのループの前にfprintf(fp, "%d ", iy)でも追加すればいい。
そろそろこのスレも寒くなってきた
849 :
デフォルトの名無しさん :2010/12/17(金) 16:00:34
以下のサンプルみて関数ポインタの使い方を学習してます。 #include <stdio.h> #include <stdlib.h> void main(void) { int (*pPuts)( const char *pcMsg ) = puts; pPuts( "Hello,world!" ); } これ見て気づいたのですがこうするよりは 直接puts関数呼んだほうが2行を1行で済みますし そのほうが早く実行できると思うんです。
わらた
>>849 使い方の説明サンプルにそんなツッコミ入れられても困る
#include <stdio.h> #include <stdlib.h> int myPuts(const char *str) { fputs(str, stderr); } void main(void) { int (*pPuts)( const char *pcMsg ) = puts; pPuts( "Hello,world!" ); pPuts = myPuts; pPuts( "Hello,world!" ); }
854 :
849 :2010/12/17(金) 16:13:51
すみません、どこがおかしいのかわかりません。 849のサンプル考えた人がおかしいといってるんですよね?
>>854 つまりな、そのサンプルは関数ポインタの基本的な使い方を説明してるだけで
どう有用なのか解説してるわけじゃないの?
分かるかな?
以下のサンプルみて関数ポインタの使い方を学習してます。 #include <stdio.h> #include <stdlib.h> int myPuts(const char *str) { printf("%s", str); } void main(void) { int (*pPuts)( const char *pcMsg ); pPuts = myPuts; pPuts( "Hello,world!" ); pPuts = puts; pPuts( "Hello,world!" ); } これ見て気づいたのですがこうするよりは 直接puts関数とprintf関数を呼んだほうが4行を2行で済みますし そのほうが早く実行できると思うんです。
859 :
857 :2010/12/17(金) 16:41:59
すまねえな 変数宣言で1行にしたの忘れてただよ
使い方のサンプルというのは単に使い方を見せるだけのもので、何か実用的なことをするわけではないのだから、仕方がない 実用的な使い方が知りたければ qsort 関数とかどう
糞サンプルだなあ
寧ろ、atexit()の方が簡単。
別に糞サンプルでもないと思うけどな。
まぁ、関数ポインタは使うとちょっと小粋な感じになるだけで それじゃないと出来ないって事はないからなぁ 可読性が落ちるから絶対使わないって人もいるし
関数ポインタを使うと可読性が落ちるような場面ってどんなんだろう。 大抵可読性あがらない?慣れてないから読みにくいとかはナシで。
今までのプログラムだとコード生成のランタイムライブラリで"/MT"にすれば、 他人のPCでも問題なく実行できてたんだけど、 今作成してるソフトウェアだと "アプリケーションを正しく初期化できませんでした(0xc0150002)"ってエラーが出て実行されないらしい。 開発環境はVisualStudio2008でOSはWin7。 よくある対処法は相手にパッケージをインストールさせる、だけど スタティックリンクとかで相手に負担かけないで実行させたいんだ。 心当たりある人いたら教えてください。
インストールさせて解決するってんなら dllつけときゃいいんじゃねーの?
if(state == TITLE){ title(); } else if(state == PLAY){ play(); } を関数ポインタの配列を使って func[state](); とかに変えたらパッと見で何の関数が実行されたか分からないジャン
可読性をとるか速度をとるかは大抵トレードトレランス
もっとも
>>868 のテーブルジャンプで可読性が落ちるとは思えないが
stateが何十個もあればどのみちわからんから同じ
トレードオフとフォールトトレランスがゴチャ混ぜになったorz
ttp://ist.ksc.kwansei.ac.jp/~ibaraki/algo.htmlの 4.整列のアルゴリズムの
第p要素を選ぶSELECTとデータファイルselectdataを
それぞれプログラムソースselect.cとデータファイルselectdata.datとして同じユーザーディレクトリ
に保存して、cygwin上でコンパイル(gcc select.c)してもエラーは出ないですが、実行(a.exe)
とすると
6[main]a 4656_cygtls::handle_exceptionx:Error while dumping state(probably corrupted stack)
Segmentation fault (core dumped)
となります。
どうしたらいいでしょうか?
ダンプファイルが生成されてるわけだからgdbで見てみればいいじゃない
874 :
デフォルトの名無しさん :2010/12/17(金) 18:16:12
フェルミ分布をグラフにしたいんですが、どんなプログラム書けばいいですか?
プログラム側で開こうとしてるデータファイル名よく見てみ
fopenの返り値を見てない、fopen("selectdata", "r")、selectdata.dat この符丁が意味するものは一つ・・・・・・・
>>873 よくわかりません・・
>>875 selectdata.datじゃだめですか?
selectdata.c
selectdata
どれもダメでしたが・・
よくわかりません。
めんどいんでプログラム側をselectdata.datにしたらどうよ
main関数は実行されてるのか?printfを入れてどこまで実行されているか確認したのか?
880 :
872 :2010/12/17(金) 18:59:29
どうしたらいいでしょうか?
>>880 自分が書いたプログラムが自分の想定通りに動いているのか、1行1行追いかけるんだ。
この作業を「デバッグ」と言う。
デバッグしないでまともに動くプログラムなんてほんとにちっちゃいものしかないよ。
882 :
872 :2010/12/17(金) 19:07:10
>>881 自分が書いたプログラムじゃないですw
参考書に書いてるソースの完成版がが公開されてるので、
それをコピペして実行して駄目だったんです。
土方が作ればそうだろうよ。
なんでprintfデバッグをやらない?
>>882 先ずはフォルダオプションで「拡張子を隠す」のチェックを外すんだ。
886 :
デフォルトの名無しさん :2010/12/17(金) 19:09:59
>>884 完成されたソースなのにデバッグも何もないと思いますが・・
いじるところない程単純なソースですし。例えば?
>>886 まぁ、fopen()の戻り値くらい確認しておこうか。
コードなりURLなりをなぜここにコピペしない
まだ試すべきことがいくつもあるのに何もせずただ動きませんじゃな。仕事だったらダメな奴認定されて終わりだ。
890 :
デフォルトの名無しさん :2010/12/17(金) 19:12:27
selectdataは?
892 :
891 :2010/12/17(金) 19:17:57
あった。失礼。
893 :
デフォルトの名無しさん :2010/12/17(金) 19:18:50
>>891 はい。
11 8
7
5
1
12
8
3
13
0
4
20
10
ですね、これも
>>872 のリンク先にあります。
fopenの引数が「selectdata.dat」かどうか確認する データファイルの名前が「selectdata.dat」であることを確認する cygwinなら大丈夫だとは思うが「登録されている拡張子を表示しない」がオフになっているか確認する fopenの戻り値チェック fopenの前後でprintfデバッグ これを全て行うまでレスするな
printfデバッグってただの確認作業で、例えバグがあっても 直しようがないですよね?何も手をつけるところがないというか。
ひっへっ
はぁ?
釣りかよレス乞食がw
>>898 釣りとかじゃなく、自分が作ったプログラムじゃないから
施しようがない、どうしたらいいかわからない状態、それよか
ここのスレの人に実行してもらって確認してもらいたい。
同じようにミスがでたなら、また考えるし。
はっあっ
小学生は算数ドリルでもやってろよw
>>895 先ずは、実行モジュールのあるディレクトリでlsして、その結果を貼り付けるところからやってみよう。
デバッグしたくないでござる!!!絶対にデバッグしたくないでござる!!!
>>902 で出来ました?エラー出ました?それだけでもいいから教えてください。
>>902 いってる意味が分らんwww
ここ入門編だよなぁ・・
初心者の振りをして自称Cプログラマをからかうスレがあると聞いて
質問者の振りをするカスがいるからな
909 :
デフォルトの名無しさん :2010/12/17(金) 19:42:13
>>907 いや違いますって、まじで。
本当に困ってます。
皆さんがどうだったかどうかだけでいいから知りたい。
普通に実行してもらえば済むことなんで。
910 :
デフォルトの名無しさん :2010/12/17(金) 19:45:44
>>908 実行結果どうなりました?
出力も教えてください、それ以降は自分で考えます。
n = 11 A = 7 5 1 12 8 3 13 0 4 20 10 8-th smallest element = 10
開こうとしてるファイル名が違うのにいつ気づくんだろうw
あああああ
ふぁd
ふつうにプログラム中にselect.datと書き直したら
実行できた・・
でも
>>908 は書き直さなくてもエラー出なかったんだよな、どういうことだ・・
プログラムを書き直さなくても データファイルの方を名前合わせればエラー出ないが
言われたことは何にもしないであほうかいな。
キモいな
でもプログラムの方では拡張子不明じゃないか。
不明と無しは違う
プログラミングやってると口滑らせたらダメだなぁって思うよな。 先生とかでもディスプレイの事を画面と発言した先生はいない。 専門用語以外を使うと異様に幼稚臭くなる。
先生(笑)
ディスプレイ(笑)
別に画面て言っても何ら問題ないぞ
アルゴリズムとはプログラムと同じ事である。 こういう発言する先生も一人もいなかったわ。 何かパソコンに携わってると物事を遠回しに 表現したくなるよね。
>>925 100発100中でディスプレイだったけどな。
画面というと透明のカバーであって出力という意味では意味合いが違ってくるらしい。
毎回ドキドキしながら先生の発言カウントしてる。
これがゆとりか
コンソールに出力とかウインドウに描画って言わないと分かりにくいだろ
コンソーメって何ですか?
931 :
203 :2010/12/17(金) 21:22:13
先生(笑)
>>927 そんな些細な事でしか人をけなす事が出来ない。
恥ずかしい人間であると、公言しているんですね。
意味合いが正しく伝われば言葉は何でもいいよ。 画面、コンソール、出力、アウトプット。テレビ…はない。
「先生がディスプレイを画面と言えば、 私が先生よりも優秀であることが証明され…。 …はやく言え!」 先生「…で、これで画面に…」 私「よっしゃーーーーーーーーーー!!! 俺の方が優秀だっ!!!」 ってことでしょ? なんか悩み無さそうで羨ましいです(苦笑
以前マトリックスと呼んでいる輩がいてだな どうやら前任者が黒背景に緑文字の設定にしてたみたいで 緑文字が流れていく様で映画のマトリックスを連想したらしい
936 :
デフォルトの名無しさん :2010/12/17(金) 22:19:05
モニターはさすがにないよなw 恥ずかしさが尋常じゃない。
>>936 映像業界では普通に使いますよ。
あと重工業の監視画面なんかもモニターと呼ぶのが一般的。
>>937 単純過ぎて恥ずかしくないですか?日本には詫び錆びの精神があるし
ダイレクトな言葉は嫌われますよね。
モニターはダイレクトな言葉で、画面はダイレクトな言葉じゃないとか? どういう基準だよ?
まあ厳密に言うと、モニターは監視専用みたいな意味合いがあるので。 入力と出力が完全に別系統で、その内出力専用の監視目的に使われるものを呼ぶね。
入力と出力の違いが分かりにく過ぎないか。 ファイルにデータを書き込みするとき入力と出力かどっちか分からない時がある。
おまいらの抽象概念はどうでもいいからCの話をしろ。
>>941 書き込むほうが出力で、読み込むほうが入力だ。
あんたの身体についているキャベツ大の代物も、
目や耳で入力した情報を手足や喉を使って出力しているわけだ。
モニターは
>>940 のいうように監視(確認)するって意味合いがあるからな
ネトワク系でもパケットモニターとかモニタリングとかいうだろ?
エキスパートCプログラミングってどう?
入力した情報はプログラム上に出力されるんじゃないんですか? プログラムが実行される前に出力という事は行われているのでは?
どこを基準に観測するかによって入力/出力は変わる
「C実践プログラミング」 でCの文法、make、デバッグ技法など、基礎を習得 ↓ 「C言語ポインタ完全制覇」 or 「秘伝C言語問答 ポインタ編」 でポインタに関して完全理解する ↓ 「エキスパートCプログラミング―知られざるCの深層」 でスタック、ヒープ、リンカ、ローダなど周辺知識を習得 ↓ 「C言語によるオブジェクト指向プログラミング入門」 で実践的な大規模プログラムの作り方を学ぶ ↓ 神の誕生
シェルコマンドが全く分からん。 >とか<とか>>とか意味不明。 何かわかりやすいサイト無いですかね? Cシェルの分かりやすいサイト教えて下さい。
教えてくれ 16進数の小文字を大文字に変換するコードの一部らしいんだが、意味がわからん int main(){ int moji ; scanf (%d,&moji); moji -10+‘A’; ↑何やってんのこれ? }
952 :
デフォルトの名無しさん :2010/12/18(土) 00:14:05
>>951 「16進数の小文字を大文字に変換する」
>>951 写し間違いだろうけど、それは意味無いよ
ほっほっ
956 :
デフォルトの名無しさん :2010/12/18(土) 00:37:52
なんかどんどんわけわからなくなってきたので、思い切って最初から勉強しなおそうと思う。 教科書は猫cでいいよな?
957 :
デフォルトの名無しさん :2010/12/18(土) 00:41:44
いいよ
猫Cは今でもたまに見るわ
猫は読み返す分なら良い本。
そうか、あんなもん読んでるからここの連中は馬鹿ばっかりなのか。なんだか納得。
石原都知事乙
猫Cをあんなもんって言えるからには、自分もそれを読んだ馬鹿ってことか 読んでないであんなもんって言ってるならもっと馬鹿だしな
ふっほっ
C++を0の状態から勉強している者です。
「ロベール読め」
って事でロベールの入門講座を読みながら学んでいるのですが、
p144のオーバーロードの項で詰まりました。
本の内容を見比べ、ソースを打ち込んで試しているのですが、
「関数 'double abs(double)' は既に本体を持っています。」とエラーが出ます。
(関数名を変えれば勿論動きます)
http://codepad.org/0i4ByGfl が自分の書いたソースです。
私はVC++2010を使用しているのですが、
ロベールは2008を前提として書いてるようで、そこら辺の違いもあるのでしょうか?
スレタイ読めるくらいに日本語勉強するのが先
++と比べたCの利点を述べようぜ
よそでやれ
すいません、スレタイ勘違いしていました。 出直します。
ふっふっ
ふっひっ
むっふっ
糞スレ
おウンチ
976 :
デフォルトの名無しさん :2010/12/18(土) 21:13:01
ある本でメモ帳みたいなテキストエディタをつくるというのがあり、それのファイルの読み込みで ファイルサイズを取得し、それに応じてメモリを確保して読み込む また、書き込みで 書き込む内容のサイズを取得し、それに応じてメモリを確保して書き込む というのがありますが、これは安全といえる方法なんでしょうか? 何ギガというファイルを読み書きしようとしたらメモリを確保できずに大惨事になりそうで怖いのですが
ファイルがでかいと、そもそも標準でファイル読むことすら安心して出来ません
書き込みでもメモリ確保が必要なのか。
emacsとかオンメモリでデータもってるんじゃないの? 昔windowsのemacsででかいファイルを読み込もうとしたら固まったけど、 DOS時代からあるエディタは、オンメモリで処理してないからストレスなく 編集できてた。
ええとアレだ ファイルマッピングとかでアレしろ
981 :
デフォルトの名無しさん :2010/12/18(土) 21:26:37
うっほっ
ふっすっ
むっひっ
ぶっひっ
>986 C言語の将来はJ#の末路ということ?
C言語の代わりになる高級アセンブラってなかなか出ないな
D
次スレ立てます
2つの整数xとyを入力として受付、xがyで割り切れるときにはxをyで割った答えを、そうでないときにはxをそのまま出力せよ。 という問題があって、このような文でコンパイルしたら「12行目」で記述エラーを発見しました。「identifier」を付け忘れています。とでました...。 また授業も初回で、まったくわからないのでよかったら意味と解決方を教えてください。よろしくお願いします。 #include <stdio.h> int main(void) { int x,y; scanf("%d",&x); scanf("%d",&y); if(x%y==0); { printf("%d\n",x/y); } else { printf("%d\n",x); } return(0); }
ifのセミコロンが余計
>>993 ほんとうにありがとうございます!!
やっと解決できましたorz
if()の後に;がくっついているでおじゃる
Cでプログラミングするには人生は短すぎる
あと少しで人間の寿命800年にする技術が開発できるめどが立ってるんだってさ 800年もCなんか書き続けたら気が狂ってしまうよな
世の女性が身も心も若々しいなら素敵だが ヨボヨボや妖怪を量産するくらいなら死んだほうがマシ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。