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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2008/09/17(水) 15:41:48
スレを勃てるまでもない低俗な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/
0912デフォルトの名無しさん2008/12/26(金) 20:59:20
>911
「うまくいかない」だけでは何がどう上手くいかないのか判らないよ。
・上手くいかないコード
・どう上手くいかないのか
(本来こうなって欲しいのにこうなってしまう、という内容
 エラーメッセージがあるならそれを貼る)
0913デフォルトの名無しさん2008/12/26(金) 21:14:22
>>912
すいません(´・ω・)

#include <stadio.h>

int main(void)
{
return 0;
}

int sum(void)
{
printf("FOOOO");
return 0;
}
コンパイルしても

c:\documents and settings\yuji\my documents\visual studio 2008\projects\自由だああああ\自由だああああ\自由だあああああああああ.cpp(1) : fatal error C1083: include ファイルを開けません。'stadio.h': No such file or directory
とエラーが表示されます・・
0914デフォルトの名無しさん2008/12/26(金) 21:16:55
#include <stadio.h>

#include <stdio.h>
0915デフォルトの名無しさん2008/12/26(金) 21:17:04
スタジオのスペルはstudio
0916デフォルトの名無しさん2008/12/26(金) 21:30:17
>>914-915

         ナ ゝ   ナ ゝ /    十_"    ー;=‐         |! |!
          cト    cト /^、_ノ  | 、.__ つ  (.__    ̄ ̄ ̄ ̄   ・ ・
ミミ:::;,!      u       `゙"~´   ヾ彡::l/VvVw、 ,yvヾNヽ  ゞヾ  ,. ,. ,. 、、ヾゝヽr=ヾ
ミ::::;/   ゙̄`ー-.、     u  ;,,;   j   ヾk'! ' l / 'レ ^ヽヘ\   ,r゙ゞ゙-"、ノ / l! !ヽ 、、 |
ミ/    J   ゙`ー、   " ;, ;;; ,;; ゙  u ヾi    ,,./ , ,、ヾヾ   | '-- 、..,,ヽ  j  ! | Nヾ|
'"       _,,.. -─ゝ.、   ;, " ;;   _,,..._ゞイ__//〃 i.! ilヾゞヽ  | 、  .r. ヾ-、;;ノ,.:-一'"i
  j    /   ,.- 、  ヾヽ、 ;; ;; _,-<  //_,,\' "' !| :l ゙i !_,,ヽ.l `ー─--  エィ' (. 7 /
      :    ' ・丿   ̄≠Ξイ´,-、 ヽ /イ´ r. `ー-'メ ,.-´、  i     u  ヾ``ー' イ
       \_    _,,......::   ´゙i、 `¨ / i ヽ.__,,... '  u ゙l´.i・j.冫,イ゙l  / ``-、..- ノ :u l
   u      ̄ ̄  彡"   、ヾ ̄``ミ::.l  u   j  i、`ー' .i / /、._    `'y   /
              u      `ヽ  ゙:l   ,.::- 、,, ,. ノ ゙ u ! /_   ̄ ー/ u /
           _,,..,,_    ,.ィ、  /   |  /__   ``- 、_    l l  ``ーt、_ /  /
  ゙   u  ,./´ "  ``- 、_J r'´  u 丿 .l,... `ー一''/   ノ  ト 、,,_____ ゙/ /
        ./__        ー7    /、 l   '゙ ヽ/  ,. '"  \`ー--- ",.::く、
       /;;;''"  ̄ ̄ ───/  ゙  ,::'  \ヾニ==='"/ `- 、   ゙ー┬ '´ / \..,,__
、      .i:⌒`─-、_,....    l   /     `ー┬一'      ヽ    :l  /  , ' `ソヽ
ヾヽ     l      `  `ヽ、 l  ./  ヽ      l         )  ,; /   ,'    '^i
0917デフォルトの名無しさん2008/12/26(金) 21:33:27
自作関数はmain関数に埋め込む部品と考えたらいいのでしょうか(´・ω・)?
0918デフォルトの名無しさん2008/12/26(金) 21:54:59
>>917 そういう場合もあるだろうね。それだけじゃないけど。
0919デフォルトの名無しさん2008/12/26(金) 22:16:58
>>ユージ君
君にはプログラミングにとって重要な素養が欠けているようだ。それは、注意深さだ。
0920デフォルトの名無しさん2008/12/26(金) 23:28:08
C言語でソケットについて学びたいとおもっております
初心者が学ぶに最適な本をいくつかありませんか?
0921デフォルトの名無しさん2008/12/26(金) 23:31:49
シューティングゲームを作ろうと思っています。
自機や弾などの画像はメインウィンドウにそのまま貼り付けるよりサブウィンドウに貼り付けて
サブウィンドウをメインウィンドウ上で動かしたほうが当たり判定等が楽になったりしないかな?と思ったんですが、
どう実装するのが一般的なんですか?
0922デフォルトの名無しさん2008/12/26(金) 23:38:43
最近は 2D のゲームでも DirectX の 3D 機能使って実装するのが一般的。
0923デフォルトの名無しさん2008/12/27(土) 00:24:43
>>919
ユージ・・君・・・って・・誰?
0924デフォルトの名無しさん2008/12/27(土) 00:33:41
>>923
あんたも注意力が足りない。
>c:\documents and settings\yuji\my documents\
0925デフォルトの名無しさん2008/12/27(土) 00:37:05
そ・・そういうことか!!
マジで誰かに見張られてるかと思って死ぬかと思った・・(´・ω・)
09267962008/12/27(土) 02:24:08
>>860
>CPUのキャッシュがどういう性質のものかも理解できていないじゃん。

