C言語なら私に聞いてYO! 49
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGむしろ質問する前にWEBで検索するのが常識だYO!
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行ってYO!
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行ってYO!
コンパイラを探しているなら >>2 を見てYO!
上記を逸した場合の結果は激しく未定義とするYO!
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/
前スレだYO!
http://pc3.2ch.net/test/read.cgi/tech/1041127646/
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGl⊆⊇`ヽ ≡ ヤホー----イ
(´�D`Lノ ≡
m=○=mノ) ≡ もうスレ立ってた気がしる〜
_/_/(「_ノニコ ≡
( (0)=(__)0) ≡(´⌒(´⌒;;
0004デフォルトの名無しさん
NGNG嘘だろ?
800以降は確認したけど・・・
0005デフォルトの名無しさん
NGNG立てる前に確認しませう
http://pc3.2ch.net/test/read.cgi/tech/1042640474/l50
つーわけで>>1は削除依頼だすやうに
0006デフォルトの名無しさん
NGNGスレ立てたのなら現行スレに報告しろよ
0008sss
NGNG0009デフォルトの名無しさん
NGNGおまえのチェックミスを棚に上げんな
0010デフォルトの名無しさん
NGNG禿同。>>1はアフォ。早く削除依頼しなさい。
0011デフォルトの名無しさん
NGNG自作自演でした。テヘッ
0012デフォルトの名無しさん
NGNG自作自演でした。
0013デフォルトの名無しさん
NGNG見ればわかります
0014デフォルトの名無しさん
NGNGmain()
{
char a[100][100];
func(a);
return 0;
}
void func(char **a)
{
}
↑のようにやったらプログラムが暴走したんですが
対処法はいかに?
0015デフォルトの名無しさん
NGNG0016劉邦
NGNG0017デフォルトの名無しさん
NGNG読んどけ。
0018デフォルトの名無しさん
NGNG0019劉邦
NGNGPHPやったことないんですが・・ほんとに応用できるのですか?
0020デフォルトの名無しさん
NGNGabs(3.5);
とかのミスってlintで検出できますか?
0021デフォルトの名無しさん
NGNGまあ、当然のことですけど
C++
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG誰もそんなことは聞いていない。
0025デフォルトの名無しさん
NGNG0026劉邦
NGNG0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG誰もそんなことは聞いていない。
0031デフォルトの名無しさん
NGNG設計方法は全然違うわけだな。
0032デフォルトの名無しさん
NGNGありがとう。でもそこに書いてあることをほとんど
やってくれなかった。
0033豚キムチ
NGNGC言語ってDVDなどにあるプロテクトもC言語に一種ですか?
0034_
NGNGCでsnprintfを自作することになりました。
参考になる資料とかありましたら教えてください。
フリーで使えるソースが何処かに落ちていると良いのですが。
0035デフォルトの名無しさん
NGNGVC++ならCRT\SRCフォルダに。
0036_
NGNGレスどうもです。
VC++見てみたのですが、うーん難しい事してるんですね。
FILEポインタの中身なんて、いじった事無いです。
これprintf系で汎用的に使う為にこんな感じで実装してるのかなー?
そのまま使いたいところだけど、多分ライセンスで引っかかりそう・・・
0037デフォルトの名無しさん
NGNG頑張って―(謎)
0038デフォルトの名無しさん
NGNGマルチいくない!
0039デフォルトの名無しさん
NGNGつーか、なんで...
> Cでsnprintfを自作することになりました。
なんてことやってんの ?
0040デフォルトの名無しさん
NGNG*.libのファイルを*.oなんかに変換できますか?
0041デフォルトの名無しさん
NGNG別に *.lib のままでいいのでは?
何か不都合でもあるのん?
0042デフォルトの名無しさん
NGNGファイルフォーマットが認識されない、といわれたので。
単に対応していないだけなのでしょうね。
まあ、至急必要なものでもないですし。。。
0043デフォルトの名無しさん
NGNGあ、すまん。
*.a じゃなくて *.lib か。
なるほど。
分離ってできたっけかな...。
0044デフォルトの名無しさん
NGNGwin 上の gcc とは何者で、その *.lib はどっから持ってきたものかを書けよ。
0045デフォルトの名無しさん
NGNGLSI CってのをDLしてみたんですが、使い方がよく分かりません。
参考書買ってみたんですが動かし方については詳しく載ってませんでした。
どなたか詳しく教えていただけませんか?
0046デフォルトの名無しさん
NGNG以上
0047デフォルトの名無しさん
NGNGlcc ファイル名
lcc.exeにちゃんとパスを通すこと
あと、_lccも自分の環境に合わせて編集すること
あとは、read.me読めば書いてるよ
0048デフォルトの名無しさん
NGNGまだよくわからないんですが、
MS-DOSを開きますよね。
lcc filename
しますよね。
次は何をすれば動きますか?
0049デフォルトの名無しさん
NGNGエラーメッセージが出なければ、もう何もしなくていい。
005045
NGNGコマンドまたはファイル名が正しくありません
とでます。
どうすればいいですか?
しつこくてすいません。。。
0051デフォルトの名無しさん
NGNGMS-DOSのコマンドラインから
SET PATH=%PATH%***
と入力して
lcc filename
としてみてください。***の部分はパス名(C:\...\LCC\BIN;)です。
ちなみにBINはBINARY(二進)の略で実行可能ファイルが入ったフォルダの
名前として常識です。わかりましたか?
0052デフォルトの名無しさん
NGNG51ですが追伸です。参考になればいいのですが、_lccファイルです。
# LSI C-86 compiler's configuration file
-DLSI_C
-XC:\LSIC330C\BIN -LC:\LSIC330C\LIB -IC:\LSIC330C\INCLUDE -T -O
-acdos.obj $LSICOPTS
Command line argument will be inserted here
-lknjlib -ldoslib -v
0053デフォルトの名無しさん
NGNGCそのものとは関係ねえ事書くな
0054デフォルトの名無しさん
NGNG∧ ∧___ ダッコ♪
/(*゚ー゚) /\
/| ̄∪∪ ̄|\/
| |/
 ̄ ̄ ̄ ̄
0055デフォルトの名無しさん
NGNG大人しくしていなさい。
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG変なとこに書き込んだりしたときに良く出る。
005856
NGNG0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNGセグメンテーション違反は一番良く見るバグだと思うので、
頑張って間違った箇所を探しませう。
・配列の添え字が変な位置を指しているかどうか
・ポインタの扱いが間違っているかどうか
の2箇所を重点的に調べましょう。
0061デフォルトの名無しさん
NGNGそれはコアダンプ。
006256
NGNGありがとうございます。
がんばって探してみます。
卒論間に合うか不安。。。
0063デフォルトの名無しさん
NGNG・・・デバッガ使えよ・・・
006456
NGNG!?そ..それはいったい....?
emacsとかについてるやつですか?
0065デフォルトの名無しさん
NGNGgdbとか
006656
NGNGemacs見てみたらgdbなるものを発見いたしました!
しかし英語表記のため使いかたがいまいちわからぬ。
調べてみます。。。
0067デフォルトの名無しさん
NGNGにすることはできますか?
0068デフォルトの名無しさん
NGNGできない。
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGまずプログラム作成 hoge.c
#include <stdio.h>
main(){
int *a = NULL;
*a = 0;
}
コンパイル時に -g オプションをつける
gcc -g -o hoge hoge.c
実行プログラムをgdbの引数に指定
gdb hoge
gdbのプロンプトが出たらrunを実行
(gdb) run
フォールトエラーなどが出たら、理由と場所を教えてくれる。
Program received signal SIGSEGV, Segmentation fault.
0x8048468 in main () at hoge.c:5
5 *a = 0;
終了するときはquit
(gdb) quit
0072デフォルトの名無しさん
NGNGファイルからコンソール画面に一行一行読み込んで表示するという、
超基本的なプログラムを書いてみました。
そこで質問なのですが、今のままでは、改行は何も表示されない空白で表されますよね。
この改行部分に「----ここは改行です-----」といったメッセージを表示したいのですが、
どうすればいんでしょう?とりあえず自分が書いたものを↓に。
#include <stdio.h>
void main(){
FILE *fp;
char a[20];
fp = fopen("text.txt" ,"r");
do{
if (fgets(a ,20 ,fp) == NULL){
printf("//////終わりです//////\n" );
break;
}else{
if (a == ""){ ★★★問題の箇所です
printf("-----ここは改行です-----");
printf("%s\n" ,a);
}else
printf("%s\n" ,a);
}
}while(1);
fclose(fp);
return;
}
0073デフォルトの名無しさん
NGNGif(a=="") を if(*a=='\0') に変更すればいいのでは?
0074デフォルトの名無しさん
NGNGまず、fgets() って読み込んだ改行をそのまま a[] に入れちゃうから、
printf("%s\n", a) なんてやると、一行毎に空行が入るけどいいの ?
あと、要件として行が改行のみなら、"----ここは改行です-----" と表示すると言うのなら、>>73 でいいけど、「何も表示されない空白」の代わりに"----ここは改行です-----" と表示すると言うなら、ちょっと難しいぞ。
0075デフォルトの名無しさん
NGNGif (strlen(a))
a[strlen(a) - 1] = '\0';
ってのを付け加えた方がいいかも。
0076デフォルトの名無しさん
NGNGにすればええんでない?
まぁ簡単に
if (a[0] == '\n')
でもいいか。
あとは
・改行の場合はわざわざ a を表示しようとする必要は無い
・do-while じゃなくて、while 内で fgets を使ったので構わない。
・fp が NULL かどうかのチェックは入れる癖をつけておくが吉。
・最後の行にのみ改行が無い場合があることを考慮するべし。
ってとこでしょうか。
0077デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
FILE *fp = fopen("text.txt", "r");
char a[20];
while (fgets(a, 20, fp) != NULL) {
if (a[0]=='\n')
printf("-----ここは改行です-----\n");
else
printf(a);
}
printf("//////終わりです//////\n" );
fclose(fp);
return 0;
}
0078デフォルトの名無しさん
NGNGprintf(a); と printf("%s", a); は違う。
007977
NGNGごめんうっかりしてた。
printf(a)はprintf("%s", a)に読み替えて。
>>72
あなたのコードを見て思ったことを書きます。
だいたい>>76さんが言ってくれてるけど。
・fgetsは改行も読み込むのでprintf("%s\n",a)でなくprintf("%s",a)。
・0回以上の繰り返しのときは基本的に, do-whileでなくwhileを使う。
・文字列の比較はstrcmpを使う。a==""としても文字列の比較ではなく
文字列のアドレスの比較が行われるだけで無意味。
あと>>77のコードでも19文字ジャストの行を読み込むと誤動作します。
19文字ジャストの行を読むと, 次回のfgetsで改行文字だけを読み込む
ので, 文末の改行と空行との区別がつかなくなるためです。
a[]の配列を十分大きくとることで簡単に解決します。
0080デフォルトの名無しさん
NGNG漏れは fputs(a, stdout) のが好きだ。
0081デフォルトの名無しさん
NGNG質問の箇所だけではなく、他の様々な部分まで指摘してもらって、感謝してます。
判定文ごとwhileの中に入れろとか、>>77さんの19文字ジャストでおかしくなる・・・とかの話は、
読みながらハタと手を打ってしまいました。
>>80
速度面で有利とか、エラーでにくいとか、そういったことが何かあるんですかね?
単に好みの問題でしょうか。
0082デフォルトの名無しさん
NGNG必ずじゃないけど。
0083デフォルトの名無しさん
NGNGreturn (
x1 >= x2+width2 || x1+width1 <= x2 ||
y1 >= y2+height2 || y1+height1 <= y2
) ? false : true;
ってどういうことですか??
0084デフォルトの名無しさん
NGNGif(x1 >= x2 + width2) return false;
if(x1 + width1 <= x2) return false;
if(y1 >= y2 + height2) return false;
if(y1 + height1 <= y2) return false;
return true;
と同じだよ。多分2つの領域の重なり判定と思う。
008583
NGNG確かゲーム系で、当たり判定のところっぽい関数だったからそうなのかも!
「||」って、「OR」だったと思うのですが、三項演算子って順々に判定してfalseやtureを返すんですか?
なんか質問部分がわかりにくいーー・・・
0086デフォルトの名無しさん
NGNG> 三項演算子って順々に判定してfalseやtureを返すんですか?
三項演算子 xxx ? yyy : zzz は、単に xxx の値の真/偽によって yyy か zzz を返すだけ。
順々に判定するのは、|| (論理 OR 演算子) の方。
xxx || yyy は、xxx が真なら yyy を実行しないで 真 を返す。
(短絡演算で、ググッてくれ。)
008783
NGNGお世話になりました!
0088デフォルトの名無しさん
NGNGデバッグ(と呼んでいいのかどうか分かりませんが)したいのですが、
どのように行うのでしょうか。
コンパイラはgccをMS-DOS上(MinGW)で使っています。
0089デフォルトの名無しさん
NGNGそんなのソースださないと分かるわけ無いだろ。
せめてどうエラー出るのか書けや。
0090デフォルトの名無しさん
NGNGやはりソースによって変わってくるのですね。
一般的にどのようにやっていくのかお聞きしたくて、書き込みました。
エラーは、エラーログを作成しています。というメッセージと共に
プログラムが強制終了します。
0091デフォルトの名無しさん
NGNG> エラーは、エラーログを作成しています。というメッセージと共に
> プログラムが強制終了します。
.... で、そのエラーログとやらはあるのか ?
0092デフォルトの名無しさん
NGNG削ったところが、エラーに関係するところだ。大抵は、
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNGgdb(gcc用のデバッガ)ないの?
なければprintfとassertと根性でバグ捜せ。
0095デフォルトの名無しさん
NGNGエラーログの読みかたわからないです。スマソ
実行したフォルダを探しても該当するようなファイルが見つかりません。
>>94
gdbというものは落としてすぐ使えるでしょうか?
探してみます。明日提出の課題なんです。
>>92
やはりそれですか・・・
皆さんどうもアリガ�d
0096デフォルトの名無しさん
NGNGおいおい、システムのエラーログに記録されとるんだろ。
実行フォルダには無いぞ。
0097デフォルトの名無しさん
NGNG見方教えてください。
お手数かけてほんとスマソ
0098デフォルトの名無しさん
NGNGだから、OSは何なんだよ(藁
何も情報書かずに推測するスレか、ここは。
恐らくLinux系だろうけど、君じゃ無理だ多分。その様子だと。
0099デフォルトの名無しさん
NGNG>>88 もアフォだけど、お前も相当だな。
> コンパイラはgccをMS-DOS上(MinGW)で使っています。
素の MS-DOS はエラーログなんか記録しないだろうから、どうせ Windows の MS-DOS プロンプトじゃねーのか ?
どうせ MAP ファイルなんか見れないんだから、素直に >>92 か >>94 の2行目に従えよ。
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG> printf("-----ここは改行です-----\n");
printf("-----ここは空行です-----\n");
■ このスレッドは過去ログ倉庫に格納されています