トップページ⇒tech
1001コメント287KB

スレを勃てるまでもないC/C++の質問はここで 5

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆h6A7qfFFu6 2008/12/29(月) 11:05:07
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
http://pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
http://pc11.2ch.net/test/read.cgi/tech/1178503366/
スレを勃てるまでもないC/C++の質問はここで 3
http://pc11.2ch.net/test/read.cgi/tech/1187521676/
スレを勃てるまでもないC/C++の質問はここで 4
http://pc11.2ch.net/test/read.cgi/tech/1221633708/
0655デフォルトの名無しさん2009/01/04(日) 13:54:22
>>654 thx
本当だ
初心者歓迎C/C++室の方がレベルが高いw
0656デフォルトの名無しさん2009/01/04(日) 14:00:01
宿題スレにだけは足を踏み入れる気がしない。
0657デフォルトの名無しさん2009/01/04(日) 14:03:05
宿題スレだってピンからキリまでだよ。
アホも多いけどレベル高い人もちゃんといる。
0658デフォルトの名無しさん2009/01/04(日) 14:46:51
>>649
> 自ら試す
コンパイラが通せば正しいとは限らないんだが・・・
それを指摘されてファビョったキチガイですね?分かります。
0659デフォルトの名無しさん2009/01/04(日) 14:47:27
もう秋田
0660デフォルトの名無しさん2009/01/04(日) 14:50:27
>>648
キャストしないとワーニングが出るよ
0661デフォルトの名無しさん2009/01/04(日) 14:54:07
>>658
正しい場合でもそれと分からないやつにはな・・・
0662デフォルトの名無しさん2009/01/04(日) 14:56:08
配列のサイズを指定せず、配列に数値を格納して行く度に
配列のサイズを増やしていく方法がわかりません
言語はC++です
このような事は可能なのでしょうか、また出来るなら
どのようにすればいいのかご教示願います
0663デフォルトの名無しさん2009/01/04(日) 14:59:10
>>662
std::vector か std::deque 使え。
0664デフォルトの名無しさん2009/01/04(日) 14:59:24
STLのvectorでresize()を使うのはいかがでしょうか?
0665デフォルトの名無しさん2009/01/04(日) 15:00:06
push_back や insert でいいだろ
0666デフォルトの名無しさん2009/01/04(日) 15:04:32
http://www.amazon.co.jp/iStudy-BB-Skills-C%E8%A8%80%E8%AA%9E%E3%83%97%E3%
83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%9F%BA%E7%A4%8
E-%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88P/dp/B00008V
CD1/ref=sr_1_3?ie=UTF8&s=software&qid=1231048974&sr=8-3
こいつで解決
これにて糸冬 了..._φ(゚∀゚ )
0667デフォルトの名無しさん2009/01/04(日) 15:06:57
>>666
URL長すぎ
書籍名を書け
06686622009/01/04(日) 15:07:08
皆さんありがとうございました
これで詰んでた課題が進めそうです
0669デフォルトの名無しさん2009/01/04(日) 15:07:59
iStudy BB for IT Skills C言語プログラミング基礎 パーフェクトP
0670デフォルトの名無しさん2009/01/04(日) 15:10:26
>>666
amazon の URL を縮める方法も知らない奴は勘弁して欲しい。
http://www.amazon.co.jp/dp/B00008VCD1/
0671デフォルトの名無しさん2009/01/04(日) 15:12:20
>>670
今回だけは勘弁してやるから、URLの縮め方をここに書け
0672デフォルトの名無しさん2009/01/04(日) 15:13:53
>>671
>>666 と >>670 を見比べりゃ分かるだろ・・・。
0673デフォルトの名無しさん2009/01/04(日) 15:15:26
>>672
お前が分かるなら、お前がやり方を書け
0674デフォルトの名無しさん2009/01/04(日) 15:17:24
>>673
そうやって法則性を見つける努力を怠るからダメなんだよ。
0675デフォルトの名無しさん2009/01/04(日) 15:18:18
>>674
そんな無意味な煽りを書く暇があったら、さっさとやり方を書け
0676URLの気持ち2009/01/04(日) 15:18:27
俺なんのために付属されたんだろう・・・orz
0677デフォルトの名無しさん2009/01/04(日) 15:19:27
>>675
そんな無意味な煽りを書く暇があったら、さっさとやり方を考えろ
0678デフォルトの名無しさん2009/01/04(日) 15:20:23
暇な奴って怖いなまで読んだ
0679デフォルトの名無しさん2009/01/04(日) 15:20:31
>>677
やり方は考えるものではなく、存在するものだ
解っているなら、さっさと書け
0680デフォルトの名無しさん2009/01/04(日) 15:21:35
>>679
やり方は存在するものではなく、考えるものだ
解らないなら、さっさと考えろ
0681デフォルトの名無しさん2009/01/04(日) 15:21:50
よーしパパがんばって教えちゃうぞー
って仕事の電話が
すまん今はダメのようだ
0682デフォルトの名無しさん2009/01/04(日) 15:22:41
よーしパパがんばってID出しちゃうぞー☆
0683デフォルトの名無しさん2009/01/04(日) 15:23:27
質問に答えない、無意味な質問スレッド