DMA(HDD->DRAM直接転送)時は、CPU を経由しないのでCPU上のキャッシュメモリは
更新されないが、DMA が行われない場合は HDD → CPU → DRAMという経路を通るので
CPU から DRAM への書き込み時にCPUのキャッシュメモリが更新されるという理解でいますが、
間違ってますでしょうか?
CPU から DRAM への書き込み時にSSE のキャッシュ制御命令(PREFETCHT0等)で
意図的にキャッシュオフをする事も機能的にはできますが、通常、メモリに
書き込んだデータはすぐにCPUで使われる場合が多いので、通常そのような
実装はせずに、むしろ積極的にプリフェッチを利用しているものと理解していました。
09279212008/12/27(土) 04:29:22
>922
2DのゲームはAPI使って実装してるものとばかり思っていました。
DirectXと言うことはサブウィンドウを作らずにメインウィンドウにテクスチャを貼り付けているのでしょうか?
0928デフォルトの名無しさん2008/12/27(土) 11:09:26
>913
#include <stadio.h>
…
#include <stdio.h>
の間違いだよな?間違いだと言ってくれ!
0929デフォルトの名無しさん2008/12/27(土) 11:23:47
俺もずっとスタジオの略だと思っていた15の夏
0930デフォルトの名無しさん2008/12/27(土) 11:28:00
#include <studio.h> と慣れない頃はよくtypoした思い出
0931デフォルトの名無しさん2008/12/27(土) 11:30:31
俺エスティー・ディオって呼んでた
スタンダード・アイオーか
通りすがりだがすごい収穫!
0932デフォルトの名無しさん2008/12/27(土) 11:56:15
あんたら、標準入出力を英語でなんと言うか考えてもみなかったの?
0933デフォルトの名無しさん2008/12/27(土) 12:12:52
標準出力とかそういう知識以前にC言語を勉強する場合が多いよな
0934デフォルトの名無しさん2008/12/27(土) 12:16:41
某オープンソースのライブラリを使ってて、それは基本的に
C言語のライブラリなんだがC++のラッパーもある。

で、そのC++のラッパーがファクトリパターンみたいに
 Foo::create
でポインタを返しておいて、利用者側でdeleteしろという仕様なんだが・・・
これはクソ仕様という認識でいいよな。
あるいは、C++の場合はコンパイラが違ったらどっちにしろリンクできないから、
必ずコンパイラは同じだという確信犯でやってるのか?
自分でC++ラッパ書くしかないなーと思ってるけど、このあたり実際どうなん?
0935デフォルトの名無しさん2008/12/27(土) 13:29:01
>>927
おそらくこれ以上はスレ違い
DirectXスレかゲーム製作スレ(板?)へどうぞ
0936デフォルトの名無しさん2008/12/27(土) 13:47:28
>933
標準ライブラリをいくつか覚えれば、std〜で始まるライブラリが沢山あるから気付くんだけどな
stdioはライブラリのことをろくすっぽ覚えない内から使うからスタジオとか間違える奴が結構居るね

そして俺も小坊の頃は確かにスタジオだと思っていた
0937デフォルトの名無しさん2008/12/27(土) 13:54:24
stdで始まるライブラリってどんなのがあったっけ?
0938デフォルトの名無しさん2008/12/27(土) 14:12:50
stdio, stdlib, stdargの各インクルードファイルのことを言いたいのだと思われ。
0939デフォルトの名無しさん2008/12/27(土) 15:16:02
stddef「私のことも忘れないで…」
0940デフォルトの名無しさん2008/12/27(土) 17:45:35
すません
opendir,readdir,closedirを使って
引数で指定したディレクトリにある画像ファイルをすべて読み込むプログラムを作っています

