C言語なら私に聞いてYO! 49
レス数が950を超えています。1000を超えると書き込みができなくなります。
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");
0102デフォルトの名無しさん
NGNGwhile(fgets(buf, 256, infp) !=NULL){
hoge = atoi(buf);
printf("hoge=%d\n",hoge);
}
とやりますと、全部のhogeが0となってしまいます。
読みこんだファイルは4行に渡る30バイトほどの
テキストファイルなのですが・・・
どなたかご教授オネガイイタシマス。
0103デフォルトの名無しさん
NGNG入力ファイルの内容を晒してみ?
0104デフォルトの名無しさん
NGNGprintf("%s",buf);
でちゃんと、bufに文字列読み込まれてるか確認してみる。
103の言うとおり、どんな入力ファイルやねんやろ・・・
atoi関数の使い方もわかっていますか?
0105デフォルトの名無しさん
NGNGアリガ�dございます。
テキストファイルを
345504
45454
3920
5503
こんな感じに直したらできますた。
文字が入ってたのがいけなかったのでしょうか?
atoiを使う際に"x"などの文字が混入していた際に
無視する方法ってあるのでしょうか?
ほんと厨ですみませそ。。。
0106デフォルトの名無しさん
NGNGそのプログラムはある配列変数の要素を小さく設定した時は
問題なく動いてくれるのですが、大きくするとsegmentation Failureがでます。
gdbをつかってデバッグしました。そしたら、
(gdb) core a.out.core
Core was generated by `a.out'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libm.so.2...(no debugging symbols found)...done.
Reading symbols from /usr/lib/libc.so.4...(no debugging symbols found)...done.
Reading symbols from /usr/libexec/ld-elf.so.1...(no debugging symbols found)...
done.
#0 0x80489ab in main ()
(gdb) where
#0 0x80489ab in main ()
#1 0x8048506 in _start ()
となり、何行目に問題があるのか?という情報は教えてくれません。
どこがおかしいか、長年の経験のある皆様にお聴きしようと思ったしだいです。
助けて下さい。
0107106
NGNG#0 0x80489ab in main ()
#1 0x8048506 in _start ()
が問題なんですよね?
これってどういう意味ですか?
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGatoi()はスペースと+-以外の文字とぶつかるとそこで終了しちゃいますよ
もしかしたら、文字を取り除く関数があるかもしれないけど
自分で取り除くコード書いたほうが柔軟性あっていいかもしれないですね
0110106
NGNGじゃーのせます。
連続投稿なるけどごめんなさい、どこが悪いか全く分りませんので
enumとmainだけとりあえず載せます
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
enum {
MAX_NODE = 87381, /* 自分で計算 (( pow(4,MAX_DEPTH) -1 ) / 3) */
MAX_RES = 81, /*ネットワーク内のリソースの種類*/
MAX_DEPTH = 9, /*木の深さ*/
MAX_SIM = 100, /*シミュレーション回数*/
REPEAT = 2 /*繰り返し数 シミュレーション数*/
};
0111106
NGNG{
int i,j,k,query,query_number,num_reg,sum_query_number,sim_num,sum_num_reg,num_resource[MAX_RES],node[MAX_NODE][MAX_RES],rt[MAX_NODE][4][MAX_RES];
double adv_num_reg,adv_query_number;
FILE *outp;
srand((unsigned int)time(NULL));
sum_query_number = 0;
sum_num_reg = 0;
for( sim_num = 0 ; sim_num < REPEAT ; sim_num++ ){
/*ノードの登録を初期化*/
node_initialize(node);
/*ルーチングテーブル初期化*/
rt_initialize(rt);
/*リソース数を決定*/
for(i=0; i<MAX_RES; i++){
num_resource[i]=(int)(num_normalcurve() + 0.50);
/*printf("%d\n",num_resource[i]);*/
}
/*各ノードごとの各リソースの登録情報をセット*/
distribute(node,num_resource);
/*MATRIX表示*/
/*print_matrix(node);*/
for(k=0;k<MAX_SIM;k++){
/*QUERY決定*/
query = query_produce();
/*printf("query %d\n\n",query);*/
/*routing開始*/
route(query,node,rt);}
0112106
NGNG/*count the number of the query 3*/
query_number = count_qnum(query,rt);
/*rt表示*/
/*print_query(query,rt);*/
sum_query_number += query_number;
printf("query_number %d",query_number);
/*ノードAの登録数*/
num_reg = sum_reg_num(rt);
sum_num_reg += num_reg;
printf("registration_number %d",num_reg);
}
adv_query_number = (double)(sum_query_number) / (double)(REPEAT);
adv_num_reg = (double)(sum_num_reg) / (double)(REPEAT);
printf("adv_query_number %f",adv_query_number);
printf("adv_num_reg %f",adv_num_reg);
}
0113デフォルトの名無しさん
NGNG0114106
NGNGそこが問題ですか?enumんとこですよね?
0115ccc
NGNG★こんなサイト見つけました★
0116106
NGNG0117デフォルトの名無しさん
NGNG何だよ、解決したんじゃなかったのか?
スタックに取りすぎだっつってんの
int i,j,k,query,query_number,num_reg,sum_query_number,sim_num,sum_num_reg,num_resource[MAX_RES],node[MAX_NODE][MAX_RES],rt[MAX_NODE][4][MAX_RES];
これがどれほど巨大なメモリを必要とするかわかる?
0118106
NGNGどうやったらいいのでしょうか?
main関数から変数をおいだせばいいのでしょうか?
配列をなくせばいいのでしょうか?
enumは関係ないのですか?
0119デフォルトの名無しさん
NGNGんな巨大な配列が本当に必要なのか?
どうしても必要ならmallocなり何なりでヒープに取るべし
enumの値を配列サイズに使ってんだから関係あるに決まってる
0120106
NGNG分かりました。
配列を変更するのは難しそうですので、
別の変数を直して行きます。
mallocとか勉強します
0121デフォルトの名無しさん
NGNG実行を早くする基本は何?
0122デフォルトの名無しさん
NGNGプロファイラ使え。
0123デフォルトの名無しさん
NGNGありが�dございます
while(fgets(buf, 256, ifp) !=NULL){
for(i=0; i<strlen(buf); i++){
if(isalpha(buf[i])){
こんな感じでアルファベットだったらbufからその文字を省くといった
仕様にしたいのですが、bufからその文字だけ省くことなんて
可能なのでしょうか?
再度の糞厨質問ですいません。
ご教授オネガイイタシマス。
0124デフォルトの名無しさん
NGNGVisual Studio .NET て何ですか?
0125デフォルトの名無しさん
NGNGVB,C#,VC++が全部入り
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNGfwriteを使って書き込みました。
別のプログラムでそれを読み込もうとしてfreadで読み込んだのですが、
読み込んだ配列の中身が途中から0になってしまっています。
具体的には
a[130][100],b[100][30],c[100],d[30]を書き込んで
読み込んだaおよびbが途中から0になっていました。
けれどもcとdは正常に読み込めていました。
エラーチェックはしていますがエラーは出ていません。
プログラムも見直していますが、さっぱりわかりません。
どなたかご教授願いまつ。
0128デフォルトの名無しさん
NGNGほんとに全部要るのか?
0129デフォルトの名無しさん
NGNG実際のものより小規模なモデルを作り、プログラムが正しく動作しているかを検証する。
各処理の実行時間を調べて、時間がかかっている部分を高速化する。
(但し、複雑になるような高速化は避ける。)
いくつかの規模のモデルを実行して、時間を測定し、実際のモデルでどれだけ時間が
かかるかを見積もる。
時間がかかり過ぎるようなら、別のアルゴリズムを探す。
別のアルゴリズムが見つからなければ、複雑な高速化に取り組む。
それでも時間がかかり過ぎるなら、プログラムを作ることの意義を見直す。
0130デフォルトの名無しさん
NGNG省いた後、隙間を詰める。
もしくは、省く文字以外を別バッファにコピーする。
0131デフォルトの名無しさん
NGNG#include <ctype.h>を追加して、
char tmp[256], *src, *dst ;
for ( src=buf, dst=tmp; *src; src++ ) {
if ( isdigit( *src ) || *src=='-' || *src=='+' )
*dst++ = *src ;
}
*dst= '\0' ;
hoge= atoi( tmp ) ;
但し、これだと "-1 2 +3" が "-12+3" になってしまうから
それいう可能性があるなら加工しる!
123で、"アルファベットだったらその文字を省く" って言ってるから、
if ( !isalpha( *src ) )
*dst++ = *src ;
のほうがいいかな。
0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGファイルサイズが期待した通りになっているかを確認。
ファイルの中を見てみて、0が書かれているようなら、
fwrite、そうでなければ読み込みがfreadを見直す。
たぶん、二次元配列のサイズ計算が間違えているんだと思う。
途中からとかではなくて、実際にどこから0が書かれているかを
調べるのもいいと思う。(地道なことをちゃんとやらんと)
0135デフォルトの名無しさん
NGNG読み込むときも書き込むときもバイナリモードにした?
あ、UNIX系なら関係ないけど。
0136デフォルトの名無しさん
NGNG全部いらなくても、商利用したいときとか…
ところで、シェアウェアって、やっぱ商利用?
0137デフォルトの名無しさん
NGNGそりゃそうでつ。
0138127
NGNG>>134
カエレ!(・∀・)とか言われそうですが、
ファイルサイズの計算はどうすればいいのでしょうか・・・
バイナリファイルの中身はどうやって見ればいいのでしょうか・・・バイナリエディタですか?
二次元配列のサイズ計算というのがよく分からないのですが・・・
今いろいろと検索していますがよく分かりません・・・
aはa[30][0]から0になっていて、bはb[7][6]から0になっています。
>>135
WindowsのCygwinってやつでやってます。
一応fopenにはwbやrbはちゃんと書いているので
大丈夫だと思います・・・
0139デフォルトの名無しさん
NGNG買おうと思いますがどう思われますか?
VBは弄った事あります
0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNGVisual C++ .NETて何が違うんですか?
0142デフォルトの名無しさん
NGNGCygwin なら
ls -l ファイル名
でファイルサイズが見れますよ。
バイナリファイルの中身は
dump ファイル名 | less
(less でなく more でもいいです。お好きなほうを)
で見れます。
0143デフォルトの名無しさん
NGNGC#とC++という時点で違う。
0144デフォルトの名無しさん
NGNG> ファイルサイズの計算はどうすればいいのでしょうか・・・
printf("%d", sizeof a);
もしくは
sizeof(aの型) * 130 * 100
として計算。あとはバイナリなんで、a, b, c, dを全部足せばよい。
> バイナリファイルの中身はどうやって見ればいいのでしょうか・・・バイナリエディタですか?
バイナリエディタもしくは16進ダンプするツールを探す。
なければ作れ。(簡単だから)
予想では0は書かれていないと思う。
> 二次元配列のサイズ計算というのがよく分からないのですが・・・
> (略)
> aはa[30][0]から0になっていて、bはb[7][6]から0になっています。
c, dは大丈夫で、a, bが駄目というんで、二次元配列の扱いが間違えているんだと思う。
fwrite()のところで3000や1350という数を渡してしまっている。
3000は130 * 100 を 30 * 100にしてしまっているとか…
0145デフォルトの名無しさん
NGNGいいんじゃない
0147デフォルトの名無しさん
NGNGVisual C++ .NET Standard は
最適化が無くて、できた実行ファイルも配布禁止だったような。
完全に学習用なんで、それでもいいんなら買ったんでいいんでは?
0148デフォルトの名無しさん
NGNG自明というわけでは無い気がしますけども…
0149デフォルトの名無しさん
NGNGフリーなら配布可でつ。
0150127
NGNG>>134,>>144両氏指摘のように、
原因はfwriteおよびfreadの書き込み、読み込み数指定が間違っていたようです。
プログラムでは
fwrite(a,sizeof(double),input*middle,fp)
といったように書いていたのです。
inputとmiddleはdefineであらかじめ定義してありました。
特にinputは
#define input aho+bakaといった形で・・・
今まで本当に知らなかったのが恥ずかしいくらいなのですが、
この状態でinput*middleってやるとaho+baka*middleってことになるんですね・・・
てっきりahoとbakaの和がinputに入るんだとばかり思ってました・・・
#define input (aho+baka)で解決しますた。(´・ω・`)
書き込みから間違ってることが判明したので、
25時間かけたデータを取り直しまつ・・・(´・ω・`)
>>144氏の言うとおり、出力ファイルのサイズはsizeof(double)が8だったので
8*(130*100+100*32+100+32)=130656Byte が正しかったのですが、
質問時の出力ファイルは28kByteくらいでした・・・
今考えると8*(31*100+7*32+6+100+32)=27696Byte だったのですね・・・
みなさまありがとうございますた。ご迷惑おかけしますた。逝ってきまつ。
0151デフォルトの名無しさん
NGNGお疲れ様
0152デフォルトの名無しさん
NGNG0153139
NGNGありがとうございます。
Visual C++ と Visual C++ .NET の違いは何でしょうか?
0154デフォルトの名無しさん
NGNGマジで!?
箱には・・・
「学習用を目的とした製品となります。
商用製品など、本格的なアプリケーションの開発は、
Visual Studio .NET Professional 以上の製品をお勧めいたします。」
・・・と、あるけど・・・?
あくまで、お勧めであって・・・
ダメとはどこにも書いてないっぽい。
今から、もうちょっとマニュアル読んでみる。
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG自動変数をstatic領域に配置することだよ
static int a;
とかって宣言すると、その関数終了しても内容の保持が保証されるのです
0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNGつーことは
static int foo(void);
と言う関数は、static領域に配置されるから内容の保持が保証されるけど
int foo(void);
と言う関数は、内容の保持が保証されないのですね?
0160デフォルトの名無しさん
NGNG{
static int repeat_count = -1; /* < 0 は無効値 */
int i;
if (ch == 'F' || ch == 'R' || ch == 'L') {
if (repeat_count < 0) repeat_count = 1;
for (i = 0; i < repeat_count; i++) {
switch(ch){
case 'F': forward(); break;
case 'R': right_turn(); break;
case 'L': left_turn(); break;
}
}
repeat_count = -1;
} else if (isdigit(ch)) {
if (repeat_count < 0) repeat_count = ch - '0';
else repeat_count = repeat_count * 10 + ch - '0';
}
}
丁寧に説明してくらさい。
0161デフォルトの名無しさん
NGNG関数は変数なんですね?
0162154
NGNGってことで、ザッと見てみたが・・・
どこにも、作ったバイナリの配布を禁止してる下りもないし、
また、商用アプリを作ってはダメって下りもない。
あくまで推奨。お勧め。
作ったバイナリ配布しても、
シェアソフト作ってもOKっぽいぞ。
0163デフォルトの名無しさん
NGNG( ゚д゚)< ポカーン
0164デフォルトの名無しさん
NGNGサンクス!
0165デフォルトの名無しさん
NGNGたとえば"15FR160L"という文字列があったとき,
それを先頭から一文字づつanalysisに渡すと,
forwoard()が15回, right_turn()が1回,
left_turnが160回, の順で実行される。
staticの解釈はこの場合>>157で合ってるから, あとは自分で追ってみれ。
0166デフォルトの名無しさん
NGNGstatic の関数は同じファイルの中からしか
直接呼び出すことが出来ないんじゃなかったっけ?
0167デフォルトの名無しさん
NGNG>/* < 0 は無効値 */
ってコメントは的外れと思うのは気のせい?
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNGサンクス!!
0170デフォルトの名無しさん
NGNGif (repeat_count < 0) repeat_count = ch - '0';
else repeat_count = repeat_count * 10 + ch - '0';
コメント風に解説おながいします。
0171デフォルトの名無しさん
NGNGん?なんで?
数字が何桁続くかわからないから、下から4行目の
if ( repeat_count < 0 )
の行で1桁目なのか2桁目以降なのかを判定するためでしょ?
カキコする前にreloadしてみたら >>170 の答えにもなってた。
0172デフォルトの名無しさん
NGNG>isdigit(ch)
chのアスキーコード値が数字の文字かどうかの判別
>ch - '0'
文字0のコード値で引く
0173デフォルトの名無しさん
NGNGあたりまえじゃん
0174デフォルトの名無しさん
NGNG?
0176デフォルトの名無しさん
NGNG>>172
そんなコメントは書くなよ
0177デフォルトの名無しさん
NGNGスマソ、完全にボケてました
コピペしたから気づかんかったけど
/* 0 は無効値 */
ではなく
/* < 0 は無効値 */
だったんですね…首吊ってきます
0179デフォルトの名無しさん
NGNG見間違えは誰でもあるYO まあまあ気を落とすなw
0180デフォルトの名無しさん
NGNGこれってこの前オレが書いたやつじゃん。
ちなみにあのコメントはrepeat_countが負の値をとらないよって意味。
だから-1かどうかではなく、負かどうかの判定になっている。
0181デフォルトの名無しさん
NGNG数字検出時に何桁目なのかを意識しなくても
if ( isdigit(ch) )
repeat_count = repeat_count * 10 + ch - '0' ;
で済むし。
但し、入力が "0R"とかの場合に>>160とは挙動が変わってしまうが。
まぁ、他人の課題にそこまで考えてやる必要ないし。気ぃ悪くしたらスマソ。
0182デフォルトの名無しさん
NGNGまさにこれが負値を無効値にしてる理由じゃないの?
0183デフォルトの名無しさん
NGNGどこから突っ込んで欲しいの?
0184180
NGNG理由は、>>182 さんの言っている通りです。
-の入力は流石にないだろうけど、0はあるだろうと思って。
質問には書いてなかったんで、どちらでもいいと思いますが。
あと、同じ人?って書いたのもオレです。
0186デフォルトの名無しさん
NGNG何でNULLは突っ込んで
挙動が変わるのは"R"等であって
"0R"等ではない事に突っ込まないかな…
0187デフォルトの名無しさん
NGNGどうやって解決するのがいいんでしょうか?
よく,-L,-lのオプションが足りないと,
undefined reference to `xxxxx'
と文句いわれるけど,
そのファイルがどのライブラリにあるとか,
どうやって調べたらいいんでしょう?
0188デフォルトの名無しさん
NGNGnm
0189デフォルトの名無しさん
NGNGgrep
0190182
NGNG0を無効値にするってことは, ふつう無効値チェック部分の,
if (repeat_count < 0) repeat_count = 1;
を,
if (repeat_count == 0) repeat_count = 1;
と書き換えることを含意するんじゃないの?
0191デフォルトの名無しさん
NGNGアリガトウゴザイマシタ
while(fgets(buf, 256, ifp) !=NULL){
for(src=buf, dst=tmp; *src; src++){
if(! isalpha(*src))
*dst++=*src;
}
*dst='\0';
hoge = atoi(tmp);
printf("hoge = %d",hoge);
fprintf(ofp, "%d\n", hoge);
}
ご教授頂いたように修正したところ
無事仕様とおりに動きました。
0192デフォルトの名無しさん
NGNG引数で渡したファイルに
バイナリで書きこむとは
どういったことなのでしょうか?
例えば32という2バイトを32と1バイトにして
書きこむといわれたのですが・・・
あまりにも意味がわかっておりません。
どなたかご教授お願い致します。
0193デフォルトの名無しさん
NGNGfopen() で "wb" モードで開け。
char 型の変数に 32 を代入して fwrite() で書け。
終わったら fclose() で閉じろ。
0194デフォルトの名無しさん
NGNGとりあえず >>127-150 あたりを読んでください。
0195デフォルトの名無しさん
NGNGそうだったんだ...。
VC5の頃はダメって書いてあったと思うので、
特にいいって書いてないだけでも
ダメなんだと思い込んでしまったのかも。
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG> 自動変数をstatic領域に配置することだよ
それって自動変数じゃねーだろ。
(今時誰も書かないけど、auto ってキーワードもあるし...。)
> static int a;
> とかって宣言すると、その関数終了しても内容の保持が保証されるのです
グローバル変数/関数のスコープには触れなくて良いのか ?
0198デフォルトの名無しさん
NGNGK&R の時代のことはよー知らんのだが。
>>155
1.関数の外に書いた変数や関数につけた場合
その変数や関数の名前がそのファイル内でしか通用しなくなる。
2.関数の中の変数につけた場合
その名前が関数の中でしか通用しないことを除いて
グローバル変数と同様の扱いになる。
(つまり、初期化は実行前に決まる値でしか行えず、
初期化を省略すれば 0 で初期化される。
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG> auto って書いてた時期ってそもそもあるの?
> K&R の時代のことはよー知らんのだが。
最近の香具師は、規格も知らんのか ?
(まあ、普通は省略できるから気にしなくてもいいんだが。)
>>199
>>198 の 2. の意味では、まず同じ。(よほどひねくれた実装は除くが...。)
逆に、同じ静的変数でも初期化指定子がない (or 0 で初期化) 場合と、0 以外で初期化する場合で異なるメモリセクションに配置する処理系は多い。
0201デフォルトの名無しさん
NGNGそもそも、日本語で自動変数って
autoを直訳しただけだからね…
0202198
NGNGauto ってのがあることくらい知ってるけどさ、
でも、使ったことないんで。
いや、とりあえず使ってみたことはあるが。
register もそうだなー。
VCとか無視するって書いてるし。
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNG>それって自動変数じゃねーだろ。
>(今時誰も書かないけど、auto ってキーワードもあるし...。)
そういわれたらそうかも(^^;
へんないいまわしだw
staticで宣言した瞬間にautoじゃなくなるもんね
>グローバル変数/関数のスコープには触れなくて良いのか ?
うーん、staticってなんでしか?って聞いてる人にあんまり難しいこといってもなぁ〜
って思いまして。
つまるところは内容が保持されるってことがいいたい。
そうすると、スコープの話になりますね・・・
>>(今時誰も書かないけど、auto ってキーワードもあるし...。)
う〜ん、C始めて、8年やけど、いまだかつてautoキーワード使ったこと無いわw
使うことってあるの?
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGん〜大概のコンパイラは最適化の段階で勝手にregisterつかってくれるんじゃないの?
0208デフォルトの名無しさん
NGNGくれるかどうかはわからない。
x86のようなレジスタが少ないCPUならなおさらその傾向が強い。
0209デフォルトの名無しさん
NGNGソースを見やすくする為に使う
取り敢えず、最優先したい変数はregisterを使い
レジスタに割り当てて欲しくない変数はvolatileを使い(←正しい使い方と違うけど)
レジスタが余ってる場合にはレジスタに割り当てて欲しい場合はautoを使えば
ソースを見た時に、明示的に優先するべき変数が分かるようになる
ちなみに、省略された変数は、一時的なもので最終的には使わない予定の変数
0210デフォルトの名無しさん
NGNG鬱陶しいことこの上ない(w
0211デフォルトの名無しさん
NGNG修飾子を使うのは誤り。するべきは変数名の工夫、コードの構成。
0212デフォルトの名無しさん
NGNGregisterは優秀なコンパイラを使っていれば必要ないんじゃない?
volatileは・・・・それを必要とするほど高度なプログラムを俺は書いたことがないw
俺は上の三つは使ったことないな。signedも使ったことないかも
0213212
NGNG俺はデフォルトでexternになっているからつけないんだけど。
プロトタイプにはつける人もいるみたいだから。
0214デフォルトの名無しさん
NGNG漏れはつけない。無駄だと思ふ。
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNGvoid foo()
{
:
i++; /* 参照 */
:
}
int i ; /* 定義 */
これをstaticでやりたい場合はどうするの?
ファイル内でしか通用しないのだから
普段は宣言無しで定義を一番上に書く事にしてるんだけど
出来たら、それは、それで少し便利かなと…
0217デフォルトの名無しさん
NGNGp=malloc(sizof(int), 100);
で動的に確保したpの配列要素数を調べるにはどうすればいいでしょう?
sizeof(p)ならsizeof(int *)がもとまってしまいます...
もちろんサイズ100ってわかってるのになんで?ってのは
なしでおねがいします.
0218デフォルトの名無しさん
NGNG出来ない。いじょ。
0219デフォルトの名無しさん
NGNGその100を覚えておけばいいだろ
0222デフォルトの名無しさん
NGNG一応
static int i; /* 定義 */
にすればできる。
でも、そういうのはできるだけ一箇所で済ませたいと思うけどね。
2箇所で整合性とらなあかんのは面倒。
関数の場合は前方参照問題とかあるから
static でもプロトタイプ宣言するのは有意義だけど、
変数では滅多にそういう問題ないから不必要っしょ。
0223デフォルトの名無しさん
NGNG要するに、何か変数に保存しときんしゃいってこと。
0229デフォルトの名無しさん
NGNG> 関数だと駄目なので、変数も駄目だと思い込んでたんですけど
何で駄目だと思ったんだ?
プロトタイプに extern とか書いたのか?
#include <stdio.h>
static void hoge();
int main()
{
puts("main");
hoge();
puts("main");
return 0;
}
static void hoge()
{
puts("hoge");
}
0230デフォルトの名無しさん
NGNG> 変数の宣言はexternで良かったんですね
よくない。
いや、悪くないが、気持ち悪い。
関数内でも、変数は頭に宣言するだろう。
変数を後ろに宣言する何の必要があるのか?
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG元金と利子だからな
0233デフォルトの名無しさん
NGNG038 #あそこがasokoga
214 #むず痒いmuzugayui
314 #なんでだろnanndedaro
286 #なんだか切ないnanndakasetsnai
↑こんな感じの複数行のテキストファイルがあり、
このファイルを引数で渡すと
数字のみファイルに書きこむプログラム
(#以降はコメントのようにみなす)を
作成していたのですが、変更があって
032 #なんだかnandaka
ne #あそこがasokoga
214 #むず痒いmuzugayui
↑のように数字以外のものがあっても
変換する必要性が出てきました。
今まではisdigit()で済ませていたのですが
それでは2行目の"ne"が弾かれてしまいます。
そこでどのようにすれば#以降を弾きつつ
先頭行の数字以外のデータを書きこむように
できるのかをお教え頂きたくカキコしております。
ほんと厨房で長々と乱文でスイマセソ
5教授お願い致します。。。
0234デフォルトの名無しさん
NGNG書き込むって何に書き込むんだ?
文脈から判断できない
メモリーか?
0235234
NGNG0237236
NGNGstrchrをうまく使って長さを求める。
strcspnを使ってもいいけど
0238デフォルトの名無しさん
NGNG023910000
NGNGとりあえず文字表示するだけとかやってみたわけなの
printf("<HTML>");みたいに。
それをコンパイルしてXREAってトコロにUPしてみたの
だけど・・動かないの・・・EXEをCGIにリネームしてUPしたのに。
・・・・なにがわるいんでしょう・・・??
0241デフォルトの名無しさん
NGNGEXEとか言っているあたりWindows上でコンパイルしたな・・・・
xreaはLinux(CPUはIntel系)だから。
024210000
NGNGこんなん付けていましたが・・・ダメでした・・。
環境はVCなんです。・・うーぬ。
レスありがトン。
0243デフォルトの名無しさん
NGNG024410000
NGNGそれは気付かなかった・・っていうか知らなかった〜
Linux対応にするにはどうすればいいか、わかります・・?
0245デフォルトの名無しさん
NGNGstrtok(バッファの内容を改変してもいいとき)
もしくは strchr(よくないとき)を使う。
>>242
: の後は空白を空ける。
printf("Content-type: text/html\n\n");
>>244
Linux 上でコンパイルする。
0246デフォルトの名無しさん
NGNG他のバッファにコピーするならsscanf(src,"%[^#]",dest);こんな感じかな?
0247デフォルトの名無しさん
NGNG自分とこでLinux環境整えてそこでコンパイル、が一番楽なんじゃないかなぁ…
Cygwin使えばWIN上でLinuxバイナリ作れる?
ttp://www.sixnine.net/cygwin/cygwin-doc/devel/cygwin-to-linux-cross-howto.html
024810000
NGNGまだ遠い道なのかな・・。
0249セグメントフォルト
NGNG実験用に自前鯖つくるか
0250デフォルトの名無しさん
NGNGってか、コンパイルされた状態なの?
テキストソースなの?
0251デフォルトの名無しさん
NGNG実行できるなら何でも。
0252デフォルトの名無しさん
NGNG> C言語で
> それをコンパイルして
0253252
NGNG標準入出力と環境変数にアクセスする機能があれば言語は問わない。
Cで書かれたものならもちろんコンパイルしないとだめ
0254251
NGNG確かにそういう意味かもしれんな...。
>>251 に補足するなら、サーバが許可してない形式のは実行できなかったと思う。
インタプリタ言語なら、もちろんインタプリタがサーバに置いてないと実行できない。
ホームでインタプリタを自前でコンパイルして使うという手もあるが...。
0255デフォルトの名無しさん
NGNGstruct ABC b;
ってすると、なんで a しか定数にならないのー?
型限定子なのに
0256デフォルトの名無しさん
NGNG何がおかしいんだろ・・・
0257困った1 ◆tr.t4dJfuU
NGNG{
int i;
for (i = 0; s[i] != '\0' && i < lim; i++)
{
;
}
if (i == lim)
{
while (i >= 0 && (s[i] == ' ' || s[i] == '\t'))/*�@*/
{
i--;
}
}
return i;
}
�@の条件が常に偽になるのはなぜなのでしょう?
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG・mallocで得た領域でない。
・既にfree済み。
0260デフォルトの名無しさん
NGNG0261困った ◆tr.t4dJfuU
NGNG0262デフォルトの名無しさん
NGNG常に偽になるわけないでしょ。
findposに与える引数を工夫してみな。
0263デフォルトの名無しさん
NGNGそれ以外にも、ポインタとかの使い方間違えてて、メモリ管理がぐちゃぐちゃになってるとか...。
0264デフォルトの名無しさん
NGNG>変数を後ろに宣言する何の必要があるのか?
関数でも変数でも定義や参照の後ろで宣言するのは意味無いし
0266デフォルトの名無しさん
NGNGそれで正常です。
構造体の定義の部分に const をつけても、
その構造体変数を作ろうとした場合に const になるわけではありません。
定義の部分でついでに定義した構造体変数が const になるのです。
常に const になって欲しいんならこんな感じで。
typedef const struct __ABC {int i;} ABC;
ABC a = { 0 };
ABC b = { 5 };
0267困った ◆tr.t4dJfuU
NGNGありがとうございます。
その方向で工夫してみます。
0268デフォルトの名無しさん
NGNG再帰関数を書いたときにauto変数であることを明示するために書いたことがある。
0269デフォルトの名無しさん
NGNG>const struct ABC {int i;} a;
だと
const struct ABC a;
でって、ABCがconstになるわけじゃないですからね。
そもそも、型を定数にしてなんかいいことある?
あえてするなら
struct ABC {const int i;};
かな?
0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNG#define honyara honya + ra
後は自分で考えませう
0273デフォルトの名無しさん
NGNGんー、簡単なプログラムかいて、色々実験してみたんだけど、
結果は、同じになります。
あんまり悩む事じゃないのかな??
0274デフォルトの名無しさん
NGNGそれは、そんな定義する奴の方が悪いと思うけど。
0275デフォルトの名無しさん
NGNGじゃ↓を試してみ
#define honyara 7 + 11
printf("%d\n",sizeof honyara );
printf("%d\n",sizeof(honyara));
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNGそれは同意だが、>>270は、何が違うのか聞いてるので…
0278デフォルトの名無しさん
NGNGだからと言ってそんな変な例を出してどうする。
sizeof 単一式
sizoof(型名)
と言うだけのことだろ。規格書ぐらい読めよ。
0279デフォルトの名無しさん
NGNGなるほど、この場合だと結果は違いますね。
自分の環境だと、
printf("%d\n",sizeof honyara );
これは、15になって、
こちらは、
printf("%d\n",sizeof(honyara));
4になりました。
後者は、sizeof(int)をあらわしてると思うのだけど、
前者はなんだろう?
うーむ、、、、考え中...
0280デフォルトの名無しさん
NGNG>sizoof(型名)
>規格書ぐらい読めよ。
プッ
0281デフォルトの名無しさん
NGNG型名に()が必要と言うのは
#define honyara int
や
typedef int honyara;
の場合
0282デフォルトの名無しさん
NGNGそうか?俺は勉強になる良い例だと思うが・・・
ところで単一式なんて単語定義されてたっけ?
0283デフォルトの名無しさん
NGNGsizeof 7 + 11 は ( sizeof 7 ) + 11
sizeof( 7 + 11 ) は sizeof( 18 )
で、あなたの環境の場合 sizeof 7 も sizeof 18 も4だったって事
0284デフォルトの名無しさん
NGNGつまり、一般的には(typedefしない時などは)、両者は同じであるというわけですか?
正直、わかったような、わからないような。
なんだか釈然としないですょ。
0285デフォルトの名無しさん
NGNGなるほど!
非常によくわかりました。
カッコつけることで、優先順位あげてるわけか。
理解しますた。
みなさん、どうもありがとうございました。
0286デフォルトの名無しさん
NGNGいつでも括弧をつけていれば間違いない。
俺は変数に対してはあまり括弧をつけないけど・・・
0287デフォルトの名無しさん
NGNG要は、honyaraの正体を知ってる時は、どっちを使っても構わないが
honyaraの正体を知らない時は()使えって事
また、honyaraの正体を知ってても変更する(される)
可能性がある場合も()使えって事
0288デフォルトの名無しさん
NGNGつけないとワードとワードが2つ連続して並んじゃってなんか居心地が悪い
hage + sizeof hoge + huge
↑ここに何も無いのがキモイ
0289デフォルトの名無しさん
NGNGsizeof(i++)
のように、変数を変化させる事を書いた場合の
ふるまいって、どうなってるの?
0290デフォルトの名無しさん
NGNGi++の型だけが使われて、iの値は変化しないと
0291デフォルトの名無しさん
NGNG変数の大きさに変数の中身は関係ないんじゃ?
0292291
NGNGどうだろ・・・
0293289
NGNGこれが、保証済みだったら良いけど
未定義や処理系定義だったら怖いでふ…
まぁ
#define i j++
とかアホな宣言しなければ良いんですけどね…
0294デフォルトの名無しさん
NGNGとなってる。
0295デフォルトの名無しさん
NGNGmain()
{
putchar(126);
}
だと ~ が表示される.(~のコードが126だから)
しかし 。 のコードは130のはずなのに,
#include<stdio.h>
main()
{
putchar(130);
}
と打っても結果が表示されません.これに関して,130〜159までが表示されないみたいなんですが,なぜなんでつかー??おせーてくらさい.
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNGisgraph()で調べてみたら。
スペース以外の表示可能文字なら0以外を返す。
0298デフォルトの名無しさん
NGNG。 は 161(0xA1) だと思います。
129(0x81) 〜 159(0x9F) はSJISでは2バイト文字用の
文字コードなので、単独では何も表示されません。
0299デフォルトの名無しさん
NGNG0300296
NGNG0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG0303レゴ其の二
NGNG#include <iostream.h>
#include<stdio.h>
void main()
{
FILE *fp;
fp=fopen("素数−実行結果.txt","a");
int i, j ,f,n=1000,c=0;
// 1から1000までの数の素数を求める
// i, jはループ変数
// fは一回でも割り切れたら1。
// 一度も割り切れなかったら0。
for(i = 2; i <= n; i++) // i(==2,3,4,..,1000)について調べる。
{
f = 0;
for(j = 2; j < i; j++) // j(==2,3,...,i)で割ってみる。
{
if(i % j == 0) // あるjで割り切れたらfは1。
f = 1;
}
0304レゴ其の二
NGNGcout << i << "は素数です。" << endl;
c++;
}
}
printf("%d個です。",c);
}
素数を表示するプログラムなんですが、
実行結果をテキストファイルに出力するにはどうしたら良いですか?
教えて下さい。御願いします。
ちなみに、コレを実行しても、作成されたテキストファイルは白紙になってしまいます。
0305デフォルトの名無しさん
NGNGprintf( "A=0x%02x\n", 'A' ) ;
0306デフォルトの名無しさん
NGNGtest > hoge.txt
ってしたら、いいんじゃねーか?
面倒くせーから、まともなやりかたは、他の人に聞いてくれ。
0307デフォルトの名無しさん
NGNGお前最悪。
マルチポストかよ。
氏ね。
0308レゴ其の二
NGNG御願いします。
なかなかうまくいかないんです。
0309デフォルトの名無しさん
NGNG0310レゴ
NGNG0311デフォルトの名無しさん
NGNG複数のスレッドに同じことを投稿する違法行為。
知らなかったじゃ済まされないのが犯罪。
0312レゴ
NGNGいえ、あちらの方に、MFC限定と書いてあったので、
書き込んだ後で、違うかも知れないと思って、こっちに来たんです。
だから、他には投稿してないです。
0313デフォルトの名無しさん
NGNGマルチポストと移動の違いが分からない罠。
0314デフォルトの名無しさん
NGNGならそう書けよ……
0315レゴ
NGNGどうしたら、うまくテキストファイルに出力できるか、
教えて下さい。御願いします。
0316デフォルトの名無しさん
NGNGマルチポストが何故いけないのかちゃんと調べておこうな。
>>313
移動はちゃんと移動したと書いてある。
マルチポストと勘違いされるのを防ぐのにな。
0317名無しさん@3周年
NGNG素直に
単位を
落とせ。」
0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNG>書き込んだ後で、違うかも知れないと思って、こっちに来たんです。
1、書き込む前に確認する
2、移動する時は、必ず、移動すると元スレに書き込んでから移動する
以上、基本ですので憶えて置きなはれ
追記
反省してるならMFC限定スレにも謝っておく事
0320デフォルトの名無しさん
NGNGそれは C++ だが、ここは 「C 限定」 なんだよな。
0321レゴ
NGNGはい、分かりました。
317>>
単位というか、研究室に入れなくなってしまうんです。
0322レゴ
NGNG0323デフォルトの名無しさん
NGNG>>1読んだ?
0324レゴ
NGNG違うけど、言葉的に入ってると思ったんですが。違うのでしょうか?
間違ってたら、すいません。
0325レゴ
NGNGfp=fopen("素数−実行結果.txt","w");
int i, j ,f,n=1000,c=0;
// 1から1000までの数の素数を求める
// i, jはループ変数
// fは一回でも割り切れたら1。
// 一度も割り切れなかったら0。
for(i = 2; i <= n; i++) // i(==2,3,4,..,1000)について調べる。
{
f = 0;
for(j = 2; j < i; j++) // j(==2,3,...,i)で割ってみる。
{
if(i % j == 0) // あるjで割り切れたらfは1。
f = 1;
}
if(f == 0){// iを割り切るjがなかった場合
cout << i << "は素数です。" << endl;
c++;
}
}
printf("%d個です。",c);
fc=fclose("素数−実行結果.txt","w");
と入力したのですが、エラーが出てしまいました。
0326デフォルトの名無しさん
NGNGはっきり言われないとわからないか。
>>1 の 2 行目は呼んだか?
あと、C と C++ は全然別言語だ。
0327レゴ
NGNGもしかして、両方使わないといけないんですかね?
0328レゴ
NGNGはい。
自分で色々調べたり、先輩に聞いたんですけど、
ここまでしか分からなくて。
本当に頭悪くて、すみません。
0329レゴ
NGNG0330デフォルトの名無しさん
NGNGまずfopenとfprintfとfcloseの使い方をおぼえたほうがいいな。
なんでfpにファイルをオープンしたポインタを代入してるのにcoutに出力してんだ?
fpをまったく使わない時点でおかしいと思わないのか?
0331レゴ
NGNGfpに出力ですか?
coutは、使わないんですかね?
初めに素数を表示するプログラムが完成した後で、
テキストファイルに出力出来るようにしようとしたので、
分からなくなったんです。
ちょっと、いじってみます。
0332デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1041328679/l50
こっちに来れば俺が懇切丁寧に教えてやるが
0333デフォルトの名無しさん
NGNG優しいね…
>>331
C++として組みたいならXXstream使え(XXは自分で探せ)
何が簡単で、何が簡単ではないかは、使う人の考え方次第
それにネットで検索すればfprintf()の使い方なんて簡単に見つかる
そして、ルールは守れ。
何処で聞けば分からなければ、この板のルールの↓を守って
>あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。
http://pc3.2ch.net/test/read.cgi/tech/1043159083/
に書きこんでれば、一発で誰かが答えてくれる問題だった
まぁ、今更書いたところで、答えてくれる香具師がいるかは分からんが…
取り敢えず、>>330が付き合ってくれてるので
Cに直した答えを教えてくれるかも知れないが
C++にしたいのなら明日あたり↑のスレで聞いてみ
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNG>>303 の 「助けて下さい。」 のすぐ次の行から。
0338233
NGNGアリガ�dございますた。
アドバイス頂いておいて何なんですが、
正直strchrを使って"#"以降を弾くのかわかりません。。。
ほんと糞厨ですみませんが、もう少し
5教授頂きたく思います。
お手数お掛け致しますが宜しくお願い致します。
0339デフォルトの名無しさん
NGNGint AAA = BBB != CCC ? DDD:EEE ;
この1行を要約すると、
if( BBB==CCC ) int AAA = DDD ;
else int AAA = EEE ;
ということでよろしいのでしょうか?
0340デフォルトの名無しさん
NGNGif( BBB!=CCC ) AAA = DDD ;
else AAA = EEE ;
0341339
NGNGありがとうございました。m(__)m
0342デフォルトの名無しさん
NGNG1. 一行読み出す
2. #の位置を探す
3. 見つかれば、そこまでを書き出す
4. 見つからなければ、全部書き出す
でできます。
一文字ずつ読み出す場合はこういうことできないんですけどね。
一文字ずつ読み出すと何度も読み出し作業があって遅くなるので、
一度にある程度読み出すことが多いです。
まぁ、一文字ずつ読み出す場合であれば、
isdigit とかの関数を使わずに
'#' かどうか判定するのが一番真っ当なやり方でしょうね。
0343超初心者
NGNG0344デフォルトの名無しさん
NGNG長所: 簡潔であること。
短所: 簡潔すぎること。
0345338
NGNGアリガ�dございます
相変わらず糞厨なもので。。。
3. 見つかれば、そこまでを書き出す
4. 見つからなければ、全部書き出す
上記3.4のコーディング方がわかりませぬ・・・
まじオワッテルって感じなんですけど、
御教授願いたく再度ペコーリでございます。
0346デフォルトの名無しさん
NGNG3. 位置の差を使って fwrite
4. fputs
何で分岐するかは strchr のヘルプを見れば分かるはず。
fgets で一行読み出そうとしても、
バッファが小さいと一度に一行全部読み出せるとは限らないので、
その対処をする必要があります。
全部読み出せたかどうかは最後が改行かどうかで分かります。
具体的な形については、全部自分でやってください。
0348デフォルトの名無しさん
NGNG位置の差を取るくらいならstrcspnを使えばいいじゃん
0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNGfopen(fpin=入力、fpout=出力)
while(!feof(fpin)) {
fgetc(cに1文字読む);
if(c=='#') {
fputc('\n',fpout);
while(!feof(fpin)) {
fgetc(cに1文字読む);
if(c=='\n') break;
}
}
else {
fputc(cの1文字を書き込む,fpout);
}
}
両file close
exit(0);
0352デフォルトの名無しさん
NGNG氏ね
0353山崎渉
NGNG0354デフォルトの名無しさん
NGNG0355故・山崎渉
NGNG0356デフォルトの名無しさん
NGNGワロタ
0357
NGNGどうしたらいいですか(>_<)
0358デフォルトの名無しさん
NGNG0359
NGNG0361デフォルトの名無しさん
NGNG次になにを読めばいいのか迷っています、それともはやめにC++の方に移った方がいい
のでしょうか?
0362デフォルトの名無しさん
NGNGこちらへどうぞ
http://pc3.2ch.net/test/read.cgi/tech/1041595397/l50
0363デフォルトの名無しさん
NGNGありがとう
0364デフォルトの名無しさん
NGNGファイルから1バイトおきにデータを読み込みたいのですがうまくいきません
なぜこれではダメなのでしょうか?
FILE *fp;
char ch;
.......
while(!feof(fp)){
ch=fgetc(fp);
putchar(ch);
fseek(fp, 1L, SEEK_CUR);
}
0365デフォルトの名無しさん
NGNGchar ch;
.......
while(!feof(fp)){
ch=fgetc(fp);
putchar(ch);
fgetc(fp);
//fseek(fp, 1L, SEEK_CUR);
}
0366デフォルトの名無しさん
NGNG終了条件がこれはマズイだろ。
0367デフォルトの名無しさん
NGNG数値を文字に変えるのはitoaですか?
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG0370369
NGNGsprintf()
0371デフォルトの名無しさん
NGNGfgetc の戻り値で終わってるかどうか確かめましょう。
また、fgetc の戻り値は int なので int で受け取りましょう。
0372MSDNのサンプルから引用
NGNGchar buffer[81];
int i, ch;
................
/* 最初の 80 バイト文字を読み出し、"buffer" に格納します。*/
ch = fgetc( stream );
for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )
{
buffer[i] = ch;
ch = fgetc( stream );
}
...................
037334
NGNG1週間位前から、snprintfを実装してた者です。
本日作成終了しました。とりあえず感想等を書いてみます。
文字列フォーマット後のサイズを計算して、
オーバーフローしないなら、
内部でvsprintfを呼ぶ様に実装しました。
でも、何箇所か精度の甘い部分が残りました。
変換指定子g,Gはeかfのどちらかに変換されるらしいけど、
どちらに変換されるか判らないからサイズは大きい方で
計算したり、フラグ#は最小フィールドが指定された時には、
サイズがフィールド幅足す2なのか、最小フィールド幅内に含めるのか等
他の人には簡単なのかも知れないけど、
私には難しかったです。そしてめんどくさかった。
0374デフォルトの名無しさん
NGNG0375名無し@沢村
NGNGヌヒよ、それは実装とは言わないぞ。
ヌヒよ、それは単に作成というぞ。それは単なる関数だからな。
ヌヒよ、実装というのは関数ではなくインターフェイスを定義することだ。
0376デフォルトの名無しさん
NGNGなんでfread使わないんだろう…
0377デフォルトの名無しさん
NGNG実際の処理内容を与えることじゃないの?
0378デフォルトの名無しさん
NGNGCRLF -> LF
0379378
NGNG0380デフォルトの名無しさん
NGNG377 の言う通りだ。
お前それじゃ、本物の沢村より DQN だぞ。
0381デフォルトの名無しさん
NGNG>>375が本物であるかも知れない罠
0382デフォルトの名無しさん
NGNG本物ならあんな文の書き方しないよ。
修行が足りないね。
0383ひとりでぷよぷよ
NGNG2 7
3 8
4 9
5 10
↑これを
(a=1;a<6;a++){
(b=a;b<=10;b+=5)
printf("%d",b);
printf("\n");
こうじゃなくて12345と数字の順番に表示させていくにはどうしたらいいですか
0384デフォルトの名無しさん
NGNG聞く前に動くコードを出せ
0385デフォルトの名無しさん
NGNGprintf("12345\n678910");
0386デフォルトの名無しさん
NGNG何をやりたいのか見当がつかん。
どういう出力結果が欲しいんだ?
俺が思うに、1 6\n2 7\n3 8・・・と表示してゆくのではなく、
1から5までを表示したあとに一番上の行間で戻って少し右にずらし6から10までを表示したいんだと思う。
0389388
NGNG○ 行まで
0390ひとりでぷよぷよ
NGNG2 7
3 8
4 9
5 10
↑これを
#include <stdio.h>
int main(void){
int a,b;
for(a=1;a<6;a++){
for(b=a;b<=10;b+=5)
printf("%3d",b);
printf("\n");
}
}
こうじゃなくてああ
0391デフォルトの名無しさん
NGNG2 7
3 8
4 9
5 10
↑こういった出力結果が欲しいだけなんか?
だったら
int i;
for (i=1; i<=5; i++)
printf("%d %d\n", i, i+5);
これでええやん。
0394まさかこんなオチ?
NGNG3 4
5 6
7 8
9 10
0396デフォルトの名無しさん
NGNGhttp://kasai86.infoseek.livedoor.com/dos/esc.htm
0398デフォルトの名無しさん
NGNGダメだということです
0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNGよう分からんけど、>>398の環境で
同一プロセス内のスレッドが複数ある時の話じゃないか?
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNGgccだと通っちゃうんですが。何故?
0403デフォルトの名無しさん
NGNGgccが独自拡張してるからだYO!
-ansi -pedantic-errors
の、「ANSI準拠以外認めない」オプション付けたらエラーになる筈
ところで
>59、61
の掛け合いに激しくワラタんだが、
反応ないのをみるに、これって激しく既知のネタ?
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG知らなんだ。イイ! ね。
特に作業用の引数が必要な再帰関数使うときとか。
0407デフォルトの名無しさん
NGNGこんなのありなんでしょうか?
struct aaa
{
int d1[10];
int data[10];
int d2[10];
};
aaa l;
l.data[-1]=1; //d1[9] //anti bad_alloc
l.data[-2]=222; //d1[8] //anti bad_alloc
0408デフォルトの名無しさん
NGNG添え字に負数入れてもコンパイラはエラー吐かないんだな。びっくりした
a[n] == *(a+n) と解釈されるから当然といえば当然か。
0409デフォルトの名無しさん
NGNG-pedanticまでつけなくてもいいんじゃないか?(笑)
以前試しにつけたら、//コメントはおろか標準にない関数をつかっただけでもエラーになった気がする。
0410デフォルトの名無しさん
NGNGC++使い?
0411デフォルトの名無しさん
NGNG>というかなんで標準Cじゃ使えないんだよヽ(`Д´)ノ
一見簡単そうだが、意外に厄介な問題が潜んでいるので・・・
0412デフォルトの名無しさん
NGNGまともな関数内関数の実装はスタックフレームにも影響あるからね。
C++やJavaのメソッド内クラスみたいな制限つきでも十分便利なのにな。
0413デフォルトの名無しさん
NGNG亀レスで悪いが...
> 要は、honyaraの正体を知ってる時は、どっちを使っても構わないが
> honyaraの正体を知らない時は()使えって事
と言うより、
#define honyara honya + ra
なんて宣言する奴が悪い。普通...
#define honyara (honya + ra)
って宣言するだろ。
>>280
規格書も読めないんだね。 ぷぷっ。
0414デフォルトの名無しさん
NGNG> #define honyara (honya + ra)
> って宣言するだろ。
このくだらないつっこみのために遅レスしたの?
0415デフォルトの名無しさん
NGNG> #define honyara (honya + ra)
> って宣言するだろ。
#define honyara ((honya) + (ra))
0416デフォルトの名無しさん
NGNG>このくだらないつっこみのために遅レスしたの?
規格書を読んでいた為ではないかと。
0417デフォルトの名無しさん
NGNGあんたの意味なし煽り突っ込みよりマシかと。
>>415
趣味の差かと。
念には、念を入れると言う考え方もあるけど、俺はマクロ側で () 必須にするのが好み。
>>416
それもあるが、毎日 2ch 見てるわけじゃないし...。
0418デフォルトの名無しさん
NGNG>俺はマクロ側で () 必須にするのが好み。
#define a(b) (b * 5)
printf("%d\n", a((4 + 8)));
という意味だったら死刑。
0419デフォルトの名無しさん
NGNGまあ、話の流れからわかるでしょ ?
「マクロの定義側で」と書いた方がいいか...。
0420デフォルトの名無しさん
NGNG煽ったつもりはないですけど。
煽っているのは>>413の方でしょ。
0421デフォルトの名無しさん
NGNGこれ (=このくだらないつっこみのために遅レスしたの?) 書いといて...
> 煽ったつもりはないですけど。
と来たか...。
>>413 で煽りがないとは言わんけど、>>280 は見てんのかなぁ。
0422デフォルトの名無しさん
NGNG驚いたので感想を書いただけです。
亀レスでなければ驚きもしないですけど。
くだらないという表現がまずかったでしょうか。
0423デフォルトの名無しさん
NGNG> 驚いたので感想を書いただけです。
マジなのか、ネタ (だと思いたいが) なのかわからんけど。
まああんたみたいな奴も世の中にはいるということはわかった。
> 亀レスでなければ驚きもしないですけど。
自分で亀レスって書いといてなんだけど、2日と17時間ぐらいが、驚くほど亀レスか ?
君と違って、毎日 2ch 見てる香具師ばかりじゃないんだよ。
> くだらないという表現がまずかったでしょうか。
相手に対して、「くだらない」と言う表現がまずくない場合があるとでも思ってんの ?
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG1.構造体のメンバが宣言順にアドレス増加方向で並ぶのは保証されている
2.配列内の要素はアドレス増加方向で並ぶことが保証されている
3.アドレス演算は+で増加方向、-で減少方向が保証されている
だが、
4.構造体の中身が隙間無く並ぶことは保証されていない
に引っかかって誤動作することがあると思われ。
sizeof(int)=4,sizeof(short)=2として、
struct mix{
short a[1];
int b[1];
short c[1];
};
だと、恐らくmix.c[-3] != mix.a[0]になると思う。
ただそれよりも何よりも、そんな危険な匂いのするコード個人的に嫌だw
0426デフォルトの名無しさん
NGNGあんな書き込みでは2日と17時間でも驚くよ。
大抵は思っても書き込んだりはしないんじゃないかな。
0427426
NGNG0428デフォルトの名無しさん
NGNGハイハイ、わかりました。
0429デフォルトの名無しさん
NGNGわかればいい。
0430デフォルトの名無しさん
NGNGint dat[100][100];
void func(int *param);
main(){
func(dat);
}
のようにやっても、うまくいきません。
void func(int** param);でもだめでした。
教えてください。
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNGvoid func(int param[][100])
void func(int (*param)[100])
0433デフォルトの名無しさん
NGNGvoid func(int param[][100]);
0434デフォルトの名無しさん
NGNGでもそれだと、要素数が100に限定されてしまいませんか?
0435デフォルトの名無しさん
NGNG限定される。
ポインタの指すものの大きさが分からないとだめだろ。
0436デフォルトの名無しさん
NGNGそもそも配列の範囲外へのアクセスは保証されないよ。
>>429
しつこい、お前等ウザイからどっか逝け。
>>430
void func(int param[][100])
多次元配列の最上位の次元以外の範囲は省略できない。
0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNGint data[100 +2], *p;
p = data +2;
とすれば、p[-2], p[-1] が有効に使えるね。
0439デフォルトの名無しさん
NGNGこうやればできる。
#include <stdio.h>
#define ELEMOF(array) (sizeof (array) / sizeof *(array))
void func(int* param, int n)
{
param[n * 3 + 6] = 3; /* a[3][6] = 3;
}
main()
{
int a[10][20];
func(*a, ELEMOF(*a));
printf("%d\n", a[3][6]);
}
0440デフォルトの名無しさん
NGNGparam[n * 3 + 6] = 3; /* a[3][6] = 3; */
0441デフォルトの名無しさん
NGNG情報が無くなるから・・
void func(int *param,int n){
/*nは1列の要素数*/
*(param + 3 * n + 6) = 3;
}
と大差ないと思われ。
これなら通ることは恐らく>430も確認済みと思う。
関係ないが、関数の中にマジックナンバーを仕込むのは
サンプルコードでも止めて欲すぃ・・
0442デフォルトの名無しさん
NGNG>sizoof(型名)
>規格書ぐらい読めよ。
規格書読む前に、アルファベットの綴りを覚えろよ
0443デフォルトの名無しさん
NGNGtypo ぐらいでがたがた言うな。
0444デフォルトの名無しさん
NGNGエラそーに能書きを垂れる時にミスったらアカンやろ
0445デフォルトの名無しさん
NGNG数字だと瞬間での同一性の確認が得られるから、
こういうサンプルではマジックナンバーもアリかと思って。
あと、もし第二要素数の異なる二次元配列を扱うのであれば、
それと大差ないのは仕方がないんじゃないかな。
まぁ、
#define INDEX2(n2, a, b) ((a) * (n2) + (b))
とかして
param[INDEX2(n, 3, 6)] = 3;
とでもすればいいかと。
もちろん要素数固定ならこんなことする必要ないんだけどね。
0446デフォルトの名無しさん
NGNG>>415 が趣味の差かよ!!
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGルパーン お前をタイポする〜〜
0449デフォルトの名無しさん
NGNGタイポしてないじゃん
0450初心者
NGNG#include<stdlib.h>
int main (void){
int k,nsize;
int *pnVar;
printf("確保する大きさ");
scanf("%d",&nsize);
pnVar= (int *)malloc(sizeof(int)* nsize);
printf("%dバイトの領域を確保しました\n",4*nsize);
for(k=0;k<nsize;k++);
pnVar[k]=k*10;
for(k=0;k<nsize;k++);
printf("pnVar+%d=%p pnVar[%d]=%d\n",pnVar+k,k,pnVar[k]);
free(pnVar);
return 0;
}
何故かエラーがでます。
授業の板所を間違えて写してしまったのでしょうか
どなたか対処法をおねがいします。
マロック関数です
0451デフォルトの名無しさん
NGNGfor文の後にいきなりセミコロンがあるが、それはどうなのよ?
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGヒソヒソ( ゚o゚)ヤダァ(゚o゚ )ネェ、キイタ?( ゚o゚)オクサン(゚o゚ )アラヤダワァ
0455木下
NGNGまず仕事の数を入力して次に仕事の内容を入力して次に仕事別に分けたいのだけどどうしたらいいの?
ちなみに仕事は丸ブローチ加工、角ブローチ加工、キーみぞ加工の3種類です。
0456デフォルトの名無しさん
NGNGなんだか新鮮ですな。
0457デフォルトの名無しさん
NGNGバカ?
0458デフォルトの名無しさん
NGNG質問が漠然としてるな
いまいちわからない
研究にかかわってない人間でもわかるように質問して
0459デフォルトの名無しさん
NGNGマイコンで旋盤制御でもやるつもりか?
お手製のNC旋盤
0460デフォルトの名無しさん
NGNG少しおちついて考えればすぐ解ると思うが、
for(k=0;k<nsize;k++);/* k が nsize になるまで空回り*/
pnVar[k]=k*10;/* ここでは k は nsize と同じ値になっている*/
となっている。
451じゃないが、for文直後のセミコロンはいったい何なんだと小3分ほど(w
0461デフォルトの名無しさん
NGNGintの大きさをsizeof(int)と書いているところもあれば4と決めつけているところもあるね。
あ、エラーとはなんの関係もないよ。
0462木下
NGNGvoid main()
{
long sum=0;
short ten[10],i,n;
printf(“仕事数の入力(10個以内):”);
scanf(“%2d,&n);
for(i=0;i<n;++i){
printf(“%2d個目の仕事の入力:”,i+1);
scanf(“%s”,&ten[i]);
sum=sum+ten[i];
}
if(?){
printf(“丸ブローチ加工です。\n”);
}
}
ここで()のなかの条件式がわかりません。仕事の内容を入力する時にmと入力されれば
”丸ブローチ加工”です。と表示したいのです。初心者なのでよろしくおねがいします。
0463デフォルトの名無しさん
NGNGまずは全角のダブルクォーテーションをなんとかしろ。
次に、なんでshortに文字列を入れようとする?
0464木下
NGNG0465デフォルトの名無しさん
NGNGsumって何に使うの?
0466デフォルトの名無しさん
NGNGアムロの(ry
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNGオリンピックで金メダルを取ること。
0469デフォルトの名無しさん
NGNG/* int hoge */
while((hoge = fgetc(fpin)) !=EOF){
if(hoge=='#'){
fputc('\n',fpout);
while(!feof(fpin)){
hoge=fgetc(fpin);
if(hoge=='\n') break;
}
}
else {
fputc(hoge,fpout);
}
}
*fpoutの示すファイルにバイナリで書きこみたいので
fwriteを使いたいのですが、いまいち使い方が
わかりません。特にfputc('\n',fpout);のところです。
'\n'をどのように引数で渡せばよいのでしょうか?
糞みたいな質問で申し訳ありませんがよろしくお願い
致します。
0470デフォルトの名無しさん
NGNGhttp://www.bohyoh.com/CandCPP/C/Library/index.html
ここみろ
0471デフォルトの名無しさん
NGNG> fputc('\n',fpout);
fwrite(&'\n', 1, 1, fpout);
でも、1文字書き込みたいだけならfputcの方がいいと思うが...
0472デフォルトの名無しさん
NGNG> &'\n'
これはCなのか?
てか、"\n"でええやん。
0473デフォルトの名無しさん
NGNGスタックがオーバーフローするエラー。
スタックってのは
自動変数(関数内で普通に定義した変数)、
関数の引数、関数の呼び出し元のアドレスなどを
保存しておくところ。
オーバーフローってのは、容量オーバーすること。
つまり、
1. 自動変数が大きすぎる・多すぎる
2. 関数呼び出しが深すぎる
って時に起こるエラーです。
普通は再帰関数の終了条件が満たされなくなるようなバグがあったときか、
3次元以上の配列を確保したが予想以上に大きくなってしまった、という時に起こります。
0474サンコン
NGNG何をしたらいいかわからず,何か参考になるネタはありますか?
0475デフォルトの名無しさん
NGNGhttp://www1.coralnet.or.jp/kusuto/PI/super_pi.html
これに似たものを作る
0476デフォルトの名無しさん
NGNG円周率を求める
http://www.kumei.ne.jp/c_lang/intro/no_48.htm
円周率πの計算
http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/p/pi.html
モンテカルロ法による円周率の計算
http://hp.vector.co.jp/authors/VA014765/pi/montecalro.html
0477デフォルトの名無しさん
NGNG検索すればその手の例題は結構あります。
0478サンコン
NGNG0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 /<<479
0481デフォルトの名無しさん
NGNGご回答ありが�dございます。
while((s = fgetc(ifp)) !=EOF){
if(s=='#'){
fwrite("\n", 1, 1,ofp);
while(!feof(ifp)){
s=fgetc(ifp);
if(s=='\n') break;
}
}
else {
fwrite (&s, 1, 1, ofp);
}
}
上記のように直したのですが
ファイルにはNULLしか入ってないっす・・・
まじ厨でもうしわけないのですが
ご教授お願い致します。
0482デフォルトの名無しさん
NGNGfwrite を使うか fputc を使うかで
バイナリかテキストかは切り替わらないので、
どっちを使っても問題ありません。
というか、
fwrite (&s, 1, 1, ofp);
は危険な(環境依存な)コードなので
fputc 使って下ちぃ。
0483デフォルトの名無しさん
NGNGご丁寧な回答ありが�dございます。
fputcを使うべしとのことですが
fputcはバイナリで書きこむことが
可能なのでしょうか??
0484デフォルトの名無しさん
NGNG環境依存なの?
0485デフォルトの名無しさん
NGNGCPUはなんだ? なんとなくx86系じゃないような香りがする。
0486デフォルトの名無しさん
NGNGint型のs(多分fgetcを受ける変数なんでintなんだろう)を
*(char*)&s;
と評価したときの値は環境に依存するよ。
fwrite(&s, 1, 1, ofp);
なんてやってる場面はまさにそれ。
0487481
NGNGCPUは・・・?よくわかりますぇん。。。
OSはUNIX、ソラリスであることは
間違いないっす。
fputcじゃーバイナリでカキコは無理なんで
しょうか・・・
0488デフォルトの名無しさん
NGNGするとsparcかな。エンディアンしらねえや(w
でも書いたファイルがヌルだらけという状況からいって、
ビッグエンディアンっぽいね。
ともかくその場面ではfwriteを使うんじゃなくて、fputcを使うべし。
fputcは文字をストリームに書く関数というよりは、
一バイトストリームに書く関数って感じなので、バイナリ書けるよ。
0489デフォルトの名無しさん
NGNGというか、何をしたいの?
#があるとその行のそれ以降のものを消すコード、
というのなら最初ので合ってるような気が。
0490487
NGNGアリガトウゴザイマス
確かに漏れバイナリわかってません。。。
32#more
44#baka
nanoka #utsuda
↑こんな感じのテキストファイル読み込んで
(#以降はコメントの扱いとして省く)
バイナリでファイルに書きこむっていう
プログラムを作っています。
putcでバイナリで書きこめるのであれば
私の仕様でもダイジョウブなんでしょうか?
最近夢にバイナリが出てきます。
鬱です。
0491デフォルトの名無しさん
NGNG32 とか 44 とかをバイナリで書き込むんですね?
でも、nanoka とかバイナリもテキストもないと思いますが
どういう仕様にしたいのでしょうか。
0492487
NGNGアリガ�dゴザイマス!
おっしゃる通りでして
"nanoka"はそのままカキコで
OKであります。
32やら44をバイナリで書きこみたい
のです。
ご教授お願い致します。
0493デフォルトの名無しさん
NGNG300get#300geto-
という場合はどうなんでしょう?
何にせよ、fgets で一行読み込んでから処理する方が楽な気がします。
0494デフォルトの名無しさん
NGNG0495492
NGNGfgetsのほうがよいですか。。。
while(fgets(buf, 256, ifp) !=NULL){
for(src=buf, dst=tmp; *src; src++){
if(*src == "#")
*dst++=*src;
}
*dst='\0';
こんな感じでいけますかねぇぇ。。。
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG0499492
NGNGでしか?
0500デフォルトの名無しさん
NGNG見つからなければ1文字出力、
を続けていけばいいんじゃない?
0501デフォルトの名無しさん
NGNG0502492
NGNG500ゲトの暁にそのコード書いて
くださひ。。。
もうアタマがオーヴァーヒートして
だめぽ。。。
0503デフォルトの名無しさん
NGNG0504492
NGNGソウナンデスヨネェ
まだC言語触って2週間なのに・・・
こんなん漏れに与えるヤシがおかすぃ。
ほんとおながいしますっ!
0505デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(int argc, char * argv[]) {
char s[512], *p;
FILE *ifp, *ofp;
if (argc != 3) {
fputs("usage: hoge <in> <out>\n", stderr);
return 0;
}
ifp = fopen(argv[1], "rb"); ofp = fopen(argv[2], "wb");
if (!ifp || !ofp) {
perror(NULL);
return 3;
}
while (fgets(s, sizeof(s), ifp)) {
if (p = strchr(s, '#')) *p = '\0';
else if (p = strchr(s, '\n')) *p = '\0';
if (isdigit(*s)) {
int i = atoi(s);
fwrite(&i, sizeof(i), 1, ofp);
}
else
fputs(s, ofp);
fputc('\n', ofp);
}
fclose(ofp); fclose(ifp);
return 0;
}
0506デフォルトの名無しさん
NGNG32 行までな。
0507デフォルトの名無しさん
NGNG"3e-5" を 0.00003とする場合など。
お願いします!!
0508デフォルトの名無しさん
NGNGsscanf("3e-5", "%g", &a)
0509507
NGNGものすごくあっさりできるのですね。
ちなみに反対の変換はfcvt()でOKでしょうか?
0510デフォルトの名無しさん
NGNGsprintf()
0511507
NGNG了解しますた。
ありがとうございました。
0512504
NGNGふぉんとにありが�dございます。
家に着いたらそこには宝があったよー!!
(゚д゚)ウマー(゚д゚)ウマー(゚д゚)ウマー
とりあえずケコーンしてくだはい。
0513504
NGNG・・・などとプロフィールを勝手に書いてみるテスト・・・
0514デフォルトの名無しさん
NGNGint myprintf(const char *format, ...){
return printf(?????);
}
こんなことは出来ないよねえ。
可変個引数をとる関数とva_listをとる関数はセットで用意しておくべき物なの?
0515デフォルトの名無しさん
NGNG質問の趣旨がわからないんだけど・・・。
0516デフォルトの名無しさん
NGNG29じゃ、すでに女じゃないな
0517デフォルトの名無しさん
NGNG淑女です
0518デフォルトの名無しさん
NGNG文字をそのままにして計算させることは可能でしょうか?たとえば、
double a=1.2, b=2.3, c, d;
d=a+b+c;
で、“d=3.5+c”と計算させたいのです。
0519デフォルトの名無しさん
NGNGそうじゃなくてもこれをもっと短くする方法ってありますかね?
#include <stdio.h>
main()
{
static int days_data[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},Feb=28;
int i,days1,y1,m1,d1,days2,y2,m2,d2,leap,lapse,ydays;
printf("初めの年月日を入力してください : ");
scanf("%d %d %d",&y1,&m1,&d1);
printf("終りの年月日を入力してください : ");
scanf("%d %d %d",&y2,&m2,&d2);
leap=(y1%4==0 && y1%100!=0)|| y1%400==0;
days_data[2]=Feb+leap;
days1=d1;
for(i=1;i<m1;i++){
days1+=days_data[i];
}
leap=(y2%4==0 && y2%100!=0)|| y2%400==0;
days_data[2]=Feb+leap;
days2=d2;
for(i=1;i<m2;i++){
days2+=days_data[i];
}
ydays=0;
for(i=y1;i<y2;i++){
leap=(i%4==0 && i%100!=0)|| i%400==0;
ydays+=365+leap;
}
lapse=(ydays+days2)-days1;
printf("経過日数は%d日です\n",lapse);
}
0520デフォルトの名無しさん
NGNGprintfのラップはなかなか難しい。
ttp://swig-jp.dyndns.org/doc1314-2/Varargs.html
0522デフォルトの名無しさん
NGNGint isleap(int y1)
{
return (y1%4==0 && y1%100!=0)|| y1%400==0;
}
0523518
NGNG0524デフォルトの名無しさん
NGNG2 時間もしないうちにそれを言うか?
可能か不可能かと言われれば可能だろうけど、自分でインタープリタ作る事になるよ。
0525デフォルトの名無しさん
NGNG元年1日(西暦)を1日(延べ日数)とした時の
西暦から延べ日数(i)への変換法(y=year,m=month,d=day)
if(++m<4)y--,m+=12;
i=365*y+y/4-y/100+y/400+306*m/10-428+d;
0526518
NGNG書きこんだ時点では結構回転早そうだったので・・。
朝までにプログラム作る必要があったので急いでたのでつ。
他スレ逝って来ました。レスサンクスでした。
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNGint
┏━━━━━┳━━━━━┳━━━━━┳━━━━━┓
char ┃ ┃ ┃ ┃ ┃
┃ 1 ┃ 2 ┃ 3 ┃ 4 ┃
┃ ┃ ┃ ┃ ┃
┠─────╂━━━━━┻━━━━━┻━━━━━┛
┃ ┃
┃ 2 ┃
┃ ┃
┃ 3 ┃
┃ ┃
┃ 4 ┃
┃ ┃
┗━━━━━┛
列*
┏━━━━━┳━━━━━┳━━━━━┳━━━━━┓
行** ┃ [0] [0] │ [0] [1] │ [0] [2] │ [0] [3] ┃
┠─────┼─────┼─────┼─────┨
┃ │ │ │ ┃
┠─────┼─────┼─────┼─────┨
┃ │ │ │ ┃
┠─────┼─────┼─────┼─────┨
┃ │ │ │ ┃
┗━━━━━┷━━━━━┷━━━━━┷━━━━━┛
0529デフォルトの名無しさん
NGNG列*
┏━━━━━┳━━━━━┳━━━━━┳━━━━━┓
行** ┃ [0] [0] │ [0] [1] │ [0] [2] │ [0] [3] ┃
┠─────┼─────┼─────┼─────┨
┃ [1] [0] │ [1] [1] │ [1] [2] │ [1] [3] ┃
┠─────┼─────┼─────┼─────┨
┃ [2] [1] │ [2] [1] │ [2] [2] │ [2] [3] ┃
┠─────┼─────┼─────┼─────┨
┃ [3] [1] │ [3] [1] │ [3] [2] │ [3] [3] ┃
┗━━━━━┷━━━━━┷━━━━━┷━━━━━┛
列*
┏━━━━━┳━━━━━┳━━━━━┳━━━━━┓
行** ┃ [0] [0] │ [0] [1] │ [0] [2] │ [0] [3] ┃
┠─────┼─────┼─────┼─────┨
┃ [0] [4] │ [0] [5] │ [0] [6] │ [0] [7] ┃
┠─────┼─────┼─────┼─────┨
┃ [0] [8] │ [0] [9] │ [0] [10] │ [0] [11] ┃
┠─────┼─────┼─────┼─────┨
┃ [0] [12] │ [0] [13] │ [0] [14] │ [0] [15] ┃
┗━━━━━┷━━━━━┷━━━━━┷━━━━━┛
0530デフォルトの名無しさん
NGNG0531詭弁の特徴のガイドライン
NGNG「犬は子供を産むが、もし卵を生む犬がいたらどうだろうか?」
2:ごくまれな反例をとりあげる
「だが、時として尻尾が2本ある犬が生まれることもある」
3:自分に有利な将来像を予想する
「何年か後、犬に羽が生えないという保証は誰にもできない」
4:主観で決め付ける
「犬自身が哺乳類であることを望むわけがない」
5:資料を示さず自論が支持されていると思わせる
「世界では、犬は哺乳類ではないという見方が一般的だ」
6:一見関係ありそうで関係ない話を始める
「ところで、カモノハシが卵を産むのは知っているか?」
7:陰謀であると力説する
「それは、犬を哺乳類と認めると都合の良いアメリカが画策した陰謀だ」
8:知能障害を起こす
「何、犬ごときにマジになってやんの、バーカバーカ」
9:自分の見解を述べずに人格批判をする
「犬が哺乳類なんて言う奴は、社会に出てない証拠。現実をみてみろよ」
10:ありえない解決策を図る
「結局、犬が卵を産めるようになれば良いって事だよね」
11:レッテル貼りをする
「犬が哺乳類だなんて過去の概念にしがみつく右翼はイタイね」
12:決着した話を経緯を無視して蒸し返す
「ところで、犬がどうやったら哺乳類の条件をみたすんだ?」
13:勝利宣言をする
「犬が哺乳類だという論はすでに何年も前に論破されてる事なのだが」
14:細かい部分のミスを指摘し相手を無知と認識させる
「犬って言っても大型犬から小型犬までいる。もっと勉強しろよ」
15:新しい概念が全て正しいのだとミスリードする
「犬が哺乳類ではないと認めない限り生物学に進歩はない」
16:反論の代わりに詭弁ということにしてすます。
「それは詭弁です。いいから詭弁なんです。」
0532デフォルトの名無しさん
NGNG"\t\t\tABCD\t\t\t\t1234"
とあって、
char *buf1;
char *buf2;
sscanf("\t\t\tABCD\t\t\t\t1234\t\t","%s%s",buf1,buf2);
とするようなコーディングでbuf1にABCD、buf2に1234と入りますか?
他に簡単に格納する方法がありますか?
0533デフォルトの名無しさん
NGNG> buf2に1234と入りますか?
試してみればわかる。
0534533
NGNG0535532
NGNG今コンパイラがなく、机上でコーディング考えてるんで…。
お願いします。
0537532
NGNG了解しました。
ありがとうございました。
0538 ◆vZrORbBkXs
NGNGmain()
{
int y,m;
int c[13],d[13];
long z,n,k,r;
int kara,made,i;
printf("A.D. ");
scanf("%d",&y);
printf("Month ");
scanf("%d",&m);
printf("n");
printf(" SUN");
printf(" MON");
printf(" TUE");
printf(" WED");
printf(" THU");
printf(" FRI");
printf(" SATn");
d[1]=31; d[2]=28; d[3]=31;
d[4]=30; d[5]=31; d[6]=30;
d[7]=31; d[8]=30; d[9]=30;
d[10]=31; d[11]=28; d[12]=31;
0539 ◆vZrORbBkXs
NGNGc[1]=0;
for(i=1;i<11;++i){
c[i+1]=c[i]+d[i];
}
z=y-1601;
k=z/4 - z/100 + z/400 +1;
n=365*z+k+c[m];
r=n%7;
kara = 1-r;
while(kara<=d[m]){
made=kara+6;
if (made>d[m])
made=d[m];
for (i=kara; i<=made; ++i){
if (i<=0)
printf(" ");
else
printf(" %5d",i);
}
printf("n");
kara+=7;
}
printf("nn");
}
これを修正して欲しいのですが(全部表示されない月があります)
0541デフォルトの名無しさん
NGNGCでも関数のオーバーロードができるんですか?
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/open.2.html
0542デフォルトの名無しさん
NGNGCでは、いわゆるオーバーロードはできません。
これは可変長引数。printfみたいな。
0543デフォルトの名無しさん
NGNGあーなるほど。可変個の引数ですか。
確かにfcntl.hでは三番目は...となっていますね。
flagsによって三番目の引数があるかないか判断しているのかな。
ありがとうございました。
0544超初心者の名無し
NGNGあるソフトのパッチを当てるのに
バイナリデータの変更で
0000E76A: 56 3b
と書いてあるのですがどういういみですか
0545デフォルトの名無しさん
NGNG本当に初心者ですね。
聞くべきスレッドを間違えるなんて。
スレ違いどころか板違いか。
0546超初心者の名無し
NGNG別のパッチでは
004167: 10 00
とADRESS部分が6文字なのですが?
エデッターでどう入れればいいのでしょうか
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNGint main(void) {
FILE *fp;
fp = fopen("hoge", "w+b");
fseek(fp, 0x4167, SEEK_SET);
fwrite("\x10\x00", 2, 1, fp);
fclose(fp);
return 0;
}
0549デフォルトの名無しさん
NGNG会社員だと思っていたが、5万円程度でもう納得したい。
参加するためにはクレジットカード番号を入力したが、男性(約20万円)を購入する。そして、負けだと思っていた。
入金されるゲームということもあり、軽い気持ちでは解約できないし。
インターネット上でギャンブル。
どうすればよいか。
http://www.kokusen.go.jp/jirei/data/200112_3.html
0550デフォルトの名無しさん
NGNG少なく読むのはかまわないですよね?
0551デフォルトの名無しさん
NGNG�@のexeで取得した変数アドレスを
�Aのexeから入力して変数の値を取得したいのですがうまくできません。
何故でしょうか?
�@---------------------------------
#include<stdio.h>
int main(void)
{
int a;
long *pnt;
printf("数値を入力して下さい:");
scanf("%d",&a);
pnt = &a;
printf("変数のアドレス:%d\n",pnt);
printf("そのアドレスに格納されている値:%d\n",*pnt);
}
�A---------------------------------
#include<stdio.h>
int main(void)
{
int a;
long *pnt;
printf("変数のアドレスを入力して下さい:");
scanf("%d",&a);
pnt = a;
printf("そのアドレスに格納されている値:%d\n",*pnt);
}
0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG物理アドレスと仮想アドレスとかの概念を教えた方がいいのだろうか...
0555デフォルトの名無しさん
NGNG0556550
NGNGありがとうございました。
0557デフォルトの名無しさん
NGNGこの場合の"39"って2バイトですよね?
これを1バイトの39にパックしろって
指令されたんですが、
1.パックってなんですか?
2.パックを実現する方法(関数等)
上記2つに関してご教授下さると幸いです。
以上、初心者ですが宜しくお願いします。
>>552って
printf("変数のアドレス:%p\n",pnt);
じゃダメなんすかね?
0558デフォルトの名無しさん
NGNGatoi、strtol、sscanf
アドレスを手動で入力させるのってかなり無理がある。
0559558
NGNG0560デフォルトの名無しさん
NGNGは、いくらなんでも冗談として、
1の質問は指示した人間にするべきかと。
余りに一般的で汎用的な言葉だけに、
その相手がどんなつもりで「パック」と言ってるかわからん。
#尤も、「おまえそんなこともわからないのか」と言われる覚悟が必要だけど。
0561デフォルトの名無しさん
NGNG一桁4bitで表現するので、0x39となる。
C言語の標準関数にはないです。
とはいえ、>>560 の言う通り一度確かめた方が確実。
0562デフォルトの名無しさん
NGNGパック十進数?
二桁なら12bit必要じゃない?
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNGプログラムを書いてくださるとありがたいです。
0565デフォルトの名無しさん
NGNG#include <stdlib.h>
int main(int argc, char **argv);
void getSeisekiData(void);
void calcHyouka(void);
void putKekka(void);
int
main(int argc, char **argv)
{
getSeisekiData();
calcHyouka();
putKekka();
return EXIT_SUCCESS;
}
/* それぞれの処理をこの後に書けば完成w */
0566557
NGNGご回答ありが�dです。
>>563
話しおわらさんといてや
int ENZAN (FILE *fp,char x,char y )
{
char z;
x&=0x0F;
x<<=4;
y&=0x0F;
z=x | y;
fwrite(&z, sizeof(z),1,fp );
}
↑こんな感じの処理をパックって
言うもんだと思ってました・・・
0568564
NGNGありがとうございます。
0570デフォルトの名無しさん
NGNG1バイトにパックってことだから、符合は考慮しないんでないの?
#寡聞にして、符号付BCDの実例を知らないんだけど。
0571デフォルトの名無しさん
NGNGキーボードをでたらめ出鱈目に打つとき、英字(A-Z, a-z)
、数字(0-9)、その他の文字の出現頻度を数えなさい。
Ex.) I am a student. Hello %Enter → a = 2, d = 1, e = 2
初心者であんまりわからないのですが
0572デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int main(int argc, char**argv);
int
main(int argc, char **argv)
{
int count[256];
int ch;
while (ch = getc() != EOF) {
count[ch]++;
}
/* 問題は出力方法 */
return EXIT_SUCCESS;
}
0573デフォルトの名無しさん
NGNG配列の0での初期化は?
0574デフォルトの名無しさん
NGNGどんなライブラリを使えばいいんでしょうか?
どれがお勧めのライブラリなんでしょうか?
0575デフォルトの名無しさん
NGNG>>1 を読んでないだろ。
0576デフォルトの名無しさん
NGNGスマソ。別スレに逝きます・・・
0578デフォルトの名無しさん
NGNG出力方法はこんなんでどうでしょ。
for (i = 0; i < 256; i++) {
if (isprint(i)) {
printf("%c: %d", i, count[i]);
}
}
0579デフォルトの名無しさん
NGNG改行しないと醜いかと。
0580デフォルトの名無しさん
NGNGおー、忘れてたよ。
0581デフォルトの名無しさん
NGNGスレ違い。
0582580
NGNG0583デフォルトの名無しさん
NGNG仕様:テキストファイルを読み込み
行数毎に異なった処理を行い
バッファにぶちこむ。
for(cnt=1; (fgets(tmp,256,ipt_fp)); cnt++)
上記のようにすれば行数は数えることが
可能ですよね?
int cntに代入された数値を利用し
switch (cnt){
case 1:
printf("(゚д゚)ウマー\n");
break;
case 2:
printf("(・A・)イクナイ\n");
break;
といった感じにしたのですが
cntを関数に引数で渡すにはどのように
すればよろしいのでしょうか?
初心者でご迷惑お掛けいたしますが
ご教授お願いいたします。
0584デフォルトの名無しさん
NGNG関数の定義の仕方がわからんということか?
void uma(int cnt) {
switch (cnt){
case 1:
printf("(゚д゚)ウマー\n");
break;
case 2:
printf("(・A・)イクナイ\n");
break;
}
}
とか定義しといて
for(cnt=1; (fgets(tmp,256,ipt_fp)); cnt++) {
uma(cnt);
}
でいいんじゃないの。それともこういうことじゃない?
0585583
NGNGありがとーございます!
なるほど、こうやって定義するんですねぇ。
勉強になります。
cntが1だったら
(゚д゚)ウマーが出力されるのか。
すげー。関数すげー。
関数(゚д゚)ウマー
0586デフォルトの名無しさん
NGNGfor(cnt=1; (fgets(tmp,256,ipt_fp)); cnt++)
という形で使えるやつが、
な ん で 関 数 定 義 が わ か ら な い ん だ ? !
0587デフォルトの名無しさん
NGNGfor は極めたが関数定義はまだ習っていないか理解が不十分。
で充分説明つくじゃないか。
0588デフォルトの名無しさん
NGNGBASICからCに入ったので、(自分で定義する)関数というものを知らなかったに100ペリカ
したがって、mainはおまじないで、main以外の関数は一切なし。
しかもgotoを多用したスパゲッティプログラムだ!
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNG逝ってよし。
0591デフォルトの名無しさん
NGNGオマエモナー
0592デフォルトの名無しさん
NGNGそんな義理なし。
0593デフォルトの名無しさん
NGNG義理チョコしかもらえないんですか
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNG//略
return 0;
}
この最後に返してる0ってなんに使うの?
子プロセスとしてプログラム動かしたら
wait(&state)とかでstateに入る数値になるの?
0597デフォルトの名無しさん
NGNGそこまで予想がついてるのなら、wait()のmanを見ればすぐ分かるよ。
statusの値そのものじゃなくて、#include <sys/wait.h> で定義されるマクロ
WEXITSTATUS(status) の値がmainの戻り値になる。
0598でふぉるとのななしさん
NGNG0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNGwaitとか出てくるのスレ違いちゃうんか?
0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNGmain()からのリターン値でコマンドが成功したか、どうか判断する!
0604デフォルトの名無しさん
NGNG>この最後に返してる0ってなんに使うの?
結論から言う、それはあんたが決めることだ
さもないとあんたの書いているアプリを使いに来る者
全員に聞いてまわる羽目になる
0605デフォルトの名無しさん
NGNG*p[3]?*p?
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNGp[1]になる。
0609608
NGNG0610608
NGNG0611デフォルトの名無しさん
NGNG0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNG0616int no_name
NGNGス(というか簡単な文法)のサイトあれば教えてもらえませんか?
0617デフォルトの名無しさん
NGNGカンニング野郎晒しage(W
0618デフォルトの名無しさん
NGNG携帯電話で開発するのですか?
0620デフォルトの名無しさん
NGNG0621int no_name
NGNG深よみしすぎ(苦笑
オレはman読む方が早い。
昔と違って時間がないの!(笑
0622デフォルトの名無しさん
NGNGプロトタイプだけまとめて自分宛にメールしたら?
0623int no_name
NGNGいいこと言うねェ。
なぜオレがそれをやらないか(笑
これは時間がないわけじゃない。
0624デフォルトの名無しさん
NGNG( ゚∋゚) ハッ!
0625デフォルトの名無しさん
NGNGどう?
0626デフォルトの名無しさん
NGNGのインストールのステップ3の方法が分かりません
0627デフォルトの名無しさん
NGNG無理せずにVisual C++ .NETを買いましょう。
0628デフォルトの名無しさん
NGNGこれか?
今autoexec.batなんか使わないだろ
2000やxpならシステムのプロパティでPATHを設定する
0630デフォルトの名無しさん
NGNG左側にある
2482 [e161]char は遅い
のリンク先
解説の
「普通の人の処理時間 370msec」って何?
悪いけど、笑ってしまいました。
0631デフォルトの名無しさん
NGNG上のプログラムのコメントを見れ。
0632デフォルトの名無しさん
NGNG「このプログラムは不正な処理を行ったので強制終了されます。」
といじめられます
それともただ単に僕がバカなだけなんでしょうか?
void shell_sort(int *array,int num)
{
int i,j,h;
int val;
num-=1;
for(h=1;h<=num/9;h=3*h+1)
;
for(;h>0;h/=3)
{
for(i=h;i<num;i++)
{
val=array[i];
for(i=i;j>=h&&array[j-h]>val;i-=h)
{
array[j]=array[j-h];
}
array[j]=val;
}
}
}
ご教授願います
0633デフォルトの名無しさん
NGNG配列の範囲を超えて書き込んでいないか調べる。
0635デフォルトの名無しさん
NGNGarrayの要素はintなのになぜNULLと比較する?
なぜarrayにNULLを代入する?
調べるってのは自分の頭を使って調べるんだ。
0636632
NGNGごめんなさい
自分の中で「領域外の要素=NULL」だと思っちゃってるんで
もし領域外の要素を使っていたらarrayにNULLを代入して
終了するってつもりだったんですが
確かに今ちゃんと考えれば実引数の内容を変える事に
なっちゃうんだからマズイですよね
0637デフォルトの名無しさん
NGNG次の辺りを抑えておくといいと思う。
・領域外かどうかの判断方法
・NULLの型
・コンパイラの警告Lvとその内容
・ソースを客観的に読む
0639デフォルトの名無しさん
NGNG(void *)型
0640デフォルトの名無しさん
NGNGCだとvoid *にキャストされた0ということが多い。
C++だとキャストなしにvoid *を他の型のポインタに代入できないから単なる0だけど。
0641デフォルトの名無しさん
NGNG数値の 0 とポインタ値の 0 (NULL) は別物なので注意。
0642632
NGNG何かの本でvoid*型は何でも代入できる汎用的な型だけど
その分色々問題もあるとか読んだ気がします
でもやっぱりそれを使いこなせてこそプログラマーなんですよね
0643デフォルトの名無しさん
NGNG別に問題なんかないと思うけど??
0644デフォルトの名無しさん
NGNG欠点が言えないのはただの盲目。
0645デフォルトの名無しさん
NGNG夜釣りは危険
0646デフォルトの名無しさん
NGNG正確に言うと void * 型は、関数型を除く、あらゆる型への
*ポインタ*を代入できる型。
0647632
NGNGそうなんですかー
確かmallocの戻り値の型はvoid*ですよね
前にキャストしてmallocを使ってるのを見たことあるんですけど
あれは意味があるんですか?
0648デフォルトの名無しさん
NGNGキャストしないと警告出るから。
0649デフォルトの名無しさん
NGNG昔はvoidがなかったからmallocの戻り値の型をchar *にしていた。
だからキャストしていたんだけど、今はstdlib.hさえインクルードすれば必要ない。
あと、C++だとキャストが必用だったかな。
0650デフォルトの名無しさん
NGNG> あと、C++だとキャストが必用だったかな。
その理由は >>640 に書いてあるよ。
0651デフォルトの名無しさん
NGNG> あと、C++だとキャストが必用だったかな。
つーか、C++ だったら new 使えよ。
0652デフォルトの名無しさん
NGNGって書きますが、stdio.の後のhって何の意味があるんですか?
ググってみても、stdioの意味は解説してあるんですが、.hの意味を解説しているページは見当たりませんでした。
あと、int main()をよく目にしますが
なぜmain()の前にintをつけるのですか?
付ける理由がわかりません。
初歩的な質問とは思いますがよろしくお願いします。
0653デフォルトの名無しさん
NGNG> stdio.の後のhって何の意味が
stdio.hというファイル名をもつファイルをインクルードしろと言う命令だから
> intをつけるのですか?
intの場合は省略可能だが、わかりやすくするため。
0654デフォルトの名無しさん
NGNGでもintをつけた場合はreturnしないとダメ
0655デフォルトの名無しさん
NGNGダウト。
0656デフォルトの名無しさん
NGNG0657655
NGNG0658デフォルトの名無しさん
NGNGハァ?
C++と勘違いしてねーか?
0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG[0が返る]ようになったのはC99/C++からだが、
C90でも [ホスト環境へ返る値が未定義] になるだけだろ?
0661デフォルトの名無しさん
NGNGただの拡張子。
自作ヘッダならべつに.hである必要は無し。
0662デフォルトの名無しさん
NGNGreturn で値を返すかどうかは、関数の型指定の int を省略したかどうか
とは関係がない。
main() と int main() は結局一緒だろう。
0663662
NGNG65 じゃなくて 654 ね。
0664デフォルトの名無しさん
NGNG・mainの型はintでなければならない。これは規格で決まっている
・mainの型を指定しなかったときはint型を返すと仮定される。
これは、Cの規約で明示的に返却値を指定しない関数はintを返すと
仮定されることによる
・いわゆるC99では、mainで値を返さなかった場合(return文やexit関数などを
経由せずにプログラムが終了した場合)、0を返すことになっている
・C99でない場合、mainはintの値を返さなければならない
これでOK?
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNG↓とするとどうもポインタのサイズを測っちゃうみたいでうまくいきません。
どうすれば配列の大きさを測るように出来ますか?
#include<iostream.h>
int main(int argc,char **argv)
{
int x[3];
cout<<"x:"<<sizeof(x)<<endl;
cout<<"argv[1]:"<<sizeof(argv[1])<<endl;
}
0667デフォルトの名無しさん
NGNGスレ違い。
0668デフォルトの名無しさん
NGNG#include<stdio.h>
int main(int argc,char **argv)
{
int x[3];
cout<<"x:"<<sizeof(x)<<endl;
cout<<"argv[1]:"<<sizeof(argv[1])<<endl;
}
0669デフォルトの名無しさん
NGNG気を取り直したらC++スレにゆけ。
0670669
NGNG0671デフォルトの名無しさん
NGNGおぉ〜Thanx!
でもどうやればポインタのサイズではなく、配列のサイズを参照できるんでしょう?
0673デフォルトの名無しさん
NGNGネタですか?
0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG#include <iostream.h>
#include <string.h> //strlen関数を呼ぶヘッダ
int main()
{
char s[] ="itteyosi";
int len = strlen(s);
cout << s << "の文字数はな " << len << " 個だゴルア!!" << endl;
return 0;
}
てだめなの?
初心者だけど・・・
0676デフォルトの名無しさん
NGNGhttp://saitama.gasuki.com/mona/
0677デフォルトの名無しさん
NGNG#include <string.h> //strlen関数を呼ぶヘッダ
int main()
{
char s[100] ;
cout << "なんか文字入れろや!!ゴルア!!";
cin >> s;
int len = strlen(s);
cout << s << "の文字数はな " << len << " 個だゴルア!!" << endl;
return 0;
}
これ、動的に文字数カウントしてるって言えるの?
初心者だけど
0678デフォルトの名無しさん
NGNG0679583
NGNG厨房です。
また同じ質問なのですが
for(cnt=1; (fgets(tmp,256,ipt_fp)); cnt++)
でchar tmp[256]にぶち込んだものを
switch文内で使用することになりました。
その際
void uma(int cnt) {
switch (cnt){
case 1:
printf("(゚д゚)ウマー\n");
break;
case 2:
printf("(・A・)イクナイ\n");
break;
}
}
上記の処理にどのように引数で渡せばよろしいのでしょうか?
ほんと厨でご迷惑お掛け致しますがよろしくお願い致します。
0680デフォルトの名無しさん
NGNGまずは無駄なfgetsのまわりのかっこをはずせ。
cntを関数に渡す?関数呼び出し時に引数リストに加えればよいのでは?
0681680
NGNGvoid uma(int cnt,char *tmp)
0682デフォルトの名無しさん
NGNG主旨あってるかな?
0683デフォルトの名無しさん
NGNG(#゚Д゚)ハァ?
0684デフォルトの名無しさん
NGNGIPアドレスを表す文字列を数値に変換する良い方法ありますか?
255.255.255.255 → 0xFFFFFFFF
っていう風に。
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNGn += 255 << 8;
n += 255 << 16;
n += 255 << 24;
とか・・・
0688684
NGNG255.255.255.255とは限らないんです。
192.168.0.1なども処理したいので。。
typedef union test{
int addr;
char A[1];
char B[1];
char C[1];
char D[1];
} addr_t;
として、
sscanf("xxx.xxx.xxx.xxx", "%s.%s.%s.%s", addr_t.A,addr_t.B,addr_t.C,addr_t.D);
とするものありですかね〜?
(↑書式怪しいです。)
でも、inet_addrの方が全然スマートですね。
0689デフォルトの名無しさん
NGNGint addr;
char bytes[4];
} addr_t;
addr_t foo;
sscanf("192.168.0.1", "%d.%d.%d.%d", &foo.bytes[0], &foo.bytes[1], &foo.bytes[2], &foo.bytes[3]);
printf("%x\n", foo.addr);
/* 不毛だ・・ */
0690デフォルトの名無しさん
NGNG%dにchar *を与えちゃダメ!!
0691デフォルトの名無しさん
NGNG%pを使ってください。おながいします。
0692デフォルトの名無しさん
NGNGhttp://www.asahi-net.or.jp/%7EVZ4H-SRUZ/ipmsg.html
に配布されてるソース眺めるとヒントあんるかも・・・
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNGたくさん本があるから、どれがいいのかわからなくて。
自分はPASCALを少し使えるくらいです。
あと、パソコンの専門用語もあまりわかりません。
よろしくお願いします。
0695デフォルトの名無しさん
NGNGまなタンのやさしいC
0696694
NGNGありがとうございます。
今度書店で探してみます。
0697デフォルトの名無しさん
NGNG>>1を読めないのか?
0698デフォルトの名無しさん
NGNGどこの誤爆だ?
・・・が、その近隣の住人なんで気になった。
4〜5軒の家だけ飛び地になってるんだよ。
0699679
NGNGご回答ありが�dございますた!
謝謝
0700デフォルトの名無しさん
NGNGテレビ番組板だね。昨日の「トリビアの泉」でやってた。
しかしなんでム板に誤爆…。
0701デフォルトの名無しさん
NGNGint *p;
i=*p++;
これは、
i=*(p++);
ですか?
0702デフォルトの名無しさん
NGNG試してみればわかるでしょ。
pが指すものをiに代入し、pの値を1ふやす。
0703デフォルトの名無しさん
NGNGそう。
リファレンス見ればわかるはずだけど、無いの?
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNGC という言語の一部ではないけど、C という処理系の一部ではある。
0706デフォルトの名無しさん
NGNGなるほど・・・
なんか他の言語にも流用できるとか・・・
0707デフォルトの名無しさん
NGNGアセンブラに流用するのが割りと見かけるようとかな。
後は、ソース解析系のツールも利用している。
0708デフォルトの名無しさん
NGNGchar ahya[16];
} PIYO;
こんな構造体があって
ポインタから要素にアクセスするときは
PIYO->ahyaになりますよね?
この要素に文字列をぶちこみたいのですが
どのようにすればよろしいのでしょうか?
御教授ください。
よろしくお願い致します。
0709デフォルトの名無しさん
NGNGsprintf(PIYO->ahya, "%.15s", "応用が利く方法");
間違っても、strncpy()を使ったり自前で一文字ずつコピーしないように。
0710709
NGNGPIYOはポインタ変数じゃないじゃないか。
なので一応フォロー。
struct hoge *pPiyo;
pPiyo = &PIYO;
strcpy(pPiyo->ahya, "後は応用しる");
0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNG0713709
NGNGstrcpy(p, "後は応用しる");
0715デフォルトの名無しさん
NGNGちょっとどうしても並列が苦手でわからないんでご教授ください
int x, ary[3];
for(x = 0; x < 3; x++) {
ary[x] = 10 * x;
printf("%d\n", ary[x]);
ってのがあったとします 「ary[x] = 10 * x;」のことなんですが
x==2としたら20がary[x]のxに代入されますよね?
その代入されたxってのはaryの要素番号じゃないんですか?
プログラムを見ると、xは要素そのものを指してるようなんですが
そこのところが全然意味わからないのです。。。
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNGつまりary[x] = 10 * x; だとary[x]のxは要素番号じゃないの? ってことなんです
0718デフォルトの名無しさん
NGNGCPUの並列処理じゃないんだから。
x==2としたら'2'がary[x]のxに入る、と思うが。
結果としてxは、要素番号だと思うが。
10*xが要素そのものか?
0719デフォルトの名無しさん
NGNG20が代入されているのはary[x]であってxではないぞよ?
0720715
NGNG実はこれまで割とすんなり勉強できてたんですが、配列がどうも納得いかないのです
「20が代入されているのはary[x]であってxではないぞよ?」ってのがどうもわかんないす
ary[x]は変数のようなものなのでしょうか? 例えば int a = 5; みたいな
それなら納得いくんですがなんか違うような・・・ほんとスマソ こんな質問しちゃって
0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNG08047a94:00:any[0]
08047a98:0a:any[1]
08047a9c:14:any[2]
08047aa0:03:x
0723デフォルトの名無しさん
NGNG配列は入れ物
アパートとかホテルの部屋のようなものを想像すればいい
0724デフォルトの名無しさん
NGNGどういう言語が主流?
0725715
NGNGなんかお邪魔してすいませんでした みんなありがとうヽ(´ー`)ノ
0726デフォルトの名無しさん
NGNG┌─┐
│ │x
└─┘
int ary[3];のイメージ
┌─┬─┬─┐
│ │ │ │ary
└─┴─┴─┘
x = 2、ary[x] = 20のとき、
┌─┐
│ 2│x
└─┘
┌─┬─┬─┐
│ │20│ │ary
└─┴─┴─┘
等幅な環境にコピペすれば判るっしょ。
0727デフォルトの名無しさん
NGNGx==2としたらary[2](ary[x])に20が代入される。
> その代入されたxってのはaryの要素番号じゃないんですか?
あくまで代入されたのはary[2]。xはaryの要素番号は正しい。
> プログラムを見ると、xは要素そのものを指してるようなんですが
纏めると、ary=配列, ary[x]=配列の要素, x=配列の要素番号
0728715
NGNGほんと感謝、感謝です 今ほんとに本気でCを勉強してるんだけど、すごくおもろいですね〜
早くC++とかできるようにがんがります ほんとありがとうね!
0729デフォルトの名無しさん
NGNGshellapi.hをインクルードして
bcc32 -W ソースファイル.c でコンパイルしてるのに、何故ですか?
0730デフォルトの名無しさん
NGNGリンクエラーでしょ?
必用なライブラリをリンクするようにリンカーに伝えればよい。
方法はスレ違いなので、Borlandフリーコンパイラスレできいてね。
0731デフォルトの名無しさん
NGNGエラーの内容を書かないのに診断できると思うのか?
0732708
NGNGミナサソの御教授を元に
下記のようにやってみますた。
void OrehaAfo (int i,char *s, struct uma *ahya){
char hoge[512];
char dmy[512];
switch ( i ) {
case 1:
sscanf( s, "%x #%s", &hoge, &dmy );
strcpy(ahya->priority, hoge) ;
printf("buf NO.1=%s\n",&CMQ->priority);
break;
case 2:
ってな具合にしたんですが,コンパイル時に
警告: ポインタ/整数の組み合わせは不適切です: 1 番目の引数
という警告がでてしまいます。。。
わからんっす、わからんっす。
異常な点をご指摘していただけるとありがたいのです。
異常なのはオマエの脳内とか勘弁してください。
よろしくおながいします。
0733デフォルトの名無しさん
NGNGsscanf( s, "%x #%s", &hoge, &dmy );の&dmyとprintf("buf NO.1=%s\n",&CMQ->priority);の&CMQ->priorityの&は不要でしょ?
あと、配列名に&をつけてはだめ(&hoge)。sscanfの%xにはint *を与えること。
0734733
NGNG0735733
NGNG0736デフォルトの名無しさん
NGNGchar buf[10000] = {0};
char *p = buf;
int ret;
while (ret = read(0, p, 100) > 0) {
p += ret;
}
これで合ってますか?
0737デフォルトの名無しさん
NGNG無駄無駄無駄あぁぁッ
0738デフォルトの名無しさん
NGNGでも、それ以外は間違いないですか?
0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNG0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNGうまく動きそうです
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNGstringstream ss;
ss << cin.rdbuf();
が正解
0746デフォルトの名無しさん
NGNG0747732
NGNGstruct hoge{
int t;/* ヘキサでぶち込む用 */
char s;/* ヘキサでぶち込む用 */
char ss[16];/* 文字列用 */};
上記のような構造体がありまして
void MajiWakaran (int i,char *s, struct hoge *piyo){
char hoge[512,odamy[512];
switch ( i ) {
case 1:
sscanf( s, "%x #%s", &hoge, &odamy );
strcpy(&piyo->t, hoge) ;
printf("int t = %s\n",&piyo->t); break;
case 2:
sscanf( s, "%x #%s", &hoge, &odamy );
strcpy(&piyo->s, hoge) ;
printf("char s = %s\n",&piyo->s);break;
case 3:
sscanf( s, "%x #%s", &hoge, &odamy );
strcpy(piyo->ss, hoge) ;
printf("char ss = %s\n",&piyo->ss);break;
上記のような関数があります。
printfした結果、int tとchar sが空白になってしまいます。
この関数は
for( CNT=1; fgets(dmy2,256,ifp) !=NULL; CNT++){
Fhk_ipTRSF(CNT,dmy2,&piyo);}
↑のような使用法でmain関数内に配置しております。
int tとchar sが空白になってしまう原因を御教授いただけると幸いです。
お願い致します。
0748747
NGNGファイルから読みこんだバッファは
void MajiWakaran (int i,char *s, struct hoge *piyo){
のchar sに格納されているはずでして、
int tには"0F680000"
char sには"01"が入っております。
0749デフォルトの名無しさん
NGNGprintf("int t = %d\n",piyo->t); break;
printf("char s = %s\n",piyo->s);break;
0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNG配列変数をポインタとして評価した時、& があるか無いかでは型が違うから気をつけろ!
0752デフォルトの名無しさん
NGNGのようにして標準出力をファイル出力に変えたのだが、
もとのコンソール出力に戻にはどうすればいいの?
0753752
NGNGfreopen("/dev/console", "w", stdout);
freopen("CON", "w", stdout);
のように直接指定しなければならないのね。
0754デフォルトの名無しさん
NGNGint a = isXXX();
a &= isYYY();
とお馬鹿なコードを書いていたらバグりました。
1行目が1を、2行目が2を返していたからです。
「isXXX()かつisYYY()でaは非0」のつもりが、(1&2)、そう、0ですた。
↑これに対する修正をしていて、ふと思ったこと。
(2&&4)
が返す値は、1?2?4?
0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNG一度別の変数に入れて調べるしかないのでしょうか?
str[0]の文字コードを調べる時には
char str[] = "ABC";
char buf;
buf = str[0];
printf("%d",buf);
別の変数に入れずにスマートに行きたいのですけど
この方法以外でないのでしょうか
0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNG質問です。
array1[N]に対して何らかの処理(ソートなど)を行い、
array2[N]、array3[N]・・・と名前の違う配列にまったく同じ処理を
行う場合に、同じ処理を繰り返し書かないようにしたいです。
ポインタを使って解決するにはどうすればよいでしょうか。
0760デフォルトの名無しさん
NGNG0761デフォルトの名無しさん
NGNGいっそ、2次元で配列を確保して
forループのなかで array[i][j]で行う
0762デフォルトの名無しさん
NGNGint *array[M] = {array1, array2, array3, ・・・};
という感じでいいですか?
0763デフォルトの名無しさん
NGNGfp = fopen( C:\\WINDOWS\\DATA.txt, "a+" );
a+モードで開いた既存の(既にデータが入っている)テキストファイルに、
ファイルの先頭から新たに(全てのデータを消して)書き込みたいのですが
どうもうまくいきません。(rewindとかfseekとかやってみましたが )
既に入っているデータを使用して計算し結果を同じファイルに出力するため
a+モードでやらなければなりません。
スマートなやりかたはないでしょうか。
0764デフォルトの名無しさん
NGNGint *arrays[] = {array1, array2, array3,};
int ic;
for (ic = 0; ic < numberof(arrays); ic++) {
nanrakanoshori(arrays[ic]);
}
定数Mはやめとけ。
0765デフォルトの名無しさん
NGNG"a"や"a+"は「追加」のためのモードなのでファイルの先頭には行けない。
既存のファイルの先頭にもアクセスしたいなら"r+"で開いて自分でfseek()すればいい。
0766747
NGNGご回答アリガ�dございます。
ご指摘くださった方法で
コンパイルは通るのですが
実行しますと
core dump吐きます。。。
セグメント例外(コアダンプ)と・・・
int t は表示されるのですが
(でも、"0"がかえってくる・・・)
char sは表示されないので
char sに問題があるようなのですが
わかりません。。。
再度でもうしわけございませんが
御教授お願い致します。
0767デフォルトの名無しさん
NGNG>>733は無視かい?
0768デフォルトの名無しさん
NGNGツッコミどころ満載で何処から手をつけていいやらなんだけど、
sscanf()の第3パラメータは激しく間違い。
#sscnaf()とprintf()、構造体の使い方をそれぞれきっちり理解してから組み合わせよう。
0769766
NGNGご指摘ありがとうございます。
void OrehaAfo (int i,char *s, struct uma *piyo){
char hoge[512];
char dmy[512];
switch ( i ) {
case 1:
sscanf( s, "%x #%s", hoge, dmy );
strcpy(piyo->t, hoge) ;
printf("buf NO.1=%s\n",piyo->t;
break;
case 2:
sscanf( s, "%x #%s", hoge, &odamy );
strcpy(piyo->s, hoge) ;
printf("char s = %s\n",piyo->s);
break;
というような具合に修正したのですが
同じ結果です。
sscanf()の第3引数が腐ってるとのことですが、、、
正直ど厨初心者でよーわかっておりません、、、
ご指導 き ぼ ん ぬ 、、、
0770デフォルトの名無しさん
NGNG(1)"%x"の意味は判る?
判ってないならごちゃごちゃ修正せずにsscanf()だけのサンプルつくって納得いくまでやってみな。
(2)intへstrcpy()しようとしているけどこれも判ってないっしょ。
判ってないなら(以下同文)。
(3)承知してやってるなら別だけど、構造体のタグと同じ名前の変数は定義するな。
兎に角いっぺんにやろうったって無理だって。
0771デフォルトの名無しさん
NGNGError: >>747/>>769 int,char,char[],*char などのデータ型が理解できていません
Worning: >>747/>>769 ポインタと実体が理解できていません
間違いの有無を別として、ソースを見ても仕様が理解できないのはめずらしいのだが
0772デフォルトの名無しさん
NGNG0773デフォルトの名無しさん
NGNG708から延々と見ていくと少しは判るかも。<仕様
#漏れは判らなかったから任せた。w
0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNGWinnyでひっかからないんですけど(T_T)
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNGVTune買うと付いてたと思ふ
0781デフォルトの名無しさん
NGNGC言語ってC++のことですか?
__________________
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNG0784釣り針
NGNG2次元配列をその関数の引数として渡したい場合、
その関数を呼び出す側は、どのように実引数を渡せばよいのでしょうか?
(ただし、関数の仮引数がポインタ変数のポインタ変数であることは
変更不可、という条件があります)
#include <stdio.h>
void mess(int **p);
int main(void){
int i, j;
int **p[2][2], *p2[2][2], p3[2][2];
for(i=0; i<=1; i++){
for(j=0;j<=1;j++){
p2[i][j] = &p3[i][j];
p[i][j] = &p2[i][j];
**p[i][j] = i*j;
printf("%d\n", **p[i][j]); /* 値は正しく入っている */
}}
printf("\n");
mess(*p); /* ここはどうすれば? */
return 0;
}
void mess(int **p) /* 問題上、定義側がポインタのポインタであることは変更不可 */
{
int i, j;
for(i=0; i<=1; i++){
for(j=0;j<=1;j++){
printf("%d\n", p[i][j]);
}}}
0785釣り針
NGNG0786デフォルトの名無しさん
NGNG*str[]
str[][]
これらのいずれも同じように感じるのですが、どうなのでしょうか?
0787デフォルトの名無しさん
NGNG0788763 >>765ありがとうございます。
NGNGfp = fopen( "C:\\WINDOWS\\DATA.txt", "?????" );
ううう、>>763で既存のファイルを開くと書きましたが、
ファイルがない場合は新しくファイルを生成する必要がでてきました。
ファイルがある場合は書き込まれているデータを使用して計算し結果を同じファイルに出力します。
fopen( "C:\\WINDOWS\\DATA.txt", "rw+" );
↑だとDATA.txtがない場合はファイルを新しく作ってくれるのでいいのですが、
DATA.txtがある場合はファイルを壊して新しく作ってしまうので使えません。
また、ファイルの先頭からデータを書き込むので"a+"や"a"は使用できません。
つーか、ファイルがあるかないか調べてある場合とない場合でfopenのデリミタの指定を変える必要がある?
それだとスマートじゃないような。。。
よろしくお願いします。
0789デフォルトの名無しさん
NGNGWindowsならCreateFile使えばいいじゃん。
パラメータは自分で調べろ。
0790デフォルトの名無しさん
NGNG0で割るとかそういう類のものなのでしょうか?
0791デフォルトの名無しさん
NGNG変態がイパーイいるサイトでつ!ヨロシク!!
http://homepage2.nifty.com/tikan/
0792デフォルトの名無しさん
NGNGyes.
但し処理系依存。
例外出さずにInfやNaN返すような処理系も有る。
0793デフォルトの名無しさん
NGNGおぉ、有難う!
0794デフォルトの名無しさん
NGNGその書き方も処理系依存だから、無限大値 (Infinite) とか非数値(Not a number)
とか書いた方が。
0795デフォルトの名無しさん
NGNGそれらが同じ意味を持つのは関数の引数で現れたときだけだ。
変数の宣言(定義も含む)を行ったときはその三つは全然違う意味になる。
0796en252.ade.ttcn.ne.jp
NGNG変えたいんだけども以前の関数と同じ動作をするかどうかを
全パスチェックするのは大変なので、この際処理時間は無視していいから
ロジックとして同じ動作をすることを証明してくれる
ソフトってないでしょうか?
0797デフォルトの名無しさん
NGNG**str ポインタのポインタ
*str[] ポインタの配列
str[][] 二次元配列
ポインタはアドレスを保管しておく変数である。
例えば配列の先頭アドレスを保管しておいて、
配列の様に使うことができる。
その場合、配列の置いてある場所と
ポインタの置いてある場所は別であることは
十分注意しなければならない。
配列にはそのようにアドレスを保管しておく場所は存在しない。
従って、メモリ上に置かれるのは
配列そのもののみである。
これらのことを考慮に入れて、
それぞれメモリ上にどう置かれているか、
紙の上に書いてみよう。
0798795
NGNG補足ありがとさん。不親切な書き方だなと反省してた(w
んで、>>797は変数の宣言・定義の時のことな。
関数の宣言の引数に現れたときは三つとも同じ**pと見なされる。
0799デフォルトの名無しさん
NGNGどういう状態であれば 「同じ」 と判断できるのか、条件を言ってみてくれ。
0800デフォルトの名無しさん
NGNGアルゴリズムの自動証明ソフトなら作れば大金持ちになれそうだな
実際に全ての入力についてチェックするのは実質的に無理だな、
内部状態があるとなお大変だ。自分で証明するしかないだろ
0801デフォルトの名無しさん
NGNG両モジュールに適当にいろいろなデータぶち込んで、
出力値が同じになるかどうかを確かめるというのはだめかの…?
0802デフォルトの名無しさん
NGNGその労力を惜しんでいるものと思われ
0803デフォルトの名無しさん
NGNG0804763 >
NGNGありがとうございます。
調べてみます。
0805デフォルトの名無しさん
NGNG違いますよ。
関数の引数では
**p ポインタへのポインタ
(*p)[N] 配列へのポインタ
*p[N] ポインタへのポインタ(Cでは本当は末ウ理だったはず=j
p[M][N] 配列へのポインタ(Cでは本当は無理だったはず)
となります。
こういった違いは二次元配列をソートする関数を
作る時とかに重要になります。
0806デフォルトの名無しさん
NGNG構造体リストとか構造木には使えると分かるのですが
0807デフォルトの名無しさん
NGNG不要だと思うなら使うべきではない。
でも、文字列操作とかにはよく使うし、動的メモリ確保をするならポインタに
頼らざるを得ない。
0808806
NGNGそういえば確かにmallocとかは対象がポインタじゃないとダメですよね
も1つ質問なのですが変数宣言で
char array[]="iteyo-shi";
と宣言したとします
これをポインタを使って宣言すると
char *array="iteyo-shi";
でいいんですか?
違うような気はするのですが厨房なので違いが分かりません
ご教授お願いします
0809デフォルトの名無しさん
NGNGよく見かけるのですが、上記のようなケースで sin() の戻り値を
明示的に FLOAT型へキャストする必要はあるのでしょうか。ちなみに
typedef float FLOAT; となっているようです。
0810ミ,,゚Д゚彡
NGNGhttp://www.catnet.ne.jp/kouno/c_faq/c6.html
>>809
普通、sin の戻り値は double だと思うのだが。
0812デフォルトの名無しさん
NGNG明示的に書いておきたいだけじゃないの?
そもそもfloat使う段階で普通じゃないから理由がわかんないけど。
0813デフォルトの名無しさん
NGNGfloatはDirect3Dのハードウェアとの整合性うんぬんの話では
C++コンパイラは型キャストに厳しい
0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNGlintを黙らせる為にそういうことをすることはある。
0816809
NGNG特に意味があるキャストではなさそうなので安心しました。
C# では double → float でキャストが必要みたいなので
混乱しそうですね。
0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNGどこか弄らないといけないのでしょうか?
環境はCygwinです。
0819デフォルトの名無しさん
NGNGそれができないならライブラリを評価する順序を変えるしか。
0820デフォルトの名無しさん
NGNGchar array[]="iteyo-shi";
char *array="iteyo-shi";
実体が何処におかれるか?だな。
array[]="iteyo-shi";
こっちは実体。
んで、
char *array="iteyo-shi";
こっちはcharのポインタがさすどっかのアドレスに
"iteyo-shi"を代入してるつう事では?
危なくねぇ?それって。
俺も糞厨房なんだけど。
0821デフォルトの名無しさん
NGNG> こっちはcharのポインタがさすどっかのアドレスに
> "iteyo-shi"を代入してるつう事では?
アフォ。"iteyo-shi" が書いてあるどっかのアドレスを array に代入してんるんだ。
危なくはない。
ただし、*array = 'I'; とかした時の挙動は異なる。(ことがある)
char array[] = "iteyo-shi"; ならちゃんと "Iteyo-shi" になる。
char *array = "iteyo-shi"; だと何が起こっても不思議ではない。
0822デフォルトの名無しさん
NGNG後者は文字列リテラル定数のアドレス。
参照するだけで、そこの実態を書き換えなければ問題無し。
0823デフォルトの名無しさん
NGNGchar *array = {"itte", "yosi", "kana"};
0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNGchar *array[3] = {"itte", "yosi", "kana"};
0826デフォルトの名無しさん
NGNG何を目的としたコードなんだ?
0827823
NGNGすんまへん。そういうつもりでした。
で、>>825ならOKで?
疑問なのは、文字列リテラルの寿命ってどうなってるのかなっつーことでし。
なんとなく、普通の変数(>>825のarrayなんか)より寿命が長そうなので、
いいかなと思ったんけど、あんまりそういうコード見ないし、疑問なんです。
0828デフォルトの名無しさん
NGNG静的変数と同じ。
0830デフォルトの名無しさん
NGNGchar a[] = "itteyo-shi";
char *p = "itteyo-shi";
後者で何が起こっても不思議じゃないなんてこたない。
どっちも規格に合致してる書式だし、実際に問題の起こる処理系は見たことない。
aはaというラベルのついてる11バイトの領域に文字列「itte-yoshi\0」が入ってる。
a |i|t|t|e|-|y|o|s|h|i|\0|
pはpというラベルのついてる領域に、どっかにある「itte-yoshi\0」という文字列
の先頭を指す値(ポインタ)が入っている。
p |ポインタ| → |i|t|t|e|-|y|o|s|h|i|\0|
斯様にポインタと配列はまったくの別物であるが、Cの場合大抵の場面で
ポインタと配列は同じように扱えるってだけの話。
ただし、pのように初期化したときに取られる文字列の領域を書き換えてはいけないと
規格では書かれている。
もし書き換えたら、(この場合に限り)何が起こっても不思議じゃない。
0831デフォルトの名無しさん
NGNGhttp://www1.cts.ne.jp/~clab/hsample/Point/Point19.html
0832デフォルトの名無しさん
NGNG多分>>821の内容を誤解してる
0833デフォルトの名無しさん
NGNGちょっと古い本だが、「エキスパートCプログラミング」がお勧め。
http://www.ascii.co.jp/books/detail/4-7561/4-7561-1639-6.html
というか、Cでプログラム書くやつは必読書だとさえ思う。
0834デフォルトの名無しさん
NGNGまさにそのことを821は言ってるんだと思うのだけど。
0836デフォルトの名無しさん
NGNGおお、そうかそうか、読みきれてなかった。
アフォですた、すんません。
0837デフォルトの名無しさん
NGNG>ポインタと配列はまったくの別物であるが、Cの場合大抵の場面で
>ポインタと配列は同じように扱える
というのはまちがいで、
1.Cにはポインタはあるが配列はない
2.*(p+n)のシンタックスシュガーとしてp[n]がある
という方がすっきりしてると思うんだけど。で、
char a[] = "itteyo-shi";
char *p = "itteyo-shi";
では、aもpもポインタ。
ただ、どこに文字列データが確保されるかの違い、という説明。
どうすか?
0838デフォルトの名無しさん
NGNGだめ。大域変数で
char a[] = "itteyo-shi";
char *p = "itteyo-shi";
なんて定義があったとして、別のファイルで
extern char *a;
extern char p[];
なんてやったらどうなる?
0839デフォルトの名無しさん
NGNGポインタ(配列の先頭要素を指す)に成り下がる。
0840839
NGNG>場合だけ
場合の除いて
0841837
NGNGえーと。a[]と*aが互換というつもりはありませんのでした。
「aもpもポインタである」というだけで、aが「変数」かどうかは別です。
>>839
まあ、そういう見方もわかりますが、たとえば、
"abcd"[2]
なんかでは、ポインタが配列に成り上がるのでしょうか?
個人的には、言葉の定義は、多数の意見が「正解」なんだと思うので、
自分が正しいというつもりはないんですけど。
0842806
NGNG何かの本で文字列リテラルは配列だと読んだことがあるのですが
要するに
char *p="iteyo-shi";
は
char array[]="iteyo-shi";
char *p=array;
と同じだってことですよね?
0843デフォルトの名無しさん
NGNGchar *p ="itteyoshi";
上のをauto変数でやると、毎回コピーされるから、かなり遅くない?
0844デフォルトの名無しさん
NGNGフザケンナ!!
0845デフォルトの名無しさん
NGNG配列名は配列の最初の要素のアドレスを指すが
ポインタではないのでインクリメントできない
0846デフォルトの名無しさん
NGNGなるべくコード上で#ifdefとか使ってエンディアンを区別せずに
makefileかヘッダでどの処理でもビッグエンディアンにする方法がありましたら
ご教示下さい。
0847デフォルトの名無しさん
NGNGいや、多数の意見が正解じゃなくて規格に書いてあることが正解。
規格そのものは(多分)多数決で決まってるんだと思うけどね。
0848デフォルトの名無しさん
NGNGの場合、どちらも非constなので問題なし。
char *p = "itteyoshi";
の場合、右辺はconstなのでconstへのポインタから非constへのポインタの代入なので警告対象。
勿論、
char const *p = "itteyoshi";
ならば、どちらもconstなので問題なし。
但し、
p[0] = 'I';
とすると、その時点でエラーになるはず。
>>843
前者は文字列のコピーが発生するが、後者はポインタのみの代入。
0849デフォルトの名無しさん
NGNGほうがいいと思うな。文字列リテラルを書き換えようとしたり。a が
ポインタなら a = p; が許されないのはどうしてか、とか。sizeofの
結果も。あとで混乱の元になりそう。
0850837
NGNGなるほど。インクリメントできないものをポインタとはよべない。
うー、説得力あります。
それと、>>839をよく考えたんすけど、
sizeofの挙動は、ポインタだけでは説明できない、かな?
sizeofは、どうやって配列の終わりを知るんでしょう?
なんか、負けたような気がします。
0851デフォルトの名無しさん
NGNGint a[10];
は、
int *a = alloa(...);
と等価としたらいいやん。
0852デフォルトの名無しさん
NGNGないんじゃないかな。
エンディアンを気にする部分を関数群に閉じ込めちゃって
他ではエンディアンを気にせずコーディングするってのが
定石でしょう。でもそれが使えないってことなのかな…
たとえば「#ifdef使っちゃだめ」ってアフォな規則あるとか。
0853デフォルトの名無しさん
NGNG配列のサイズはコンパイル時にわかってるから、
sizeof(配列)なんてのがあったらコンパイラは
配列のサイズに置き換えるだけの話。
0854デフォルトの名無しさん
NGNGopenlogして設定して、syslogを実行します。
closelogせずにopenlogを再度実行して、
syslogを行い、closelogすると、
設定は最初のopenlogに戻る?
どうすれば戻るようなコーディングできる?
0855デフォルトの名無しさん
NGNG>>850の言うようにsizeofはどうするんだ?
0857850
NGNGなるほどです。
でも、そうすると、sizeofそのものがちょっと「いんちき」みたいな。
でも、そんなこと言うと、デンパですかね。
>>848は、いろいろおもしろいものを含んでいるような気がしますが、
眠いので落ちます。
0858806
NGNG型のサイズ×配列のインデックスでアドレスがその分だけ進められるんですよね?
例えばsizeof(char)=1の環境で
char a[]="iteyo-shi";という宣言があったとして
&a[0]=0x0000000だったとすると&a[1]=0x0000001になるはずだから
sizeof(char)*1=1で0x0000000に1がプラスされて0x0000001になって
そのアドレスにオペランドとしてアスタリクをつけて
変数の内容を参照するわけですね?
長い&分かりにくくてスマソ
0859デフォルトの名無しさん
NGNGその理解であってると思うぞ。
0860デフォルトの名無しさん
NGNGこれは、a という配列を確保し、
それを "itte-yoshi!" で初期化するというもの。
char *p = "itte-yoshi!";
これは、"itte-yoshi!" という文字列リテラルのアドレスで
p を初期化するというもの。
文字列リテラルがどこに確保されるかはOSによって違うが、
多分静的であることは保証されてると思ってていいんじゃないかな。
あと、OSによっては書き換えを禁止されている領域に確保されるから、
*p = 'I'; なんてことをすると、書き換えちゃダメ! ってエラーが出ることがある。
OS依存だから、あー、エラーが出ないから使っていいんかなー、
とか思ってる人がいるかもしれないが、それは即刻やめること。
そのOSのバージョンが上がった場合にも相変わらずエラーが出ない、
ということは期待できない。
*a = 'I'; の場合は、a という配列を新しく作っている
(文字列リテラルそのものではない)ので、書き換えることができる。
0861854
NGNG0862デフォルトの名無しさん
NGNG激しくスレ違い
よくわからんが UNIX の話なのなら UNIXプログラミング質問すれにでも逝け
0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNGを
char *p;
strcpy(p, "literal");
と混同して危険だと思ってるヤツもいるかもね。
0865デフォルトの名無しさん
NGNG> char *p = "itteyoshi";
> の場合、右辺はconstなので
互換性のために、これはダウト...だったはずだが、最近は違うのか ?
0866デフォルトの名無しさん
NGNG曖昧な記憶だけで書くのだけど。
char *p = "itteyoshi";
で初期化した場合、pが指す先にある領域を書き換えてはいけないというのは、
void mona(void) {
char *p = "itteyoshi";
}
void giko(void) {
char *q = "itteyoshi";
}
みたいなふたつの関数があったときに、pとqが指す先が同じものであっても
よいようにするためだったと思う。場合よってはバイナリサイズが劇的に
小さくなるからね。
実際、MS-DOSの頃メモリが苦しくて、そういう風に処理してくれるオプションが
MS-Cにあったんで重宝してた。今はあんまり気にしないのでどうなってるかしらんが(w
0867デフォルトの名無しさん
NGNGそのためにあるのがntohs()と仲間たち。
0868デフォルトの名無しさん
NGNG文字列リテラルの型は大抵constがつかないと思うけど。
0869デフォルトの名無しさん
NGNG0870デフォルトの名無しさん
NGNGどんな釣りをしてるのか詳細キボンヌ
0871デフォルトの名無しさん
NGNG0872デフォルトの名無しさん
NGNG#include "/dev/console"
#endif
0873デフォルトの名無しさん
NGNGPascalのポインタまでしか理解してないですけど、
K&R本はこんな俺に理解できるシロモノですか?
0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNGvoid *nurupo(void){printf("ぬるぽ\n");if(nurupo()==(void*)0)nurupo();return (void*)0;}
void main(void){nurupo();}
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNG#include "/dev/tty"
だろ
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNGセキュリティのために、コンソールのみに限定してます。
0880デフォルトの名無しさん
NGNG分割するにしても数字がでかすぎて下位の数字が消えちゃうし…
0881デフォルトの名無しさん
NGNG2.0e+50
じゃいけないの?
0882デフォルトの名無しさん
NGNGうわ、880の間違いだ・・・
0883デフォルトの名無しさん
NGNGそれがダメなんですよ…
0884デフォルトの名無しさん
NGNG08852進表現
NGNG0886デフォルトの名無しさん
NGNG2.0e+50は2.0×10^50でつよ。
>>881
VCなら
printf("%I64d", 0x4000000000000I64);
GCCなら
printf("%lld", 0x4000000000000L);
で表示できるはず。
0887886
NGNG0888デフォルトの名無しさん
NGNGどういうものなのでしょうか?
ご教授いただけると嬉しいのですが…
0889デフォルトの名無しさん
NGNG私馬鹿じゃん(TT)
0890デフォルトの名無しさん
NGNG"long long int"型がコンパイルエラーになるのですが…
0891デフォルトの名無しさん
NGNGsageでよろしく。
で、コンパイルオプションでlong long型を禁止してないかチェックした?
0892デフォルトの名無しさん
NGNGそれはどういうことでしょうか?
単に
bcc32 main.cpp
とタイプしてますが…
0893デフォルトの名無しさん
NGNG質問は age で良いとおもうけど...
>>892
> bcc32 main.cpp
って、おい、ネタかよ。
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG> __int64 で64ビット整数を扱うことができます。
> __int64 は printf("%Ld"); で表示できます。
http://homepage2.nifty.com/DRG/computer/column.html
0896デフォルトの名無しさん
NGNGとりあえずの目標は2^40とかを数字で表示する事ですから直接main.cppで実験してます。
確認作業も楽ですし…
0897デフォルトの名無しさん
NGNG使い方と定数の書き方&printf()の修飾子は↓のような感じで
__int64 i ;
i = 1i64 << 50 ;
printf ( "%Ld\n", i ) ;
と言うか、もろに環境依存やね…
0898デフォルトの名無しさん
NGNG細工しとくのがいいのかね。
0899897
NGNG0900デフォルトの名無しさん
NGNG"__int64"にて無事解決しました!
bccとgcc間違えてた…
0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNGlong long のエイリアスになってたような・・・。
0903デフォルトの名無しさん
NGNGgcc (GCC) 3.2 20020927 (prerelease) (Cygwin)
jni.h に int64_t ってのならあったけど、
この後ろについてるのはなんじゃらほい。
変数のサイズ指定かな?
typedef int jlong __attribute__((__mode__(__DI__)));
typedef int64_t jlong;
0904デフォルトの名無しさん
NGNGMinGW gcc 2.95.2 で通ったコード。
#include <iostream>
#include <typeinfo> // これが無きゃダメぽ?
using namespace std;
int main()
{
__int64 i = 1234567890;
cout << i << endl;
return 0;
}
0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG己、自らがが実験台になってください。
0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNGC言語なら、俺に聞け! <50>
http://pc2.2ch.net/test/read.cgi/tech/1044938752/
0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNG二進化十進符号か?
0915デフォルトの名無しさん
NGNGおいおい無いぞ。
0916デフォルトの名無しさん
NGNGC言語なら、俺に聞け! Part 51
http://pc2.2ch.net/test/read.cgi/tech/1046104909/l50
0917デフォルトの名無しさん
NGNGC言語なら、俺に聞け! Part 〈52〉
http://pc2.2ch.net/test/read.cgi/tech/1047275669/l50
0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNG0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNGガッ
埋め立て 残り72
0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNG40分ほどわかりませんでした。頭が鈍ってるなぁ、寝よう。
埋め立て 残り70
0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNGこら、ハードコーディングするなよ。再利用できないだろ。
int i = 68;
/* --- 以下ここからコピペスレ --- */
printf("%3d\n", i--);
0933デフォルトの名無しさん
NGNG0934うんうんいいぞ。
NGNG0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNGi--;printf("埋立 残り%3d\n", i--);
0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>937
0939デフォルトの名無しさん
NGNGi--; printf("埋立 残り%3d\n", i--);
0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNGだったら、printf("埋立 残り%3d\n", 1000 - __LINE__); でいいかい ?
0942デフォルトの名無しさん
NGNG0943デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNGちょっと教えて下さい
C++を勉強してます。ポインタ、配列、関数までは理解できました。
ttp://homepage1.nifty.com/toshio-k/prog/c/index.html
(ここで学びました)
でもここで議論されていることがさーぱり判りません
次になにをしたらいいでしょうか?
ご指導お願いします。
0947デフォルトの名無しさん
NGNGまずは、CとC++の違いを知る事だ。
0948デフォルトの名無しさん
NGNG> 多分スレ違いだと思うので最初に「ごめんなさい」
謝ればいいというもんでもない。
そんな暇があるなら、スレ一覧をじっくり眺めること。
> C++を勉強してます。
ここのスレタイトル見たか ?
C と C++ の区別もできないようならこの業界に向いてないから、「次に何もするな !!」
これが俺の指導だ。
0949デフォルトの名無しさん
NGNGprintf("埋立 残り%3d\n", 1000 - __LINE__);
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG>C と C++ の区別もできないようならこの業界に向いてないから、「次に何もするな !!」
>これが俺の指導だ。
そんな言いぐさがあるかこの大馬鹿がお前は社会に向いてないか「明日氏ね」
これが俺の指導だ
0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNGうめうめ。
0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNGマジ質問なら、こう答える。
「仕事にしたいなら、まずUMLとGoFを学べ。それからだ。
C言語なんて使える奴はいくらでもいる。」
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNGここは埋め立て予定地です。
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNG0966966
NGNG0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNGprintf("残り 0x%02x;\n", 1000 - __LINE__);
0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNG∧_∧
( ´∀`)< ぬるぽ
0975デフォルトの名無しさん
NGNG∧_∧
( ´∀`)< ぬるぽ〜
0976デフォルトの名無しさん
NGNG∧_∧
( ´∀`)< ぬるっ ぽ
0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG( ・∀・) | | ガガッ
と ) | |
Y /ノ .人
/ ) .人 < >__Λ ∩
_/し' < >_Λ∩Д´)/
(_フ彡 V`Д´)/ / ←>>974
/ ←>>975
0979デフォルトの名無しさん
NGNG/ | / | <なっ、なんてことするんだ!!!
/,_ ┴─/ ヽ , 、 ,、
(・_.,》.'(・_,》)ミ ヽ . / L--/ l、
/ ,,__,ニ、、 ノ( | (・;;》 (・;;》 | /L--/l、
| Y~~/~y} `, ~ | |y-,‐vi`ノl | (・.》 (・.》 l /L--/l、
| .,k.,.,!,.,.,r| ,! く |, kl r| i ^< | 'fT~ヲ x (・〕_(・〕x| /L/l <イクナイ
/ <ニニニ'ノ \ / (二二‐ ' \ / l==_」 < l fmヨ ! L〔゚fヲ゚.〕、.。., .
0980デフォルトの名無しさん
NGNG(´∀`) <ぬ
( つ つ
) ) )
(__)_)
0981デフォルトの名無しさん
NGNG(´∀`) <る
⊂ ⊂ )
( ( (
(_(__)
0982デフォルトの名無しさん
NGNG∩´∀`) <ぽ
ヽ ⊂ )
( ( (
(_(__)
0983デフォルトの名無しさん
NGNG| | ガガガガッ
( ・∀・) | | 人
と ) | | 人 < >__Λ∩
Y /ノ .人 < >__Λ∩Д´)/
/ ) .人 < >__Λ ∩Д´)/ / ←>>976
_/し' < >_Λ∩Д´)/ / ←>>980
(_フ彡 V`Д´)/ / ←>>981
/ ←>>982
レス数が950を超えています。1000を超えると書き込みができなくなります。