スレを勃てるまでもないC/C++の質問はここで 4
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/09/17(水) 15:41:48過去ログ
スレを勃てるまでもない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/
0060デフォルトの名無しさん
2008/10/13(月) 00:02:270061デフォルトの名無しさん
2008/10/13(月) 22:44:34fatal error C1083: include ファイルを開けません。'iostream.h': No such file or directory
というエラーが出ます。
VC++2005EEをインストールしただけじゃだめなのでしょうか?
ソースは↓です。
#include <iostream.h>
int main()
{
cout << "テスト" ;
return 0;
}
0062デフォルトの名無しさん
2008/10/13(月) 22:53:03君は浦島太郎だ。今のC++に<iostream.h>は無くなった。
#include <iostream>
int main()
{
std::cout << "テスト" ;
return 0;
}
0063デフォルトの名無しさん
2008/10/13(月) 23:20:34正常に実行できました。
ありがとうございます。
参考にしていたサイトが古かったので、浦島太郎でした。
0064デフォルトの名無しさん
2008/10/14(火) 07:52:07[環境]VC++2005
TCHARで開くファイル名を指定して TEXT("\\Data\\foo.jpg") と
しているが、CreateFileでファイルを開くことができない。
以下、プロジェクトをhogeとしている場合のフォルダ構成。
hoge.sln
hoge.ncb
hoge.suo
+[debug]
+[hoge]----+[Data]---foo.jpg
+[Source]---main.cpp
その他ソースコード
※プロジェクトのプロパティ>C/C++>追加のインクルードディレクトリ
で、SourceフォルダとDataフォルダを追加している。
Dataフォルダの追加を行っているが、これはコンパイルするときに
読み込むもののみに有効?
※foo.jpgを[hoge]フォルダ直下においた場合は読み込める。
006564
2008/10/14(火) 07:58:48すんません、フォルダ構成記述ミスりました。
<最上位階層>
hoge.sln
hoge.ncb
hoge.suo
+[debug]
+[hoge]
<hoge階層>
+[Source]
+[Data]
hoge.rc
hoge.vcproj
hoge.ico
<Data階層>
foo.jpg //こいつを読み込みたい
<Source階層>
main.cppなどなどその他ソースコード
0066デフォルトの名無しさん
2008/10/14(火) 09:25:21本を読んでもUNIXの鯖がどーたら
で全然意味がわかりません。
鯖を共有メモリにするってことですか?
0067デフォルトの名無しさん
2008/10/14(火) 09:53:36釣りだろ!?
釣りだと言ってくれッ…!
0068デフォルトの名無しさん
2008/10/14(火) 10:41:33ネットワークプログラムなしにネットワークを使えると思っているのですか?
あなたか書き込んでいるここはいったい何だと思って・・・
0069デフォルトの名無しさん
2008/10/14(火) 15:29:420070デフォルトの名無しさん
2008/10/14(火) 22:58:0080点以上100点以内 A
65点以上80点未満 B
50点以上65点未満 C
0点以上50点未満 D
それ以外の整数に対しては「ありえない」と出す
0071デフォルトの名無しさん
2008/10/14(火) 23:13:51C/C++の宿題を片付けます 116代目
http://pc11.2ch.net/test/read.cgi/tech/1222813731/l50
0072デフォルトの名無しさん
2008/10/21(火) 09:35:45内容も変更しないという意味だったっけ?
たとえば
void Map_Class::second(std::map<std::string, int>& m) const {
のようなメンバ関数があったとすると
このメンバ関数の中では値を変更しちゃいけないんだっけ?
0073デフォルトの名無しさん
2008/10/21(火) 11:33:31いいえ、メンバ関数内でメンバ変数を変更できないだけです。
その例ではmを変更できてしまえます。
0074デフォルトの名無しさん
2008/10/21(火) 14:23:21では、何のための const なのでしょう?
0075デフォルトの名無しさん
2008/10/21(火) 14:33:49Map_Class自体がconstの場合のため。
std::map<std::string, int> m;
const Map_Class map_class;
map_class.second(m);
secondがconstでなければ呼べない。
map_classはconstのため変更不可だが、mはconstではないので変更可。
0076デフォルトの名無しさん
2008/10/21(火) 14:33:55だから、メンバー変数を変更しないという意味でconstでしょ。
0077デフォルトの名無しさん
2008/10/22(水) 21:04:59オブジェクト指向で汎用性を高くもたせるか迷ってます
構造体バリバリで書くと後のソースいじるときに大量のソースになり
保守するのが難しくなりやすいのと
オブジェクト指向で書くと汎用性を維持するためのコードで複雑になりやすく
これまた保守が難しくなりやすいかと考えています
どちらの手法で組んでいくか、また、別の手法があるかアドバイスいただけませんか?
0078デフォルトの名無しさん
2008/10/22(水) 21:09:150079デフォルトの名無しさん
2008/10/23(木) 07:52:12mapを変更したくないなら、
void Map_Class::second(const std::map<std::string, int>& m) const {
のようにmをconst参照にすればよい
すると、second内ではmのconstメンバー関数しか呼び出せなくなる。
0080デフォルトの名無しさん
2008/10/23(木) 07:52:50>>73 → >>74
0081デフォルトの名無しさん
2008/10/23(木) 13:51:51アイコンファイルってサイズ指定するとこないですよね?
Visual C++です。
0082デフォルトの名無しさん
2008/10/23(木) 13:53:21LoadImageならサイズも指定できるよ。
0083デフォルトの名無しさん
2008/10/23(木) 16:34:30下記のクラスの定義で、<RTC::TimedLong>の部分の意味が分かりません。
(山カッコの使い方が分からないです…)
よろしくお願いします。
class Multiply
: public RTC::OnWriteConvert<RTC::TimedLong>
{
:
:
};
0084デフォルトの名無しさん
2008/10/23(木) 16:47:000085デフォルトの名無しさん
2008/10/23(木) 16:55:20理解できました。
有難うございます。
0086デフォルトの名無しさん
2008/10/23(木) 17:07:020087デフォルトの名無しさん
2008/10/23(木) 18:51:43HICON ico;
ico = AfxGetApp()->LoadIcon(IDI_ICON1);
って感じで読み込んでます。
0088デフォルトの名無しさん
2008/10/23(木) 18:53:45例えば,
class Hoge
{
public:
int compute( int x, int y );
}
というクラスがあったとしたら,
xとyは,メンバ変数とするべきか否か,
その判別の基準って何かありますか?
0089デフォルトの名無しさん
2008/10/23(木) 18:56:56MFCなのね。つい最近似たような事例を書いた気がするが・・・
HICON ico;
ico = (HICON)::LoadImage(AfxGetInstanceHandle(), _T("test.bmp"), MAKEINTRESOURCE(IDI_ICON1), 16, 16, LR_LOADFROMFILE );
こんなんでどう?
つか、元のアイコンは16x16なの?
VSで編集時にイメージメニューから複数のサイズ、色数のアイコンが追加できるけど、それでやってる?
009089
2008/10/23(木) 18:57:32009189
2008/10/23(木) 18:58:210092デフォルトの名無しさん
2008/10/23(木) 22:01:38解決方法は見つけたのですが、
なぜ怒られるのか、わかりません。
理由が分かる方教えてください。
メンバ変数としてクラスを宣言して、
そのクラス名と同じ名前の関数を定義すると怒られます・・・。
----------------------
class Hoge {
};
class Niko {
public:
Niko();
~Niko();
void Hoge();
Hoge hoge; // NG
};
↓↓↓↓↓
class Niko {
public:
Niko();
~Niko();
Hoge hoge; // 何故か入れ替えるとOK
void Hoge(); // もしくは ::Hoge hoge; とすることでもOK
// または Hoge2()など、別名にすることでもOK
};
Hoge()はNikoのメンバ関数のつもりですが、
Hogeクラスのコンストラクタとして解釈されている???
0093デフォルトの名無しさん
2008/10/23(木) 22:24:15上では、Niko内でHogeという名前を使うと、
最も内側にあるvoid Hoge();に解決され、それは形名でないのでエラー。
もっとも、そういう風にメンバの順番を替えるだけでエラーになったりならなかったりしては
混乱間違いなしということで、下のコードも本来はエラーになる。
(Hoge hoge;で外側のHogeを使っておきながら、後からメンバ名にHogeを持ち込んだという罪状)
::Hoge hoge;と外側の名前を使うことを明示するか、Hoge2などと別の名前にするのが正しい。
その場合hogeとHoge()のどっちを先に書いてもいい。
009492
2008/10/23(木) 23:35:14なるほど・・・名前解決ができないのですね。
以下のメンバの再定義によるエラーと同じと解釈しました。
---------------
class Fuga {
public:
int ABC;
void ABC(); // エラー
};
---------------
ちなみにおっしゃるとおり、gccでコンパイルしたら、入れ替え技も怒られました。
(グローバルスコープおよび、別名にするのはOKでした。)
コンパイラの警告文が違ったので、嵌ってしまいました・・・。
ありがとうございます。
0095デフォルトの名無しさん
2008/10/25(土) 12:42:40ちょっと忘れてしまったので聞きたいのです
srand( ??? );
の ??? の部分って時間を指定するハズだったのですが
何の関数でしたっけ?
0096デフォルトの名無しさん
2008/10/25(土) 12:45:020097デフォルトの名無しさん
2008/10/25(土) 12:46:03009895
2008/10/25(土) 12:47:17ありがとうございました
0099デフォルトの名無しさん
2008/10/25(土) 19:05:20http://www5d.biglobe.ne.jp/~tomoya03/shtml/algorithm/GaussJ.htm
と書いてありますが手元の資料では三角行列を作ってから後退代入で求めると書いてあります
サイトのほうが考えやすいんですがなぜこのようにやるのかおしえてください
やはり速度でしょうか?お願いします
0100デフォルトの名無しさん
2008/10/25(土) 19:40:10そこで関数や変数の命名規則を決めたいのですが、
実務経験がないため、まったく分かりません
参考になるようなサイトでもないでしょうか?
0101デフォルトの名無しさん
2008/10/25(土) 21:24:4500000
00001
...
44443
44444
って表示するプログラム書いたんだけど、
そもそもSTLにある?
あと、これ何て言う並び方だっけ?
0102デフォルトの名無しさん
2008/10/25(土) 21:28:45cc -c -I../header ../src/hoge1.c
cc -c -I../header ../src/hoge2.c
cc -c -I../header ../src/hoge3.c
ar -r lib.a hoge1.o hoge2.o hoge3.o
ranlib lib.a
と同等のことを Makefile ではどうやってかけば良いのでしょう?
0103デフォルトの名無しさん
2008/10/25(土) 21:31:37何故先人の知恵を利用しないのか。
http://www.google.co.jp/search?q=%96%BD%96%BC%8BK%91%A5
0104デフォルトの名無しさん
2008/10/25(土) 21:32:37アルゴリズムによる
0105デフォルトの名無しさん
2008/10/25(土) 21:41:52void main()
{
for( int i=0; i<10; i++ )
printf( "%d\n", i );
for( int i=0; i<10; i++ )
printf( "%d\n", i );
}
これって VC++6 だとコンパイルエラーなんだけど
最新のはOKなのですか?
0106デフォルトの名無しさん
2008/10/25(土) 22:04:41OKだよ。
そしてVC6のおまじない。
#define for if (0) ; else for
0107デフォルトの名無しさん
2008/10/25(土) 22:09:21重複順列だな。
探したことあるけど、STLにはないから自分で作るしかない。
重複しない順列なら next_permutation があるんだけど。
0108101
2008/10/25(土) 22:48:09thx !
0109デフォルトの名無しさん
2008/10/26(日) 00:37:12それって何してるの?
0110デフォルトの名無しさん
2008/10/26(日) 00:41:090111デフォルトの名無しさん
2008/10/26(日) 00:42:09>>105のようなコードがVC6でも通るようになる。
原理はifの真側とelse側でそれぞれスコープが作られることの利用。
もちろん規格準拠な処理系では無害。
0112デフォルトの名無しさん
2008/10/26(日) 01:17:18s = fgets(linebuffer, BUFFERSIZE, inputfile);
if (s == NULL) {
break;
}
こんな記述があったのですが、コレって大丈夫なんですか?
fgets()って、文字列の先頭ポインタを返すので、sには入ると思うのですが、
fgets()が取り出した文字列自体はどこにあるのですかね??
0113デフォルトの名無しさん
2008/10/26(日) 01:27:28> gets() and fgets() return s on success, and NULL on error or when end of file occurs while no characters have been read.
標準ライブラリの関数はとりあえずmanを嫁。
linebufferのアドレスを先頭アドレスとしたBUFFERSIZE分の長さの配列があると仮定して書き込む。
んで、returnで成功したかどうか判別している。
0114デフォルトの名無しさん
2008/10/26(日) 11:46:42int i;
void main()
{
int j;
printf( "%d\n", i );
printf( "%d\n", j );
}
この結果が
0
-85899346
になるのですが
グローバル変数 int i は初期化しなくても 0 になるということは
保証されているのでしょうか?
0115デフォルトの名無しさん
2008/10/26(日) 12:20:25ええ、保証されます。
0116デフォルトの名無しさん
2008/10/26(日) 14:26:35ありがとうございます
0117デフォルトの名無しさん
2008/10/26(日) 14:29:16ありがとうございます!
0118デフォルトの名無しさん
2008/10/26(日) 17:36:11ありがとうございます
0119デフォルトの名無しさん
2008/10/26(日) 17:48:56ありがとうございます
0120デフォルトの名無しさん
2008/10/26(日) 19:02:49いえいえ、どういたしまして。
0121デフォルトの名無しさん
2008/10/26(日) 19:55:47なるほど、スコープを作ってやるワケか。
そしてVC6ってforの初期化部でスコープ作らないのか…ガクブル
0122デフォルトの名無しさん
2008/10/26(日) 20:27:542003でもデフォルトは同じ。オプションでかえられるけど。
0123デフォルトの名無しさん
2008/10/26(日) 20:30:41ARMくらいではVC6のforの挙動が正しかった。
0124デフォルトの名無しさん
2008/10/26(日) 22:30:22C++言語もなんとなくわかってきました。
WinSDK少し使えます。
そこで何か実用的なプログラムを組みたいと思います。
みなさんは初めて作った実用的なプログラムってなんですか?
0125デフォルトの名無しさん
2008/10/26(日) 22:32:15int i;
for( i=0; i<10; i++ )
printf( "%d\n", i );
}
for( i=0; i<10; i++ )
printf( "%d\n", i );
これでコンパイルエラーなら分かるんだけどね
なんかしっくりこないが、仕様のようであきらめよう
0126デフォルトの名無しさん
2008/10/26(日) 22:32:361ファイル1万行のシューティングゲーム
0127デフォルトの名無しさん
2008/10/26(日) 22:33:48自分のHDのファイルの一覧を表示するプログラム
再帰処理なんかも考えさせられる
実用的とは言えないが、へー ぐらいの感動はあった
0128デフォルトの名無しさん
2008/10/27(月) 07:29:240129デフォルトの名無しさん
2008/10/27(月) 09:15:08ことの解説で、一番まとまってるページを教えてください。
できればXbyak使わない感じで
0130デフォルトの名無しさん
2008/10/27(月) 10:15:12誰かころしてくれ
http://pc11.2ch.net/test/read.cgi/gamedev/1217601153/
677 名前:名前は開発中のものです。[sage] 投稿日:2008/10/27(月) 07:30:02 ID:FJ+86jwr
>>676
ああ、うぜー
rand()%0xFFFFFFFF
678 名前:名前は開発中のものです。[sage] 投稿日:2008/10/27(月) 07:31:07 ID:H6+Ksq4k
>>677
お前は数字も読めないのか
679 名前:名前は開発中のものです。[sage] 投稿日:2008/10/27(月) 08:45:32 ID:FJ+86jwr
>>678
は?
詩ねよバカ
680 名前:名前は開発中のものです。[sage] 投稿日:2008/10/27(月) 09:04:23 ID:H6+Ksq4k
>>679
悔しいのうwwww悔しいのうwwww
0131デフォルトの名無しさん
2008/10/27(月) 10:26:40言動はちょっとあれだが。
0132デフォルトの名無しさん
2008/10/27(月) 10:40:130133デフォルトの名無しさん
2008/10/27(月) 16:18:43なのですが、これはどういうふうに理解すればよいでしょうか?
template <class DataType,
template <class DataType> class Buffer = RingBuffer >
class InPort
: public Buffer<DataType>
{
:
0134デフォルトの名無しさん
2008/10/27(月) 19:23:38for ( JX = 1 ; JX <= MDX ; JX++ )
{for (JY=1;JY<=MDY;JY++)
{for (JZ=1;JZ<=MDZ;JZ++)
EPSX[JX][JY][JZ]=EPS0;
EPSY[JX][JY][JZ]=EPS0;
EPSZ[JX][JY][JZ]=EPS0;
AMUX[JX][JY][JZ]=AMU0;
AMUY[JX][JY][JZ]=AMU0;
AMUZ[JX][JY][JZ]=AMU0;
SIGX[JX][JY][JZ]=SIG0;
SIGY[JX][JY][JZ]=SIG0;
SIGZ[JX][JY][JZ]=SIG0;
}
}
これでbcc32でコンパイルを行うと
E2188 : 式の構文エラー
が表示されます。
for文としては何を間違えてしまっていますか?
0135デフォルトの名無しさん
2008/10/27(月) 19:43:14enum { MDX, MDY, MDZ, EPS0, AMU0, SIG0 };
void main()
{
int JX, JY, JZ;
int EPSY[10][10][10], EPSX[10][10][10], EPSZ[10][10][10];
int AMUX[10][10][10], AMUY[10][10][10], AMUZ[10][10][10];
int SIGX[10][10][10], SIGY[10][10][10], SIGZ[10][10][10];
for ( JX = 1 ; JX <= MDX ; JX++ )
{
for (JY=1;JY<=MDY;JY++)
{
for (JZ=1;JZ<=MDZ;JZ++)
EPSX[JX][JY][JZ]=EPS0; EPSY[JX][JY][JZ]=EPS0; EPSZ[JX][JY][JZ]=EPS0;
AMUX[JX][JY][JZ]=AMU0; AMUY[JX][JY][JZ]=AMU0; AMUZ[JX][JY][JZ]=AMU0;
SIGX[JX][JY][JZ]=SIG0; SIGY[JX][JY][JZ]=SIG0; SIGZ[JX][JY][JZ]=SIG0;
}
}
}
VC++6.0 問題ない
0136133
2008/10/27(月) 20:19:020137デフォルトの名無しさん
2008/10/27(月) 21:23:53最内周のforに{}がない。
てか外側はなくてもよいのになぜ内側だけないんだろ。
0138デフォルトの名無しさん
2008/10/28(火) 10:21:44かっこ { } の数がおかしいかもしれんが 3D は分からないのでどうしようもないし、
こんなことぐらいでつまづくようであれば今後の先行きは見えているようなもの
0139デフォルトの名無しさん
2008/10/28(火) 15:18:290140デフォルトの名無しさん
2008/10/28(火) 23:04:01上の階層のC:\xampp内にclassファイルを作成したりしたい場合は
eclipseでは作成できないのでしょうか?
0141デフォルトの名無しさん
2008/10/28(火) 23:04:550142デフォルトの名無しさん
2008/10/28(火) 23:41:39ハンガリアン記法
http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%83%BC%E8%A8%98%E6%B3%95
”1つの例”として、見てみるのもいいかもしれない。
カプセル化
http://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
カプセル化をがんばると幸せになれるかも。
タスクシステム
http://codezine.jp/article/detail/297?p=1
タスクシステムとサンプルコードがあるので、
この人のスタイルを見てからいろいろ考えてみるのもいいかもしれない。
と、あまり実務経験のない俺が言ってみる。
(誰か突っ込みヨロ)
0143デフォルトの名無しさん
2008/10/28(火) 23:47:21cで
scanfで数字を入力してもらって
それが数字でない場合(たとえばaとか)
数字を入力してください。
と表示したいと考えています。
入力されたキーが数字か数字でないかを
判断するにはどうすればよいでしょうか?
よろしくお願いします。
0144デフォルトの名無しさん
2008/10/28(火) 23:49:19まあ、すぐにfgets+sscanfに移りたくなるだろうが。
0145デフォルトの名無しさん
2008/10/29(水) 09:35:42素朴にやるなら判定を10個並べるだけだぞ。
0146デフォルトの名無しさん
2008/10/29(水) 10:05:50何かあったのか?
そんなもん知らなかったし、使う予定もないだろうし
0147デフォルトの名無しさん
2008/10/29(水) 13:15:35>145が>143からの流れだと理解できないなら、無理にレスする必要ありませんよ。
それはそれとして、>143に対して>145のレスも的が外れているが。
0148デフォルトの名無しさん
2008/10/29(水) 14:55:16if文一行で終わるだろう
0149デフォルトの名無しさん
2008/10/29(水) 16:23:22img[1] = LoadGraph( "test01.bmp" );
img[2] = LoadGraph( "test02.bmp" );
img[3] = LoadGraph( "test03.bmp" );
img[4] = LoadGraph( "test04.bmp" );
img[5] = LoadGraph( "test05.bmp" );
img[6] = LoadGraph( "test06.bmp" );
img[7] = LoadGraph( "test07.bmp" );
img[8] = LoadGraph( "test08.bmp" );
img[9] = LoadGraph( "test09.bmp" );
と
char str[80];
for( int i=0; i<10; i++ ) {
wsprintf( str, "test%02d.bmp", i );
img[i] = LoadGraph( str );
}
どっちがいい?
0150デフォルトの名無しさん
2008/10/29(水) 16:50:14前者の左辺と右辺の関係が崩れない保障があるなら、後者。
0151デフォルトの名無しさん
2008/10/29(水) 17:20:46見やすさとしては前者じゃね?
0152デフォルトの名無しさん
2008/10/29(水) 17:26:310153デフォルトの名無しさん
2008/10/29(水) 17:58:57コードにすると?
0154デフォルトの名無しさん
2008/10/29(水) 18:05:04"test00.bmp",
"test01.bmp",
・
・
"test08.bmp",
"test09.bmp",
};
for( int i=0; i<sizeof(filename)/sizeof(filename[0]); i++ ) {
img[i] = LoadGraph( filename[i] );
}
0155デフォルトの名無しさん
2008/10/29(水) 18:12:330156デフォルトの名無しさん
2008/10/29(水) 18:14:240157デフォルトの名無しさん
2008/10/30(木) 13:08:230158デフォルトの名無しさん
2008/10/30(木) 16:56:59って言ってたZE☆
0159デフォルトの名無しさん
2008/10/31(金) 16:58:31ゲーム制作メンバー募集でまともなところない?
ゲ製作技術のところはキチガイか揚げ足とりしかいなくてどうしようもない
0160デフォルトの名無しさん
2008/11/01(土) 14:33:14こいつを見てくれ
どう思う?
■ このスレッドは過去ログ倉庫に格納されています