読む込む部分はコーディング済みで、load_image_data()とします

int main( int argc, char *argv[] )
{
DIR *dir; /* ディレクトリ情報を示すためのポインタ */
struct dirent *dp; /* 各エントリの情報を示すための構造体ポインタ */
char path[512];

if( argc <=1 ) {
strcpy( path, "." );
} else {
strcpy( path, argv[1] );
}
if(( dir = opendir(path) ) == NULL ){
perror("opendir");
exit(-1);
}
for(dp=readdir(dir);dp!=NULL;dp=readdir(dir)){
load_image_data(dp->d_name);//読む込む
}
closedir(dir);
}

こんな感じでやろうとおもってるのですが、読み込む際、
指定ディレクトリではなくカレントディレクトリの走査になってしまいます。
ググってみたのですが、指定ディレクトリのファイル一覧表示はよくみかけるのですが、
読み込むのは見つかりませんでした、アイデアだけでもご教授ねがえませんか
0941デフォルトの名無しさん2008/12/27(土) 17:46:41
chdir ?
0942デフォルトの名無しさん2008/12/27(土) 17:52:54
load_image_data()
にディレクトリとファイル名、2つを渡す感じですか?
0943デフォルトの名無しさん2008/12/27(土) 18:43:03
>>942
path と dp->d_name を '/' で結合しなきゃ。
load_image_data 内でやっても、呼び出し元でやってもいいけど。
0944940=9422008/12/27(土) 19:24:33
考えながら自力で組むのはしんどいですね
がんばってみます
ありがとー
0945デフォルトの名無しさん2008/12/27(土) 19:29:42
引数ってあんまり意味内容な気がする・・
0946デフォルトの名無しさん2008/12/28(日) 00:50:55
エログッズ「おっぱいがいっぱいセット」お届けで〜す (夕刊フジ)

通販を愛用するエログッズ・マニアが戦々恐々だ。
エロいマウスパッドの購入者に対し、恥ずかしすぎる商品名が明記されたままの梱包箱が送られていたことが、購入者からのクレームで25日、明らかになった。
妻や同棲中の彼女に内緒で、単なるマウスパッドとして購入したはずの宅配便。
到着の瞬間が、とんだ悪夢となってしまった。
「おっぱいがいっぱいセット」(1万5000円)の購入者のもとに届いた箱に、商品名がストレートに明記されていたのだ。

この商品は、いわば「立体型エロマウスパッド」。
ゲームソフトメーカー「AKABEi SOFT2(あかべぇそふとつぅ)」(福岡市)が、ファンクラブ限定の代金引換通販で販売。
手首を固定するパッド下部が、弾力のある少女の胸の谷間や尻の割れ目になっており、妄想と実用性を満たす画期的アイテムとして話題となっていた。

24日、購入者のクレームで事態が発覚。このテの商品は通常、中身がわからないような内容表示になっている。
発売元はHPで「一企業として管理意識の低さを大変恥ずかしく思っております」と謝罪したが、たちまちエロゲーム愛好者が集まるサイトで知れ渡り、格好のネタになった。
0947デフォルトの名無しさん2008/12/28(日) 00:51:23
スマートポインターを7種類も8種類も作って、C++の言語設計者って馬鹿なの?

これを用途によって間違わずに使い分けるより、new-deleteの対応付けをきっちりやる方が余程簡単だっつーのw
ホント馬鹿だな。
0948デフォルトの名無しさん2008/12/28(日) 00:53:57
で、質問は?」
0949デフォルトの名無しさん2008/12/28(日) 00:59:14
「馬鹿なの?」が質問でしょ。