死ね
0684デフォルトの名無しさん2009/01/04(日) 15:27:13
教えて欲しいなら下手に出ろよw
0685デフォルトの名無しさん2009/01/04(日) 15:29:06
下手に出ても教えないけどな。
見りゃすぐ解る事を教える事ほど害悪なことは無い。
0686デフォルトの名無しさん2009/01/04(日) 15:33:12
ワカラン → 教えろカス → 嫌 → 氏ね
小学生ですね
わかります
0687デフォルトの名無しさん2009/01/04(日) 15:34:01
>>683
おめーに答える義務はねー
0688デフォルトの名無しさん2009/01/04(日) 15:40:37
3分LifeHacking:Amazonの長いURLを短縮表示する - ITmedia Biz.ID
http://www.itmedia.co.jp/bizid/articles/0805/13/news065.html
0689デフォルトの名無しさん2009/01/04(日) 15:42:37
>>684
死ね

>>685
死ね

>>686
死ね

>>687
死ね

>>688
ありがとう
0690デフォルトの名無しさん2009/01/04(日) 15:43:20
>>688
死ね
0691デフォルトの名無しさん2009/01/04(日) 16:05:14
http://www.amazon.co.jp/iStudy-BB-Skills-C%E8%A8%80%E8%AA%9E%E3%83%97%E3%
83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%9F%BA%E7%A4%8
E-%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88P/dp/B00008V
CD1/ref=sr_1_3?ie=UTF8&s=software&qid=1231048974&sr=8-3

http://www.amazon.co.jp/dp/B00008VCD1/

え?これの区別も一人で解決できないの?
辞めたほうがいいよ 君
てか こないで
0692デフォルトの名無しさん2009/01/04(日) 16:05:54
void error(char * errormessage)
{
perror(errormessage);
exit(1);
}

error("エラーです")

これを実行するとエラーです と表示されますよね

でも、
void mputs(char *p)
{
while(*p);
printf("&c", *p);
p++;
}
printf("\n");
}

mputs("エラーです”);

前者と後者では表示される文字は同じですよね。
後者だと変数pが指定する領域を1バイトのchar型として、読み取るので1文字ずつループしていってますよね
でも前者だとそのようなループがないのに、1バイトのchar型として一度に全部の文字を表示しているって
おかしくないでしょうか?
0693デフォルトの名無しさん2009/01/04(日) 16:10:46
>>689
http://wktk.vip2ch.com/vipper0531.jpg
0694デフォルトの名無しさん2009/01/04(日) 16:12:04
>>692
先ず、Cでは文字列をどう表わすか知ってる?
0695デフォルトの名無しさん2009/01/04(日) 16:12:55
>>692
void perror( const char *string );
文字列の先頭のアドレスを指定します

何の問題もありません
0696デフォルトの名無しさん2009/01/04(日) 16:14:58
>>692
char *aiueo = "あいうえお";
myprint(aiueo);

void myprint(char *str)
{
 printf("%s\n", str);
}

何かおかしい?
0697デフォルトの名無しさん2009/01/04(日) 16:19:26
>>696
ポインタ使う必要があるのでしょうか?
0698デフォルトの名無しさん2009/01/04(日) 16:21:02
>>697
それでは、逆にポインタを使わなければどうなるのでしょうか?
0699デフォルトの名無しさん2009/01/04(日) 16:21:48
>>698
ポインタ使う場合は、下記の文になる
使わないとできない

void mputs(char *p)
{
while(*p);
printf("&c", *p);
p++;
}
printf("\n");
}

mputs("エラーです”);
0700デフォルトの名無しさん2009/01/04(日) 16:31:26
string aiueo("あいうえお");
myprint(aiueo);

void myprint(string str)
{
 cout << str << endl;
}
0701デフォルトの名無しさん2009/01/04(日) 16:38:39
char *aiueo = "あいうえお";
myprint(aiueo);

void myprint(char *str)
{
 printf("%s\n", str);
}

変数aieuoに文字列 あいうえお を代入
char[0]にあ char[1]にい char[2]にう を入れる。
つまり、aiueoが指すアドレス領域はすべてchar型だと
で、aiueoを指定するとchar[0]のアドレスが得られる。
そのアドレスを引数にして関数に渡す。渡された関数でも同じことをし
str配列の中身を全て表示する

ということでしょうか
0702デフォルトの名無しさん2009/01/04(日) 16:40:35
だとしたら、こんな文でするよりそっちでしたほうがいいってことですよね
こんな文は使い道ないということかな

void mputs(char *p)
{
while(*p);
printf("&c", *p);
p++;
}
printf("\n");
}