でも、スマートポインターの設計者とC++の言語設計者は別なので、
的外れの質問をしてる>>947が馬鹿。救いようの無い馬鹿。
0950デフォルトの名無しさん2008/12/28(日) 00:59:34
安い釣りに釣られるなよ
0951デフォルトの名無しさん2008/12/28(日) 01:12:31
>>947
あなたのような頭の良い人には smart pointer は必要無いですから使わないでください。
0952デフォルトの名無しさん2008/12/28(日) 05:05:19
最適化されない型ってなんだったっけ?
voli... なんとかだった気がするけど・・・
0953デフォルトの名無しさん2008/12/28(日) 05:15:35
^Hatile
09549522008/12/28(日) 05:15:57
く、わぃっけっつ〜
0955デフォルトの名無しさん2008/12/28(日) 10:10:17
なんでVisualC++のコンソールって勝手に終了しちゃう不親切な設計なわけ?
getchar();を標準でしてくれればいいのに。
0956デフォルトの名無しさん2008/12/28(日) 10:17:01
>>955
「デバッグ開始」で実行するならブレークポイントくらい設定してるだろうし
「デバッグなしで開始」なら止まらないだろうからプログラム終了時に pause が入る。
0957デフォルトの名無しさん2008/12/28(日) 10:17:50
デバッグしてるのに途中でとめないなんて普通ないからな
0958デフォルトの名無しさん2008/12/28(日) 10:35:11
プログラムから制御することを考える
標準で入っていない: 止める/止めないは標準入出力で簡単に制御できる。
標準で入っている: 止める/止めないは特殊なAPIを呼ぶ必要がある。

前者の方が圧倒的にシンプル
0959デフォルトの名無しさん2008/12/28(日) 11:03:04
>>955
君向いてないよ
0960デフォルトの名無しさん2008/12/28(日) 11:10:18
そもそもVisualC++のコンソールなんていう特殊なものはない。
0961デフォルトの名無しさん2008/12/28(日) 11:17:35
VisualC++のコンドームなら俺のコンソールにあるよ
0962デフォルトの名無しさん2008/12/28(日) 11:41:25
2日間悩み続けてやっと引数を理解しました
0963デフォルトの名無しさん2008/12/28(日) 14:31:55
関数から数値を返す意味なんてあるんでしょうか・?
関数に数値を渡すのと同じ計算結果になるし、意味ないような気がします
0964デフォルトの名無しさん2008/12/28(日) 14:32:50
>963
同じ?何と何が同じなんだ
0965デフォルトの名無しさん2008/12/28(日) 14:35:35
>>963
何が言いたいのかわからん。関数から数値返さないで関数で計算する
簡単な例出してみて。できることはできるよ。
0966デフォルトの名無しさん2008/12/28(日) 14:44:10
>>963
C/C++ でいう「関数」は、数学的な意味での関数ではない。
(最初に「関数」と訳した奴がすべて悪い)
なので
>関数に数値を渡すのと同じ計算結果になる
という保証はない。
0967デフォルトの名無しさん2008/12/28(日) 14:45:05
>>963
だったら使わなければいいと思います
0968デフォルトの名無しさん2008/12/28(日) 14:47:13
飛べない翼に意味はあるのでしょうか?
0969デフォルトの名無しさん2008/12/28(日) 15:36:05
今、苦しんで覚えるC言語というサイトを見ているんですが
関数に数値を渡す
#include <stdio.h>

int sum(int,int); /* プロトタイプ宣言 */

int main(void)
{
sum(50,100);
return 0;
}

int sum(int min,int max)
{
printf("%d\n",(min + max) * (max - min + 1) / 2);
return 0;
}
0970デフォルトの名無しさん2008/12/28(日) 15:37:58
関数から数値を返す
#include <stdio.h>

int sum(int,int); /* プロトタイプ宣言 */

int main(void)
{
int value;
value = sum(50,100);
printf("%d\n",value);
return 0;
}

int sum(int min,int max)
{
int num;
num = (min + max) * (max - min + 1) / 2;
return num;
}


計算結果が同じ3825になるし

なんで返さなきゃいけない必要があるのか解らないです
0971デフォルトの名無しさん2008/12/28(日) 15:40:50
値を返さない方は画面表示にしか使えないが、
返す方はそれをまたさらに加算したりできるだろ。
0972デフォルトの名無しさん2008/12/28(日) 15:46:12
>>971

そ・・そうか!!!
ありがとうございます!
0973デフォルトの名無しさん2008/12/28(日) 16:26:50
1の2乗 + 2の2乗 + 3の2乗 + ・・・ + nの2乗が2000を超えるときのnの値と、
そのときの合計を求めるプログラムをwhileを使って作りなさい。
0974デフォルトの名無しさん2008/12/28(日) 16:31:18
>>973
分かった
0975デフォルトの名無しさん2008/12/28(日) 17:31:17
2乗のしかたがわからない・・
0976デフォルトの名無しさん2008/12/28(日) 17:33:29
x * x
0977デフォルトの名無しさん2008/12/28(日) 17:47:54
>973みたいな問題出す奴って、馬鹿か間抜けかどっちかなんだろうな。
1行目は「1の2乗+……が」というように式をそのまま提示しているのに2行目では「そのときの合計」と書いている。
1行目がそのままなら2行目では「そのときの値」で充分だし、
2行目を「そのときの合計」としたいのなら1行目は「1の2乗+……の合計が」とでもするべきだ。
尤もそれなら、「この数式のn項までの合計」とでもした方が余程間違いのない表現だと思うが。

何も考えずにこんな表現を使ったのならば只の馬鹿だし、考えた上でこの表現になったのなら間抜けだ。
0978デフォルトの名無しさん2008/12/28(日) 18:14:10
頭が爆発しそうだ・・・
難しい・・難しすぎる・・!!
0979デフォルトの名無しさん2008/12/28(日) 18:30:31
>>977
教科書に書いていた通りに書いた
0980デフォルトの名無しさん2008/12/28(日) 18:46:02
答えください
0981デフォルトの名無しさん2008/12/28(日) 19:53:50
>>958
release 時は実行後に pause コマンドを呼んでくれている。
これをデバッグ版でも呼べるようにするオプションくらい
つけてくれてもバチはあたらんと思うんだがね。
0982デフォルトの名無しさん2008/12/28(日) 19:53:57
え、俺?
0983デフォルトの名無しさん2008/12/28(日) 20:13:24
宿題はよそで。
0984デフォルトの名無しさん2008/12/28(日) 20:28:16
デバッグ時は終了したらさっさとコード書き換えたいのに
いちいち止まる方が面倒だ

なんで結果が見たいのにデバッグで実行するんだ
0985デフォルトの名無しさん2008/12/28(日) 21:08:25
C++でおすすめの開発環境はなんですか?OSはWinXP SP2です。
CPUが古いCerelonなのであんまり重すぎないものでお願いします。
0986デフォルトの名無しさん2008/12/28(日) 21:09:54
Visual C++ 2008 Express Edition
0987デフォルトの名無しさん2008/12/28(日) 21:13:59
C++の入門サイトってどこ見ればいいの?
09889852008/12/28(日) 21:15:48
>>986
ありがとうございます
ちょっと導入してくる
0989デフォルトの名無しさん2008/12/28(日) 21:20:24
>>979
それじゃ、その教科書の著者編者採用担当者が総じて間抜けなんだろうな。
0990デフォルトの名無しさん2008/12/28(日) 22:27:16
>>979
ならばスレ違いだボケナス。
0991デフォルトの名無しさん2008/12/28(日) 23:31:14
苦しんで覚えてどうすんの。
言語なんてものは楽しんで覚えなきゃ。
0992デフォルトの名無しさん2008/12/29(月) 00:09:06
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int n = 1, sum = 0;
while(sum >= 2000){
sum += n*n;
n++;
puts("\a");
}
printf("n = %d\a\n", n);
system("pause");
return 0;
}
0993デフォルトの名無しさん2008/12/29(月) 00:52:50
>>992
おいおい。ちょっとおかしいぞ。while の中身が逆。ついでになぜに機種依存
させる?こんなもんかな?

#include <stdio.h>
int main(){
int n=0, sum=0;
while(sum <= 2000){
++n;
sum += n*n;
}
printf("n=%d, sum=%d\n",n,sum);
return 0;
}
0994デフォルトの名無しさん2008/12/29(月) 04:48:40
#include <stdio.h>
int main()
{
int sum = 0;
int n;
for (n = 1; sum <= 2000; ++n) sum += n * n;
printf("n = %d, sum = %d\n", n, sum);
return 0;
}
0995デフォルトの名無しさん2008/12/29(月) 09:13:31
>>984
printfデバッグというものがあってだな・・・
0996デフォルトの名無しさん2008/12/29(月) 09:44:54
#include <cstdio>

template< bool b, int sum, int n >
struct func_t
{
static void f(){ std::printf("n = %d, sum = %d\n", n-1, sum);}
};

template< int sum, int n >
struct func_t< false, sum, n >
{
static void f(){ func_t< (n*n+sum>2000), (n*n+sum), n+1 >::f();}
};

int _tmain(int argc, _TCHAR* argv[])
{
func_t< 0, 0, 0 >::f();
return 0;
}
0997デフォルトの名無しさん2008/12/29(月) 09:55:31
>>995
それこそデバッガいらないだろう
0998デフォルトの名無しさん2008/12/29(月) 10:47:38
次スレ立ててくれ
0999デフォルトの名無しさん2008/12/29(月) 11:00:15
↓ >>1000 がスレを立てること!
1000デフォルトの名無しさん2008/12/29(月) 11:05:38
>>999
了解
http://pc11.2ch.net/test/read.cgi/tech/1230516307/
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。