mputs("エラーです”);
0703デフォルトの名無しさん2009/01/04(日) 16:43:37
>>701
システムがメモリーを確保して、そこに"あいうえお"と言う文字列定数を配置。
その先頭アドレスをchar型へのポインタ変数aiueoに代入。

aiueoが示すのは"あいうえお"の先頭だけ。
ただし、コンパイラはaiueoを使うときには、char単位に操作することを知っている。(char *と宣言したから)
0704デフォルトの名無しさん2009/01/04(日) 16:48:13
なんでaiueoには先頭アドレスしかはいってないのに
void myprint(char *str)
{
 printf("%s\n", str);
}
これで、全部表示されるかがわかりません。
引数としてmyprintに渡すのは先頭アドレス。
その先頭アドレスをchar *str でどう処理しているのでしょうか?
0705デフォルトの名無しさん2009/01/04(日) 16:51:28
>>704
Cの文字列について勉強するといいかも。

それから、↓の6.2を読んでみるとわかるかも。
http://www.kouno.jp/home/c_faq/c6.html
0706デフォルトの名無しさん2009/01/04(日) 16:59:27
こういうので、ネットでいちいち質問してたら効率悪すぎるよ。
適当な入門書でも読んでみたら?
0707デフォルトの名無しさん2009/01/04(日) 17:00:04
ダメだ全然わからない
なんでポインタの文字を一気に表示できるんだ

0708デフォルトの名無しさん2009/01/04(日) 17:00:21
>>706
独習Cよんでるがわからない
0709デフォルトの名無しさん2009/01/04(日) 17:01:10
文字列と配列 - 文字列 - C言語 入門
http://www.cppdrive.jp/cstart/string/index1.html
0710デフォルトの名無しさん2009/01/04(日) 17:01:20
そういうもんだって深く考えずに受け入れることも大事。
0711デフォルトの名無しさん2009/01/04(日) 17:02:14
>>707
ポインタの指してるとことから連続で並んでるからだろ。
0712デフォルトの名無しさん2009/01/04(日) 17:04:41
なんで、*strじゃなくてstr
0713デフォルトの名無しさん2009/01/04(日) 17:06:18
>>704の疑問がすべて>>702に書かれているというのに…
0714デフォルトの名無しさん2009/01/04(日) 17:12:21
過去を振り返っては駄目です
0715デフォルトの名無しさん2009/01/04(日) 17:13:26
>>658
俺はwhile君じゃないよ。回答側と言っている
お前はここ来るまえに日本語からやりなおせ
0716デフォルトの名無しさん2009/01/04(日) 17:14:36
宿題スレと統合したら?
結局、皆さんのおかげで課題が進みそうってw
0717デフォルトの名無しさん2009/01/04(日) 17:17:08
宿題スレは課題丸投げ用
0718デフォルトの名無しさん2009/01/04(日) 17:19:07
宿題テンプレも埋めるのが面倒臭いから、こっちに投げてんだろ。
テンプレ強制になっても、他に飛び火するだけ。
0719デフォルトの名無しさん2009/01/04(日) 17:23:15
文字列を作成すると自動的に末尾に\0が付加される
char *str = "あいうえお"
とすると
正確には あいうえお\0となっている
ので先頭の str[0] のアドレスさえ分かっていれば
\0がくるか0がくるまで その内容は何かしらの意味を持った文字列だと認識する

自分でもやってるだろ?
デバッカで
char *str = "あいうえお";
の内容を見てみれば分かる
0720デフォルトの名無しさん2009/01/04(日) 17:43:06
>>719
わかりました。
\0が出てくるまでが文字列ということですね。
0721デフォルトの名無しさん2009/01/04(日) 17:49:04
>>640
非常に解りやすい!!!
サンクスです
0722デフォルトの名無しさん2009/01/04(日) 18:20:00
ウィンドウに貼り付けたプッシュボタンのWM_NCHITTESTメッセージをキャッチするには
サブクラス化するしかないのでしょうか?
0723デフォルトの名無しさん2009/01/04(日) 18:49:02
そうだね。
0724デフォルトの名無しさん2009/01/04(日) 19:02:04
今リスト構造やってるんですが、ポインタが非常に分かりづらい;
どなたかおすすめのポインタ解説サイト知ってましたら
教えていただけないでしょうか
0725デフォルトの名無しさん2009/01/04(日) 19:33:56
小数点のより右の数字だけを取る方法はないでしょうか?
x * y =200.1となったら0.1にしてしまうような
0726デフォルトの名無しさん2009/01/04(日) 19:37:41
z = x * y;
z = z - (int)z;
0727デフォルトの名無しさん2009/01/04(日) 19:38:38
>>726
ハイパーサンクス!!
0728デフォルトの名無しさん2009/01/04(日) 19:38:45
trunc
0729デフォルトの名無しさん2009/01/04(日) 19:42:53
>726 の方法だとzがintの範囲をオーバーフローしてるときにおかしくなるね
0730デフォルトの名無しさん2009/01/04(日) 19:56:28
それと負の数も考えて、floorつかえばいいさ
0731デフォルトの名無しさん2009/01/04(日) 19:57:05
floorじゃだめか負の数
0732デフォルトの名無しさん2009/01/04(日) 19:58:39
modf使えよカス
0733デフォルトの名無しさん2009/01/04(日) 20:02:34
倍精度でも仮数部が52bitだから
64bit整数型使えば精度的に大丈夫のはず
0734デフォルトの名無しさん2009/01/04(日) 20:23:28
だから0方向切り捨てなんだからtrunc一発で終わりなんだって
0735デフォルトの名無しさん2009/01/04(日) 21:47:38
クラスは分かったけど配列クラスで詰んだ…
他にも同じような人いそうだな…
またこれが使えるようになった人ってのはやっぱり
テキスト熟読してやっとの事で理解出来たんだろうか
0736デフォルトの名無しさん2009/01/04(日) 21:50:54
>735
「配列クラス」というのは何のことだ
vector等のことか、それともオブジェクトの配列なのか
0737デフォルトの名無しさん2009/01/04(日) 22:26:27
grwinで三角形を任意の角度回転させて表示するってのを作ってるんですが
三角形の中心を求めて原点に置き、回転させる方法が分かりません・・
どなたかご教授おねがいしまう
0738デフォルトの名無しさん2009/01/04(日) 22:53:34
>>737
教授なんかできるか。
1. ググれない事情がある。
2. それらしい解説ページは見つけたが、言葉の意味が解らない。
3. 意味は解るが、コードに落とせない。
どれだ?
0739デフォルトの名無しさん2009/01/04(日) 23:06:20
>>738
そんな書き込み要らないから
0740デフォルトの名無しさん2009/01/04(日) 23:07:59
>>737
三角形の中心って外心?
重心なら簡単なんだけど。
0741デフォルトの名無しさん2009/01/04(日) 23:09:05
高校の数学の教科書でも見直せばいいんじゃね?
0742デフォルトの名無しさん2009/01/04(日) 23:26:06
普通に考えて慣性モーメントが最低の軸、つまり重心を通る軸じゃね?
0743デフォルトの名無しさん2009/01/04(日) 23:35:11
なるほど。
でも軸なの?
重心を中心にして点対称に回転させるんじゃないの?

ともかく「三角形の中心」を決めないと。
内心?外心?垂心?重心?傍心?
0744デフォルトの名無しさん2009/01/04(日) 23:41:57
中心が決まったら、あとは「アフィン変換」「回転行列」「クォータニオン」辺りで。
0745デフォルトの名無しさん2009/01/05(月) 00:38:14
>>737
>三角形の中心
中心は5つほどありますが、どれになさいますか
0746デフォルトの名無しさん2009/01/05(月) 00:44:06
傍心は中心じゃないだろw
0747デフォルトの名無しさん2009/01/05(月) 00:48:56
>>746

三角形の中心(さんかくけいのちゅうしん)とは、任意の三角形から一意的に求めることができる点の総称である。単に心または芯とも呼ばれる。

「五心」と呼ばれる点(内心・外心・重心・垂心・傍心)が一般的に広く知られている。
0748デフォルトの名無しさん2009/01/05(月) 00:59:00
下の例のような文字列や小数などが入り混じったchar型の変数の配列があります。
これから小数だけを取り出してファイル出力したいのですが、何かいい方法はあるでしょうか?

char name[0]=frame
char name[1]=0.123  ←取り出したい
char name[2]=23
char name[3]=1.234  ←取り出したい
0749デフォルトの名無しさん2009/01/05(月) 00:59:39
まるちうぜえ
0750デフォルトの名無しさん2009/01/05(月) 01:06:24
>文字列や小数などが入り混じったchar型の変数の配列
0751デフォルトの名無しさん2009/01/05(月) 01:19:51
取り出す前に、どうやって入れたのか知りたい
0752デフォルトの名無しさん2009/01/05(月) 01:27:54
そうだな
小数入れる前に構造体にしてフラグ立てとけよカス
0753デフォルトの名無しさん2009/01/05(月) 01:45:18
for(int i = 0; i < 4; i++){
 if(name[i].isFloat())
  name[i].toFile();
}
0754デフォルトの名無しさん2009/01/05(月) 02:49:45
規格書高ぇ・・・
■ このスレッドは過去ログ倉庫に格納されています