もう23時か、
2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50 [PR]美人女性のお部屋をナマ体験[PR]  

【初心者歓迎】C/C++室 Ver.60【環境依存OK】

1 :デフォルトの名無しさん:2008/10/15(水) 17:06:26
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。

【前スレ】
【初心者歓迎】C/C++室 Ver.59【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1220708712/

【アップローダー】(質問が長い時はココ使うと便利)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

◆ソースのインデントについて
半角やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのが最も良いですが、
直接貼るのであれば、全角空白か に置換しておくことをお勧めします。

2 :デフォルトの名無しさん:2008/10/15(水) 17:07:20
前スレが1000行ってたんで立てました。


3 :デフォルトの名無しさん:2008/10/15(水) 17:09:03
いちょつ

4 :デフォルトの名無しさん:2008/10/15(水) 17:12:51
環境:VisualStudio2008

class x
{
public:
methodA();
methodB();
private:
int x;
int y;
}

みたいなクラスがあって

methodA()
{
// 初期化
x = ...
y = ...
}

methodB()
{
// x、yを使って作業をする
}

といった感じで処理をしているのですが、変数xとyが
methodBに入った瞬間に壊れてしまいます。
一瞬、メモリの越境破壊かな? と思ってデバッガの変数ウォッチで追いかけてみたのですが
デバッガで見る分には確実にmethodBに入る瞬間に壊れています。
値が16進の 0x303030 固定なので人為的なものを感じるのですが、
何か原因の可能性として思いつくようなものはありますでしょうか?

5 :デフォルトの名無しさん:2008/10/15(水) 17:14:41
あ、例示のクラス名と変数名が一緒なのは単なるミスです。

6 :デフォルトの名無しさん:2008/10/15(水) 17:18:59
C言語をゲーム感覚で学べるソフトとかありませんか?
例えばlispで言うnsclisperみたいな物があればいいです。

7 :デフォルトの名無しさん:2008/10/15(水) 17:27:41
独自のアロケータを使ったstring型を作れたのですが、出力方法がわかりません。
キャスト無しでもキャストしてもエラー出ます。 coutの拡張は難しいです。
なんとかなりますか?


typedef basic_string<char, char_traits<char>, userallocator <char> > u_string;

int main() {
u_string a="abcdef";
// cout<<(char*)a;
}

8 :デフォルトの名無しさん:2008/10/15(水) 17:33:12
自己解決しました

u_string a="abcdef";
cout<<&a[0];

でもデータが連続していて最後が0になってないと駄目なんですが。
不連続でも可能な方法ありますか

9 :デフォルトの名無しさん:2008/10/15(水) 17:36:23
a.c_str(); が使用可能でした。STLは便利ですね。
これならデータが不連続でも良さそうなんですけど
もしデータが100Mとか貯まっていたらメモリにコピーを用意するのに
それだけ悔いますよね。直接ファイルに書き出したい場合に方法無いですか?

10 :デフォルトの名無しさん:2008/10/15(水) 17:38:00
substrで少しずつ書き出すことにします

11 :4:2008/10/15(水) 17:50:07
すいません、自己解決しました。
自分で文字バッファを'0'でクリアしてたのが越境してました

12 :デフォルトの名無しさん:2008/10/15(水) 17:55:59
>>11
> 確実にmethodBに入る瞬間に壊れています
これが違ってたこと?
思いこみって怖いねXD

13 :デフォルトの名無しさん:2008/10/15(水) 19:54:51
質問です

クラスのプライベートで
typedef struct {
char Question[256]; // 問題
char Select[256]; // 選択肢
int Answer; // 答え
} Question, *Quiz;
};
を定義して

デフォルトコンストラクタで
Quiz = new Question[MAX_QUIZ];
とやったのですが : error C2513: 'QuizClass::Question *' : 指定された型は、識別子の名前を指定せずに宣言されています
と出てしまいます

どうすればメモリを確保できますか?
ヒントだけでもいいのでよろしくお願いします。


14 :デフォルトの名無しさん:2008/10/15(水) 20:02:19
typedefしてるからQuestionがその構造体の名前、Quizがその構造体のポインタ型

15 :デフォルトの名無しさん:2008/10/15(水) 20:29:03
Quiz p = new Question[MAX_QUIZ]; かな?

16 :デフォルトの名無しさん:2008/10/15(水) 21:00:54
今更だけど>>1

17 :デフォルトの名無しさん:2008/10/15(水) 21:30:02
#include <stdio.h>

void kansu(unsigned a){
 int ans[a];
 (中略)
}

main(){
 kansu(10);
 (中略)
}

上記のように、関数の引数を配列の個数として受け取るプログラムを作っているのですが、
配列を宣言する行で「定数でないものがある」「配列のサイズを整数定数に評価できません」といわれます。
はじめは自分のプログラムが間違っていると思っていたのですが、同じ課題(なので上記構成を含みます)を
やっていた友人の完成ファイルをもらって自分のPCでコンパイルしてみると、これも通りません。
でも友人は確かに学校のPCでコンパイルに成功していました。
自分のコンパイラに問題があるのかと、LightCとLSI C-86で試してみましたが変化ありません。

何がいけないのでしょうか? 初歩的な問題だったら申し訳ありません。
ご教授よろしくお願いします。

18 :デフォルトの名無しさん:2008/10/15(水) 21:45:57
aは定数ではなく、実行時に決まる値。
実行時に決まる値を使ってでのスタック上での配列宣言はできない。
それだけの話。

19 :デフォルトの名無しさん:2008/10/15(水) 21:52:16
助けてください。上底、下底、高さの3つの数字を入力してもらい台形の面積を求める関数を作ってみたのですが、コンパイルが通りません。
何処がおかしいのでしょうか?



#include<stdio.h>

int daikei(int,int,int);//daikei関数のプロトタイプ宣言

int main(void)
{
printf("台形の面積を求めます。\"上底\" \"下底\" \"高さ\"の順に数値を3つ入力してください。"
"なお、数値はカンマ\",\"で区切ってください。:\n");

int ue,shita,takasa;

scanf("%d,%d,%d",&ue,&shita,&takasa);
printf("上底%dcm、下底%dcm、高さ%dcmの台形の面積は%dcm2です。\n",ue,shita,takasa,daikei(ue,shita,takasa));
return 0;
}

//ここからdaikei関数の部分
int daikei(int ue,int shita,int takasa)
{
int kotae;

kotae = (ue + shita) * takasa / 2;

return kotae;
}

20 :デフォルトの名無しさん:2008/10/15(水) 22:07:45
>>19
int ue,shita,takasa;
を { の下に移動
Cでは変数の宣言はブロック({ })の最初にしないといけない


21 :デフォルトの名無しさん:2008/10/15(水) 22:12:00
>>17
そういうときは

void kansu(unsigned a) {
int *ans = malloc(sizeof(int) * a);
(中略)
free(ans);
}

として、実行時にメモリを確保する

22 :デフォルトの名無しさん:2008/10/15(水) 22:12:39
>>20
動きました。本当に有難うございます。
もっと基本的なことから勉強しなおします。

23 :デフォルトの名無しさん:2008/10/15(水) 22:23:15
>>17
99年仕様が通るまともなコンパイラを使えばOK。

24 :デフォルトの名無しさん:2008/10/15(水) 22:46:13
C言語で個人開発単位でDBに接続したいんだけど、オヌヌメのDBおしえてください。
あとは、ググルから。

25 :デフォルトの名無しさん:2008/10/15(水) 23:19:01


26 :デフォルトの名無しさん:2008/10/15(水) 23:21:38
マイクロソフトのでいいだろう 勝手に入ってくる

27 :デフォルトの名無しさん:2008/10/15(水) 23:32:29
たぶん言われなくても誰も知らないだろうけどHiRDBは絶対にお勧めできない

28 :17:2008/10/15(水) 23:38:57
>>18>>21>>23
ありがとうございました!
<stdlib.h>,malloc,freeを足してうまく動きました。
全く考えつかなかったところに原因があったので助かりました。
配列について一つ賢くなれた気がします。他のコンパイラを
手に入れる余裕はないので、もっと勉強して使いこなそうと思います。
回答ありがとうございました。

29 :デフォルトの名無しさん:2008/10/16(木) 14:05:45
すみません。WindowsAPIを使って色々ネット上のサンプルを試しているんですが、
新規プロジェクトを作るたびにいちいちWindowクラスを作成して登録する作業がとても面倒なんですが、
JavaやC#みたいにクラスファイルを作成して、それを他のプロジェクトから使う方法はないんですか?
または、ソースのインポートから新規プロジェクトへそのWindowクラスの書いたファイルをプロジェクトに
取り込む方法とかないですか?

なにぶん、WinAPIは初めてでしてよくわかりません。。ちなみにVC6を使っています。
初心者歓迎で環境依存OKとのことなので、ここで聞きました・・

個人的には、Windowクラス作成の部分を別ファイルに定義しておいて
WinMain関数の有るファイルで、そのWindowクラスを登録すればいいと
思うんですが、ウィンドウプロシージャのCALLBACK関数はどちらのファイルに書いたらいいのか
わかりません。

すみませんが、教えてください。よろしくお願いします。

30 :29:2008/10/16(木) 14:14:20
>>29です。ちょっと補足します。
>いちいちWindowクラスを作成して登録する作業がとても面倒なんですが
これは、長々しいコードを書くのも面倒だしこぴぺするのもスマートじゃないと
おもったんです。ですから、この作業をスマートにやるWindowsプログラム本来の方法を知りたいのです。

よろしくお願いします。

31 :デフォルトの名無しさん:2008/10/16(木) 14:31:44
むしろ何で今VC6を買ってしまったのかと聞きたいぐらいだわ
無料化されてないよね。しかも取り立てて安くもない。
VC2005EEではダメだったんだろうか。。。

32 :デフォルトの名無しさん:2008/10/16(木) 14:35:29
なぜVC2005を進めるんだ 2008の方が性能上で軽い

33 :デフォルトの名無しさん:2008/10/16(木) 15:00:10
>>29
CALLBACK関数も別ファイルに書けばいいと思うよ
WM_PAINTのBeginPaint〜EndPaintの間だけとか
実際に変えたいところだけ主ファイル側の関数を呼べばいいんじゃない

34 :デフォルトの名無しさん:2008/10/16(木) 15:08:49
C++で2分法のf(x)=X*X-2
プログラムよろしくお願いします。

35 :デフォルトの名無しさん:2008/10/16(木) 15:28:20
>>32
あ、ごめん。
2008まだ入れてないからついうっかりorz

36 :デフォルトの名無しさん:2008/10/16(木) 15:37:54
お聞きしたい事があります。
C言語の勉強をしてて、他人が作ったソースを眺めていたりするのですが、
その中に

char *skipSpace(char *s)

と言った箇所がったのですが、関数名の前の「*」ってどうゆう意味があるのでしょうか?
これもポインタの一種なのでしょうか?

37 :デフォルトの名無しさん:2008/10/16(木) 15:42:14
std::mapのキーにwchar_t*を使うと検索がおかしいのはどうして?

38 :デフォルトの名無しさん:2008/10/16(木) 15:45:41
>>36
charのポインタを返す関数だよ

char* skipSpace(char *s)
こうすると分かりやすいかな?

39 :デフォルトの名無しさん:2008/10/16(木) 15:51:46
>>38
なるほど、「char* 関数名」でも「char *関数名」でもどっちでもいいのですね。
ありがとうざいます。

40 :デフォルトの名無しさん:2008/10/16(木) 15:57:39
char* pc1, pc2;

41 :デフォルトの名無しさん:2008/10/16(木) 15:59:11
char *pc1, pc2;

42 :デフォルトの名無しさん:2008/10/16(木) 15:59:38
>>37
ポインタのアドレスを比較してるだけだからでは?

43 :デフォルトの名無しさん:2008/10/16(木) 16:01:07
基本は変数、関数のほうへ付けるべきだな
char* p, q; が、 char *p, *q; かchar *p, q; かわかりずらいからな



44 :デフォルトの名無しさん:2008/10/16(木) 16:05:14
*の修飾対象はcharではなくp。これを分かってない人がコードを書くと可読性が著しく損なわれる。

45 :デフォルトの名無しさん:2008/10/16(木) 16:07:38
char *関数名() が正解ってこと?

46 :デフォルトの名無しさん:2008/10/16(木) 16:10:35
>>37 std:less

47 :デフォルトの名無しさん:2008/10/16(木) 16:14:12
           ☆      ☆ 
          
          ☆       ☆            ☆     
                       ☆   ☆ 
                            *


       ∧_,,∧ 
       <,,    >
       (    )
       し○-J
     ~"''"""゛"゛""''・、
 ""゛""''""""゛゛""''' "j'
 :::::ヘ :::::....ヽ :::;;;ノ  ::( 
 ::  ゝ  :::::......ノ:;;../  ~~^^ ~~~~~^^^~ ~~^^ ~~^^ ~~~~~^^^~  ~~^^~~~^


48 :デフォルトの名無しさん:2008/10/16(木) 17:07:10
ttp://www.sgi.com/tech/stl/Map.html

どうして小さいか

49 :デフォルトの名無しさん:2008/10/16(木) 17:08:35
かどうかしか調べてないのにキーがー致するの?
大きいかった場合は?

50 :デフォルトの名無しさん:2008/10/16(木) 17:16:26
SGIのSTLかよ!

51 :デフォルトの名無しさん:2008/10/16(木) 17:19:17
>>49
ひんと ニ分木

52 :デフォルトの名無しさん:2008/10/16(木) 17:24:29
_
_分木

53 :デフォルトの名無しさん:2008/10/16(木) 17:25:36
>>48
a<bでもb<aでも無い場合とかじゃね

54 :デフォルトの名無しさん:2008/10/16(木) 18:14:46
>大きいかった場合は?

ない

55 :デフォルトの名無しさん:2008/10/16(木) 18:53:10
_
三分木

56 :デフォルトの名無しさん:2008/10/16(木) 18:54:39
_
三分木


57 :デフォルトの名無しさん:2008/10/16(木) 19:17:08
>>54 どうして

58 :デフォルトの名無しさん:2008/10/16(木) 19:28:27

三分木


59 :デフォルトの名無しさん:2008/10/16(木) 20:25:29
話の起点が見えないんだが何この流れ

60 :デフォルトの名無しさん:2008/10/16(木) 20:38:25
>>57
もちろん話の上では>>53の言うとおり、a<bでもb<aでも無い場合に2つの値は等価と扱われる。
それと、mapをbegin()からend()まで辿るとソートされていることが分かる。
実質ほとんど<ばかり調べ続ければ十分。

61 :デフォルトの名無しさん:2008/10/16(木) 23:37:57
環境はVC++2008EPEです
windowsアプリケーションの勉強をしていて本に載ってる環境設定が古いバージョンの物なのでわかりません。サンプルプログラムを実行してもエラーがでます
プロジェクト作成はwin32コンソールアプリケーション→windows アプリケーション→空のプロジェクトチェック→OKの手順で作っています
ソース
#include<windows.h>

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
MessageBox(NULL,"Kitty on your lap","メッセージです",MB_OK);
return 0;
}

エラー名
error C2664: 'MessageBoxW' : 2 番目の引数を 'const char [18]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

改善方法を教えてください

62 :デフォルトの名無しさん:2008/10/16(木) 23:43:21
MessageBox(NULL,TEXT("Kitty on your lap"),TEXT("メッセージです"),MB_OK);

63 :デフォルトの名無しさん:2008/10/16(木) 23:43:23
MessageBox(NULL, TEXT("Kitty on your lap"), TEXT("メッセージです"), MB_OK);
http://wisdom.sakura.ne.jp/system/winapi/win32/win4.html
http://wisdom.sakura.ne.jp/system/winapi/win32/win5.html

64 :デフォルトの名無しさん:2008/10/16(木) 23:43:44
MessageBoxA

65 :デフォルトの名無しさん:2008/10/16(木) 23:44:50
なんでサンプル通りに作らなかったんだろう

66 :デフォルトの名無しさん:2008/10/16(木) 23:45:16
ナニッ?!
世間では_TじゃなくてTEXTを使う方が一般的なのか?

67 :デフォルトの名無しさん:2008/10/16(木) 23:47:24
Unicodeの関係でしたか・・・
すばやい回答ありがとうございました!

68 :デフォルトの名無しさん:2008/10/16(木) 23:48:28
>>65
単にサンプルが古くて>>61のように書かれてただけだろ。
例えば猫でも分かるのSDK編とか。

69 :デフォルトの名無しさん:2008/10/16(木) 23:48:38
ねえ。Cの引数って仮引数ジャン。 戻り値も仮戻り値なの?

70 :デフォルトの名無しさん:2008/10/16(木) 23:50:03
>>68
でも明らかに>>63と文字列が同じだよ?

71 :デフォルトの名無しさん:2008/10/16(木) 23:50:07
>>66
TEXTは<windows.h>をインクルードするだけで使える。
_Tは<tchar.h>をインクルードする必要がある。
そのせいで、あまりにも短すぎるサンプルだとTEXTが好まれる傾向にあると感じる。

TEXTと_Tで異なる状態になるってのは有り得ないから混同しても問題なく、どっち使うかは好みの問題。
TCHARと_TCHARだとそうもいかない場合があったかもしれないが。

72 :デフォルトの名無しさん:2008/10/17(金) 00:04:01
MessageBoxW()みたいにAPIには全部Wをつける。
文字列には L"・・・" みたいにLをつける。

これで、すっきり。

73 :デフォルトの名無しさん:2008/10/17(金) 00:07:45
アンダースコアが付いていないバージョンはWindowsヘッダーファイルがデフォルトで扱う文字セットを制御する
アンダースコアが付いているバージョンはCランタイムヘッダーファイルがデフォルトで扱う文字セットを制御する

ちゃんと違いはあるよ

74 :デフォルトの名無しさん:2008/10/17(金) 00:44:17
T"もじれつ"

T("もじれつ") または "もじれつ" か L"もじれつ"

にするマクロはかけないの

75 :デフォルトの名無しさん:2008/10/17(金) 00:46:23
T("もじれつ")じゃなくて_T("もじれつ")ではないかと言ってみるてst

普通に置き換えでいいでしょ

76 :デフォルトの名無しさん:2008/10/17(金) 00:51:49
環境:WinXp+Cygwin

TEST* stTEST = new TEST [i];
・・・ここまで構造体配列stTESTの内容を設定・・・

do{
 if( stTEST == NULL ) cout << "null1" << endl; //バグチェック1

 ・・・stTESTを使う100行くらいの処理・・・

 //上記の処理でstTESTの新しいメンバが設定される、
 //要素の追加の処理を知らないのでいったん削除して1つ大きく宣言しなおす
 i++;
 delete [] stTEST;
 stTEST= NULL;
 TEST* stTEST = new TEST [i];
 ・・・stTESTを再設定・・・
 if( stTEST == NULL ) cout << "null2" << endl; //バグチェック2
}while( currentNum < limitNum );

こんな感じで構造体配列stTESTを処理に使っていて、
do whileループで条件を満たさない限り構造体のメンバが1つずつ増える内容なのですが
上記のようにかなり強引にメンバを追加しようとしています。
実際これをコンパイルし実行すると1度最後のwhileまで実行された後バグチェック1に引っかかりエラーとなります。
このような無理やりなやり方ですがバグチェック2のあたりでは正常なのに
ループ始端のバグチェック1ではNULLとなってしまうのがわかりません。
バグチェック2とバグチェック1の間は実質何もないのになぜこうなるんでしょうか。
わけのわからない質問かつclassも知らないC言語上がりの恥ずかしい内容だとは思いますがよろしくお願いします。

77 :デフォルトの名無しさん:2008/10/17(金) 00:56:20
do-whileの中と外で2回stTESTが定義されているから

78 :デフォルトの名無しさん:2008/10/17(金) 01:00:19
無理にnew/delete使うくらいなら、realloc使ったほうがましだろって思った。

79 :デフォルトの名無しさん:2008/10/17(金) 01:04:19
>>77に一票

80 :デフォルトの名無しさん:2008/10/17(金) 01:12:20
>>77,79
いったんdeleteなりをしてなくなったことにして、
もう一度いちから宣言するというこのやりかた自体NGなのでしょうか。
にしてもループの終端と始端でNULLだったりしなかったりするのがよくわかりません。

>>78
reallocの存在を知りませんでした。今から試してみます。

ありがとうございます。

81 :デフォルトの名無しさん:2008/10/17(金) 01:13:55
データが入ったポインタから任意の位置のデータ抜き出すにはどうすればいいんですか?
2バイトでデータを区切って10バイト目を抜き出す場合、
___int16 afData[100];
afData = pbefData;
a = afData[4];
とかを想像しましたがエラー出まくりです。配列も大きいデータだとどこまで作れるのかわからないし。いい方法があったら教えてください。


82 :デフォルトの名無しさん:2008/10/17(金) 01:15:06
> TEST* stTEST = new TEST [i];
これを2回書いちゃってるから、再定義してるよこのスカポンタンて言われてると思う
stTEST = new TEST[i]; でいいんじゃないのかな

83 :デフォルトの名無しさん:2008/10/17(金) 01:20:09
>>74

むり

84 :デフォルトの名無しさん:2008/10/17(金) 01:27:41
>>82
エラー出なくなりました!
たしかに再定義ですね。int i = 0;を2回言うのと同じですね
人のプログラムを引き継いでやってるので意味もわからずコピペしてました。

でも別の問題なのか所望の動作しないwwでも頑張ります!
>>78のreallocもやるつもりです。ありがとうございました。

85 :デフォルトの名無しさん:2008/10/17(金) 03:54:29
>>72
えー。。。

86 :デフォルトの名無しさん:2008/10/17(金) 06:46:10
盆用ライブラリを作れるといいと言われたのですが
どのようなものを指すのですか?
拡張子がlibのもの?

教えてください><

87 :デフォルトの名無しさん:2008/10/17(金) 07:00:29
万能だろ。適用範囲が広いって事。
たとえばスタンダード テンプレート ライブラリは万能ライブラリ

88 :デフォルトの名無しさん:2008/10/17(金) 07:05:53
質問です。メモリマップドファイルは速いんですか?
1Gのファイルを、読み込んで1バイトずつの総和を求めようとした場合、
メモリマップドファイルと、一気に1Mずつ読み込むのでは速度差は出ますか?


89 :デフォルトの名無しさん:2008/10/17(金) 07:57:03
>>86
stdio のようなもののことでは?

90 :デフォルトの名無しさん:2008/10/17(金) 07:57:49
>>88
仕組みを考えると、処理速度を追求したものではないと思うのですが。

91 :デフォルトの名無しさん:2008/10/17(金) 09:14:26
>>90
実験してみます。 自前キャッシュを使うか、OSとメモリマップドファイルに
任せるかの違いなんですが。
シーケンシャルリードだったらそんなに変わらないと良いんですが。


92 :デフォルトの名無しさん:2008/10/17(金) 09:23:50
>>86
デスマーチに倒れていった先人のプログラマ達の霊を供養するライブラリじゃないかな
来年使う時期までまだ時間があるから自分自身が合掌される側に回らない程度にがんばれ

93 :デフォルトの名無しさん:2008/10/17(金) 11:02:48
盆用→凡用→汎用(はんよう)
こういうことか?
それとも、凡庸か?

94 :デフォルトの名無しさん:2008/10/17(金) 11:26:09
かつみ専用の図書館だな

95 :デフォルトの名無しさん:2008/10/17(金) 11:40:24
使おうと思っているライブラリのマニュアルに「ANSI C用にデザインしてある」ってかいてあるんですけど、
C++は使ってはいけないということになるんでしょうか。
提供されているヘッダには、
#ifdef __cplusplus
extern "C"
{
#endif
って書いてあります。
また、「Cランタイム関数のみを利用し、OS提供の関数を利用するな」ってあるんだけど、
どういう場合にこういう制限を設けるんでしょうか。

96 :デフォルトの名無しさん:2008/10/17(金) 11:55:05
#ifdef __cplusplus が付いてるなら、C++での使用も一応考慮されてるのだろうけど、
マニュアルに記述がないなら、何か問題があっても保証の限りではないってところでは
動くかもしれないけど保証はしない、自己責任でどうぞって感じ

移植性が必要なコードを書くときにはそういう制限を設ける
例えばWindows専用の関数を使ってしまったらMacに移植できない

97 :デフォルトの名無しさん:2008/10/17(金) 15:44:11
>>74
関数はTCHAR用、文字列はL""にしておいて
もしMBCSが必要になったらそこだけ置換すりゃいいんでねーの

98 :デフォルトの名無しさん:2008/10/17(金) 16:35:56
置換するためのマクロを探してたりしてな

99 :デフォルトの名無しさん:2008/10/17(金) 16:40:48
C#のインデクサーみたいに名前の付いた[]関数は出来ないの?

100 :デフォルトの名無しさん:2008/10/17(金) 18:16:34
多次元配列をコピーする方法を教えてください

int a [][2] = { 0, 60, 120, 180, 240, 360, 420, 540, 600, 660, 720, 780 };
int b[6][2];

aの内容をそっくりbにコピーしたい

101 :デフォルトの名無しさん:2008/10/17(金) 18:32:53
>>100 移植性があるかどうかわからんけど

#include <stdio.h>

int main(void)
{
int i, j;
int a [][2] = {{0, 60}, {120, 180}, {240, 360}, {420, 540}, {600, 660}, {720, 780}};
int b[6][2];

for (i = 0; i < sizeof(a) / sizeof(int); i++)
((int *)b)[i] = ((int *)a)[i];

for (i = 0; i < 6; i++) {
for (j = 0; j < 2; j++)
printf("%d ", b[i][j]);
putchar('\n');
}

return 0;
}

102 :デフォルトの名無しさん:2008/10/17(金) 18:41:22
>>100
memcpy(b, a, sizeof(a));

103 :デフォルトの名無しさん:2008/10/17(金) 18:42:38
memcpy

104 :デフォルトの名無しさん:2008/10/17(金) 18:47:03
>>99
VCなら
ttp://blogs.wankuma.com/melt/archive/2007/03/12/66223.aspx

105 :デフォルトの名無しさん:2008/10/17(金) 19:32:15
>>101,102,103,102
ご協力ありがとうございました。memcpyでいけました

106 :デフォルトの名無しさん:2008/10/17(金) 19:33:29
>>101,102,103,104
ご協力ありがとうございました。memcpyでいけました

107 :デフォルトの名無しさん:2008/10/17(金) 19:47:04
>>101,102,103,104
ご協力ありがとうございました。memcpyでいけました

108 :デフォルトの名無しさん:2008/10/17(金) 19:50:40
>>101,102,103,104
ご協力ありがとうございました。memcpyでいけました

109 :デフォルトの名無しさん:2008/10/17(金) 19:51:12
>>101,102,103,104
ご協力ありがとうございました。memcpyでいけました

110 :デフォルトの名無しさん:2008/10/17(金) 19:54:35
>>101,102,103,104
ご協力ありがとうございました。memcpyでいけました

111 :デフォルトの名無しさん:2008/10/17(金) 19:54:49
>>105-109
おちつけw

112 :デフォルトの名無しさん:2008/10/17(金) 19:55:20
>>105-109
おちつけw

113 :デフォルトの名無しさん:2008/10/17(金) 19:56:05
>>105-109
おちつけw

114 :デフォルトの名無しさん:2008/10/17(金) 20:30:15
>>105-109
おちつけw

115 :デフォルトの名無しさん:2008/10/17(金) 20:37:05
配列にはアドレスを代入できないらしいですけど

クラスのprivateで
typedef struct abc = {
int a;
char b;
} A, *B;

B b;

void AAA
{
A a[3] = {

116 :115:2008/10/17(金) 20:37:53
間違えました

117 :デフォルトの名無しさん:2008/10/17(金) 20:38:23
>>115
おちつけw

118 :デフォルトの名無しさん:2008/10/17(金) 20:42:39
int *n;

n = new int[3];

これってint n[3]ってことですか?

となると、これに他のアドレスは代入できないのでしょうか?

119 :デフォルトの名無しさん:2008/10/17(金) 20:45:26
いやできる。
int *n;
n = new int[3];
delete[] n;
n = new int[5];
int *m = n;
n = new int[7];
delete[] n;
delete[] m;

120 :デフォルトの名無しさん:2008/10/17(金) 20:53:25
#define num 3

int a[num] = { 3, 5, 1 };

int b[num];

b = a;

これは可能ってことですか?

今実行環境がないので試せないので誰が教えてください><


121 :デフォルトの名無しさん:2008/10/17(金) 20:56:03
期待している結果にはならない

122 :デフォルトの名無しさん:2008/10/17(金) 20:56:59
>>120
コンパイルエラー

123 :デフォルトの名無しさん:2008/10/17(金) 20:59:44
>>120
aとbは定数だから代入はできない

124 :120:2008/10/17(金) 21:02:41
どうすればaを代入できるのでしょうか・・・。

初歩的な質問すぎて申し訳ないです。



125 :デフォルトの名無しさん:2008/10/17(金) 21:05:57
>>120
ネットに繋がるパソコンがあるなら環境を作ったほうがいい
Visual Studio Express Edition あたりを検索ワードにすれば無料で使えるコンパイラが見つかる

126 :デフォルトの名無しさん:2008/10/17(金) 21:06:14
ご協力ありがとうございました。memcpyでいけました

127 :デフォルトの名無しさん:2008/10/17(金) 21:06:58
>>124
>>100,102

128 :29:2008/10/17(金) 21:36:08
>>33どうもありがとうございます。ウィンドウプロシージャも別ファイルにかく方法でいきたいとおもいます。
というか、自分ではどうすればいいのかわからないので、その方法で行きます。主要なメッセージだけ主ファイルの
関数から呼ぶというのは、自分のレベルでは理解できないので、まずは、別ファイルにかく方法でいきたいとおもいます。

どうもありがとうございました。

>>他に回答くださった皆さん。
VC6は兄の押入れにあったやつです。もう眠っているやつみたいなので、やってみました。

みなさん、ありがとうございました。お礼が遅れて済みませんでした。

129 :デフォルトの名無しさん:2008/10/17(金) 21:49:39
memcpyって便利ですね。

他にメモリをコピーできるのはないんですか?

130 :デフォルトの名無しさん:2008/10/17(金) 21:51:00
memmoveとかC++ならstd::copyとか

131 :デフォルトの名無しさん:2008/10/17(金) 21:53:39
>>129
何で他のが欲しいのかよく分からんけど、メモリ上にどういったレイアウトで
配置されてるかを知っておかないとそのうち困るよ

132 :デフォルトの名無しさん:2008/10/18(土) 00:48:25
C++です

@cinで数値を入力させたaをマイナスにしてやりたい時はそのまま-aみたいに書いちゃってもいいんでしょうか?

Awhile文にて、bが-aより大きく、かつbはaより小さいとき、と書きたい時は
while(-a<b && b<a)
という書き方をしても大丈夫でしょうか?

あまり丸投げにすると悪いんでこんな形の質問ですがよろしくお願いします

133 :デフォルトの名無しさん:2008/10/18(土) 01:07:43
>>132
@OK
AOK。ただし、<は半角で。

134 :デフォルトの名無しさん:2008/10/18(土) 01:16:46
>>133
返答ありです


基本的にプログラムしたことはうまくいってくれるんだけど
while()内の条件通りに繰り返してくれないのはやっぱり()内の条件付けの考え方を間違えてるんでしょうか?

135 :デフォルトの名無しさん:2008/10/18(土) 01:33:36
int c;
int* a;
int b[5] = {2,3,4,5,0};
a = b;
c = sizeof(a);

ポインタaの中のバイトサイズを知るにはどうすればいいんですか?sizeofでとりだせません。

136 :デフォルトの名無しさん:2008/10/18(土) 02:12:39
>>135
c に sizeof(int) * 5 を期待しているのであれば、無理だと思います。

137 :デフォルトの名無しさん:2008/10/18(土) 02:30:09
c = sizeof(a);
だと、cに4が入ってしまします。
c = sizeof(*a);
こうすると*aにはbのアドレスが入ってるからいいとおもったんですが、cに2が入るんです。
どうしてもbのサイズ20が取り出せません。どうすればいいか教えてください

138 :デフォルトの名無しさん:2008/10/18(土) 02:38:31
>>137
残念ながら無理だと思います。
b のアドレスだけをみて、「b が配列のあたまのアドレスでありかつ配列のサイズはsizeof(int)*5 ということが、普通わかるのでしょうか?
べつに自分で管理でもしておかないかぎり、不可能だと思います。

ところで環境はなんですか?sizeof(int *) =2、sizeof(int) = 4、というのは、ちょっとよくわからないのですが?スモールモデル?タイニーモデル(いずれも死語)?


139 :デフォルトの名無しさん:2008/10/18(土) 02:41:45
aに入ってるのはb[0]のアドレスです
間接演算子「*」をポインタに付けると、そのポインタが指している変数の中身にアクセスできます
つまり*aはb[0]に入っている「2」を指します

bのサイズを得るにはsizeof(b)とするしかありません
sizeof(a)で得られるのはアドレスのサイズ、sizeof(*a)で得られるのはint型のサイズです

140 :デフォルトの名無しさん:2008/10/18(土) 02:57:54
ポインタの話題は微笑ましいな

>>132
while(abs(a) > b)も可
でも>>133でダメなら問題文の解釈ミスだろうな

141 :デフォルトの名無しさん:2008/10/18(土) 03:00:00
>>139
そこで不用意に「2」とかかくと sizeof(*a)がb[0]の内容を返すように見えるから困る

142 :デフォルトの名無しさん:2008/10/18(土) 03:02:43
無理ですか。なにか方法がありそうでないのですね。はまってしまいました。参照もやってみましたが、エラー出まくりで対応しきれず挫折しました。
環境というかすいません、取り出した値は間違えでした。int部分はすべて__int16で実行した数値を書いてしまいました。ごめんなさい。


143 :デフォルトの名無しさん:2008/10/18(土) 03:14:18
変数に100kバイトのデータ入れるにはデータ型は何を使えばいいんでしょうか?


144 :デフォルトの名無しさん:2008/10/18(土) 03:16:14
char data[100000];
とか

145 :デフォルトの名無しさん:2008/10/18(土) 03:24:54
そんなにできるんですか、ポインタを使ってべたデータの先頭アドレスだけ指定する型とかはないんですか?
配列数が固定されてると、data[100001];にしたくなった場合また配列を作らなければいけないんですか?


146 :デフォルトの名無しさん:2008/10/18(土) 03:39:28
なにがしたいかというと
100kバイトのデータを編集してサイズを変えて80kバイトにした時に
メモリに無駄なくデータ型でキャストして配列にして個々に取り出せるようにしたいんです。
型 data;
__int16[sizeof(data)/2] = data;
これで解決出来そうなんですが、型の部分が不明です。なにがいいか教えてください。

147 :デフォルトの名無しさん:2008/10/18(土) 03:45:34
>>146
もう何が言いたいのかすごく分からないんだけど、メモリの動的確保を知ればいいのだろうか

148 :デフォルトの名無しさん:2008/10/18(土) 03:56:14
Cならcalloc、malloc
C++ならnewを使いなされ

149 :デフォルトの名無しさん:2008/10/18(土) 04:05:40
あとC++でコンテナもあるが、それじゃ不満出そうだなw

とりあえずポインタという単語は覚えたようだけど
発言からしてその機能(というか用途や存在意義?)は
まだ完全には理解できてないのはわかる

150 :デフォルトの名無しさん:2008/10/18(土) 04:05:46
それ以前に学ぶことがたくさんあるだろって感じだなあ

151 :デフォルトの名無しさん:2008/10/18(土) 04:13:59
たしかに何を言ってるかわかりませんねw
よく考えたらサイズのわからないデータを型で変数確保するなんて無理ですよね。
動的確保で作成、解放の繰り返しで対応しようと思います。ありがとうございました。
あ、でもsizeof(data)でサイズを調べた後ならそのサイズが収まるデータ型を指定して確保するような型はありそうでないんでしょうか?
struct newType{
__int16 type[sizeof(data)/2];
};
あ、でもsizeofで調べるdataの型はなんだろう・・・頭がやばい感じになってきました

152 :デフォルトの名無しさん:2008/10/18(土) 04:16:20
realloc()使えばいいんじゃね?

153 :デフォルトの名無しさん:2008/10/18(土) 04:32:06
使えばいいとかそういう段階じゃないとゆうとろうが

>>151
まず背伸びをやめることから始めようか

154 :デフォルトの名無しさん:2008/10/18(土) 04:48:21
背伸びすると自分を把握できない&相手に伝わらない
基礎からやるのを恥ずかしがるなよ

155 :デフォルトの名無しさん:2008/10/18(土) 04:54:20
borland C++ Compiler 5.5使ってC言語を学んでます。
下記のようにコンパイルした後に動作確認を行っているのですが、
これを一回のコマンドで実行できないでしょうか?
bcc32 test.c
test

156 :デフォルトの名無しさん:2008/10/18(土) 04:57:00
バッチファイル

157 :デフォルトの名無しさん:2008/10/18(土) 05:05:20
できました。
どうもありがとう。

158 :デフォルトの名無しさん:2008/10/18(土) 08:03:23
CreateWindowで作ったcheckboxの文字のサイズの変更はどうやってするのですか?

159 :デフォルトの名無しさん:2008/10/18(土) 09:21:38
if(buff[0] == '#') {
// リマーク行
continue;
}

-------------------------------------------

if(buff[0] == '#')
// リマーク行
continue;


この2つって全く違いますか? {} があるかないかで

160 :デフォルトの名無しさん:2008/10/18(土) 09:28:21
見易さが違う

161 :デフォルトの名無しさん:2008/10/18(土) 09:32:16
この場合は下の方が見やすいですか?

162 :デフォルトの名無しさん:2008/10/18(土) 10:44:38
上のほうだろ

163 :デフォルトの名無しさん:2008/10/18(土) 10:51:21
>>158
WM_SETFONT

164 :デフォルトの名無しさん:2008/10/18(土) 10:57:59
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7806.txt
いくつか打ち込んでみて、正常に動いたのですが
間違っているところがあるのではないかと不安です。
どなたか、チェックをお願いします。


165 :デフォルトの名無しさん:2008/10/18(土) 11:12:16
動いたのならいいじゃないか
15とか入れてみた?

166 :164:2008/10/18(土) 11:19:16
>>165
ぎゃー。15を入れてみたら、
素数ではありません
素数ではありません
素数です
と、表示されました・・・。

167 :デフォルトの名無しさん:2008/10/18(土) 11:29:49
>>163
ありがとうございます!

168 :デフォルトの名無しさん:2008/10/18(土) 12:42:51
>>164
URLにフイタ

169 :デフォルトの名無しさん:2008/10/18(土) 14:44:05
URLのどこがおもしろいんだろ?

170 :デフォルトの名無しさん:2008/10/18(土) 15:31:59
>>168
>>1 見て笑っとけ

171 :デフォルトの名無しさん:2008/10/19(日) 02:03:34
しつもんです。
char buff[20]
while(!=EOF){
buff[a++]=fgetc(f);
buff[a] = '\n';
}
printf("%s\n",buff);
でOSによってゴミが表示されたり、表示されなかったりするんですけれど、
基本的に、ゴミが表示される方が正しいんですか?表示されない方が
正しいんですか?

172 :デフォルトの名無しさん:2008/10/19(日) 02:07:01
>>171
最後は '\n' じゃなくて '\0' にしないとまずいだろ

173 :デフォルトの名無しさん:2008/10/19(日) 02:36:54
おぞましいソースだな

174 :デフォルトの名無しさん:2008/10/19(日) 02:49:31
あら、書き間違えた。
\0です。
ところで、ゴミが入るのは普通ですか?

175 :デフォルトの名無しさん:2008/10/19(日) 02:54:37
>>174
>>173
せめてちゃんと直してから質問しなおせ
\0に変えてもまだおかしいぞ

176 :デフォルトの名無しさん:2008/10/19(日) 03:24:29
while((c = fgetc((f))) != EOF){
if(c != ':'){
buff[at++] =c;
}
if(c == ':'){
ungetc(c,f);
buff[at] = '\0';
printf("%s",buff);
では、これで。
どうしてもゴミが入るんですが...

177 :デフォルトの名無しさん:2008/10/19(日) 03:58:15
>>176
whileや2回目のifの終端が分からんような断片的なソースを張るな。

とりあえずatを初期化しろ

178 :デフォルトの名無しさん:2008/10/19(日) 03:59:34
>>176
馬鹿なんだから、自分でここが原因だろうなとか考えるな
全部貼れカス

179 :デフォルトの名無しさん:2008/10/19(日) 04:09:37
古いサーバにTCPコネクションを張ってリクエストを出すのですが、高負荷にならないように、どの時点を
取ってもそこから過去T時間内にはN個以下のリクエストしか送ってないようにしたいです。そのために
以下のようなアルゴリズムでやろうとおもうのですが、いいでしょうか?
(これって有名な問題でしょうか?)
まず、リクエストを送信した時間を記録しておくキューを準備します。
そしてリクエストを出す際には、その時点から過去T時間まで遡って何個のリクエストが出ていたかを確認し、
(1)N個より少なかった場合
リクエストを出して、その時間をキューに追加します。そのときT時間よりも過去に送信したリクエストは
キューから削除します。
(2)N個だった場合
これ以上送れないので、リクエストを保留リストに繋ぎ、一番古いリクエストからT時間後に送信するように
OSのタイマーを使って設定します。
なんかこんがらがって来た。これでいいでしょうか?


180 :デフォルトの名無しさん:2008/10/19(日) 04:27:57
今日は基本情報/ソフ開の試験日

ここで答えるマはちょうどこれらを受けるレベルと重なるから
以後、日を改めた方がいいかもね

181 :デフォルトの名無しさん:2008/10/19(日) 04:53:20
>>179 やってみたぜ
#include<deque>
#include<cstdio>
#include<cstdlib>
#define N 5
#define T 100
#define TIME_MAX 1000
class connection_t{
public:
time_t send, post;
connection_t():send(0),post(0){}
};
int request_proc(connection_t &connection, time_t send){
connection.send=send;
}
int main(void){
std::deque<connection_t> request;
connection_t temp;
for(time_t t=1;t<TIME_MAX || request.size()>0;t++){
while(request.size() && t-request[0].send>=T){ // 時間T経過したリクエストをキューから削除する
printf("post=%d send=%d\n", request[0].post, request[0].send);
request.pop_front();
if(request.size()>=N) request_proc(request[N-1], t); // 待ち状態のリクエストがあれば処理する
}
if(rand()%10==0 && t<TIME_MAX){ // リクエスト発生!!!
temp.post=t;
request.push_back(temp);
if(request.size()<=N) request_proc(request.back(), t); // N個目までは無条件にリクエストを処理する
}
}
return 0;
}

182 :デフォルトの名無しさん:2008/10/19(日) 06:12:00
どんなコンテナでも[]でのアクセスをサポートしてるものだったら受け取れて
その中身を表示する関数って書けますか?
std::vector<T>だけでいいなら

template <class T>
void show(std::vector<T> &v){
for (unsigned int i = 0; i < v.size(); ++i) {
cout << v[i] << " ";
}
cout << endl;
}

こんな感じでよく使ってるんですが。

183 :デフォルトの名無しさん:2008/10/19(日) 06:13:31
template <class T>
void show(T &v){
for (unsigned int i = 0; i < v.size(); ++i) {
cout << v[i] << " ";
}
cout << endl;
}

184 :デフォルトの名無しさん:2008/10/19(日) 06:29:26
template <typename T>
void show(T &v){
for( typename T::iterator it = v.begin(); it != v.end(); ++it )
{
std::cout << *it << " ";
}
std::cout << std::endl;
}
これで標準コンテナは大体いけるんじゃないか?

185 :デフォルトの名無しさん:2008/10/19(日) 06:40:28
引数はconstのほうがよくね?とか、boost::range使ってみよう、とか
#include <boost/range.hpp>
template<class T>
void show(const T &v)
{
typedef boost::range_iterator<const T> iter_t;
for(iter_t iter=boost::begin(v); iter!=boost::end(v); ++iter)
{
std::cout << *iter << " ";
}
std::cout << std::endl;
}

でもこんな関数書くくらいなら
std::copy(v.begin(), v,end(), std::ostream_iterator<T>(std::cout, " "));

でいいじゃんと思ったり

186 :デフォルトの名無しさん:2008/10/19(日) 11:25:53
std::ifstream使ってファイルの入力してて、一行ずつ処理するのにwhileとgetline使ってたんだが、
空白で区切られて思ったようにいかないんだけど、\nか\0のみで区切れる関数、ルーチンってないですか?
ちなみに処理系はVC9です


187 :デフォルトの名無しさん:2008/10/19(日) 11:30:20
つ マニピュレータ

188 :デフォルトの名無しさん:2008/10/19(日) 11:50:38
以下の本の中に

たとえstatic宣言した変数であっても
extern宣言することによって外部から参照できてしまう

とありました。これは本当ですか?
手元で試してみるとそんなことはないようなのですが…

「C/C++による組み込みソフトウェア開発技法]


下記は_gが見つからないとコンパイルエラーになりました。

a.c---

static int g = 10;

b.c---
#include <stdio.h>

extern int g;
int main(void)
{
printf("%d\n",n g);
return 0;
}

189 :デフォルトの名無しさん:2008/10/19(日) 11:55:31
>>188
その本の前提がおかしいんじゃないか?
普通、C/C++ではstaticはファイルスコープを持つから外部には公開されないぞ。

190 :デフォルトの名無しさん:2008/10/19(日) 12:05:50
>>181
誰か解説してくれ〜
181の動きがよくわからん。動作させてみて、ちゃんと動いてそうなんだけど、どうもよくわからん。
(1)1度もsendされないままプログラムが終了してしまうリクエスト(connection_tで表されるやつ)が
ないことは保証できるか?
tがTIME_MAXを過ぎた時に、request_proc()してないリクエストが1個とかのこってる状況ってどうすんのかな?
(2)2回sendされるリクエストは絶対にないか?
request_proc()は2個所から呼ばれてるけど、それぞれのIF文の条件が微妙にかぶってるのが理解しにくい。
すごいよ、こんなソースを短い時間でパッパッと書いちゃうなんて。


191 :186:2008/10/19(日) 12:29:56
>>187ども
STLとかあんま分からんから助かる

192 :186:2008/10/19(日) 12:44:03
マニピュレータで少しググってみたが、先頭の空白のことじゃなくて行中に現れる空白のことなんだが
つまりgetlineつかうとscanfみたいになるからfgetsみたくifstreamで動作させたいってこと


193 :デフォルトの名無しさん:2008/10/19(日) 12:45:03
>>192
こんなん?
getline(ifs, str)

194 :192:2008/10/19(日) 12:56:28
あれ・・・getlineで普通に動いてるorzなんでだr
荒らしてスマソ・・・

195 :デフォルトの名無しさん:2008/10/19(日) 14:11:15
>>190
別人だけど。

(1) 送信されないまま終わると思う
擬似的に>>179のアルゴリズムだけ組んだものっぽいから、
プログラム終了した後のことまで面倒見てないのではない?

その辺のところは実際には、リクエストに対するレスポンスを
同期的に受けるのか非同期で受けるのかでも対応変わって来そう出し。

(2) 無い・・・と思う
条件文が微妙に被っているのは、
while内の条件では、条件判定の直前にpop_frontしてるんで、
requestキューの要素数が1つ減ってるからじゃない?

条件文が被らないようにするなら、
pop_frontする前にrequest.size()>Nをチェックをして
request[N]のポインタを保存しとくことになるのかな。
まぁ、でも条件が被らなくなるだけで、キューの中身は
2つ目の条件式を判定した時の状態と全然違うから、
あまり意味は無いか。

196 :デフォルトの名無しさん:2008/10/19(日) 20:01:45
VS2008を使っています

デバックでビルドすると普通にコンパイル→リンクできるのですが、

リリースでビルトすると
1>_Lib_DXCamera.obj : error LNK2001: 外部シンボル "_D3DXMatrixLookAtLH@16" は未解決です

こんな感じなのが数個でてビルドできません。

解決方法教えてください!

197 :デフォルトの名無しさん:2008/10/19(日) 20:18:45
>>196
プロジェクトの設定を見直す。

198 :デフォルトの名無しさん:2008/10/19(日) 20:24:44
リリースのほうのリンカを追加したらできました

ありがとうございます

199 :デフォルトの名無しさん:2008/10/19(日) 20:29:34
私の友人のジョンは敬虔なクリスチャンだ。 ミサへの参加はもちろんのこと、教会が主催するボラン
ティア活動にも積極的に関わるし、日々の祈りもかかさない。 日本へ移住したのも布教活動のためだ
と言うし、日本語は実になめらかである。 このバイタリティが信仰心から生まれるものなら宗教も悪
いものではないとさえ思えてくる。

私自身は典型的な日本人がそうであるように無宗教に近い仏教徒だ。ジョンと友人になった経緯は長
くなるのでその話はまたの機会とさせてもらうが、思いおこせば奇跡的な出会いと思わざるを得ない。

さて、最近のジョンは日本のサブカルチャー、とりわけアニメに感心をもったようで、日本では誰も
が知っているアニメというと何だろうと私に質問してきた。

「ポケモン」や「サザエさん」といった定番のものを紹介し、最後に「ドラえもん」を紹介した。す
るとジョンは「ドラえもん」に対して異常に怯えはじめた。 ドラエもんの中には悪魔がいるというのだ。

言われてみるとDORAEMONの中にはDEMONがある。 そして、ねこ大好きな純朴な人々に自分は猫型だと
偽るなど実に悪魔的な諸行ではないか。そんなことにも気付かずに我々はドラえもんをほほえましい
人間の味方と騙されきっていたとは自分の馬鹿さ加減に呆れる。

未だ自分が悪魔に騙されていると気付いていない愚かな悪魔崇拝者どもの目を醒させるために我々は
活動を開始することにした。 手始めに猫スレを巡回してこの事実を広めていこうと思う。 皆にはこ
の文章をなるべく多くの目に触れるようにコピペしてもらいたい。

Kill DORAEMON, Kill DEMON !!!

200 :デフォルトの名無しさん:2008/10/19(日) 20:46:14
>>198

阿呆

201 :デフォルトの名無しさん:2008/10/19(日) 20:54:10
>>199

阿呆

202 :デフォルトの名無しさん:2008/10/19(日) 20:56:36
>>147

ド阿呆

203 :デフォルトの名無しさん:2008/10/19(日) 21:06:28
混じれすすると、そこに入っているのはDAEMON(守護神)だと
考えることもできるんじゃないかな。
どれだけキリスト教と関係あるか知らないけど。

204 :デフォルトの名無しさん:2008/10/20(月) 00:43:41
C言語掲示板で質問したところ、環境依存スレに書き込むよう言われました。
ですので、こちらに書かせてもらいます。

ファイルパスについての質問です。
「実行ファイルを元にした相対パスを、
絶対パスにするにはどうしたらいいのでしょうか?」
相対パスを絶対パスに変換する関数は見付かったのですが、
カレントディレクトリを元にしているため、
カレントが変わると結果も変わってしまって困っています。

環境
OS:Windows XP
コンパイラ:BCC(一応VCも入れてある)

205 :デフォルトの名無しさん:2008/10/20(月) 01:32:20
>>204
その実行ファイルの絶対パスとくっつければいいんでね?
としか思えんのだが、それがダメなら理由を説明しろ。
状況がわからん。

206 :デフォルトの名無しさん:2008/10/20(月) 02:10:09
>>205
最初はそれでもいいかと思ったのですが、
途中で、「実行フォルダの1つ上のフォルダ」に変更があった場合(あくまで例)、
編集しやすいようにと思った次第です。

出来ないのであれば、絶対パスを返す関数を探しますけど。

207 :デフォルトの名無しさん:2008/10/20(月) 06:54:22
普通にあるだろ。名前忘れたけど

208 :デフォルトの名無しさん:2008/10/20(月) 07:06:58
あるよ





俺も忘れたけど

209 :デフォルトの名無しさん:2008/10/20(月) 08:34:24
APIスレで聞くといいよ

210 :デフォルトの名無しさん:2008/10/20(月) 09:33:58
仕方ないからリファレンス本引っ張ってきた

カレントディレクトリの変更
#include<stdlib.h>
int _chdir(const char *dirname); //vc
int chdir(const char *dirname); //gcc

カレントディレクトリを取得
char *_getcwd(char *buffer, int maxlen); //vc
char *getcwd(char *buffer, int maxlen); //gcc


bccでの有無は知らんが、bccなんて載ってるわけがねぇ
なんでいまだに初めての環境がbccってのが多いんだろ

211 :デフォルトの名無しさん:2008/10/20(月) 09:39:52
>>204
Windows限定でいいのならPathAppend

212 :デフォルトの名無しさん:2008/10/20(月) 09:40:02
>>195
ありがとうス。でも手元のマシンでログとか色々いれて>>181のソース動かしてるんだけど、
送信されないままのリクエストってないんですよ。沢山動かしてみたから
たまたまとかじゃなくて、ロジックとしてそうなってるんだと思うけど、
どうしてもその辺が納得できない。
if(request.size()>=N) request_proc(request[N-1], t); // 待ち状態のリクエストがあれば処理する
}
この行だけなかなか理解できないス。2個目の質問はおかげで理解できました。
ありがとうス。


213 :デフォルトの名無しさん:2008/10/20(月) 10:50:00
>>181
>>195
ようやく分かりました。リクエストが呼ばれないままプログラムが終わることは
ないと思います。キューの中で先頭からN個のリクエストだけが常にSENDになっていて、
一番古い先頭のリクエストがT時間たった時点でのみN番目のリクエストがN-1番目に下りてくる。
しかしこんなソースよく書けますね
ありがとうございました。


214 :デフォルトの名無しさん:2008/10/20(月) 11:46:29
デフォルトコンストラクタと初期化子に関する質問です。

class C {
int c, v;
C() : c(0) {}
C(int val) v(val) {}
};

とおいた場合、
C hoge(0);
として
hoge.c
は初期化されているのでしょうか。

215 :デフォルトの名無しさん:2008/10/20(月) 11:50:28
いいえ

216 :デフォルトの名無しさん:2008/10/20(月) 11:55:16
ありがとうございました

217 :デフォルトの名無しさん:2008/10/20(月) 14:47:26
コンテナを基底クラスにしたsetやmapに、派生クラスのインスタンスをつっこむと
コピーされて基底クラスの集合になっちゃうんですが、どうすればよいんでしょうか。
shared_ptrでポインタをつっこむのが定番でしょうか。


218 :デフォルトの名無しさん:2008/10/20(月) 16:03:12
どうしてVCは

short 16
int 32
long おう

じゃないの?
そのせーでlong long とか見苦しいことしないといけないし

219 :デフォルトの名無しさん:2008/10/20(月) 16:10:33
__int64使え

220 :デフォルトの名無しさん:2008/10/20(月) 16:25:13
>>218
ひんと ごかんせー

221 :デフォルトの名無しさん:2008/10/20(月) 17:39:25
テキストファイルを読み込んでstd::wstringに格納するにはどうすればいいですか?

222 :デフォルトの名無しさん:2008/10/20(月) 17:45:47
コードを書けばいいと思います

223 :デフォルトの名無しさん:2008/10/20(月) 17:46:39
wcin

224 :デフォルトの名無しさん:2008/10/20(月) 17:47:29
と cat だな!

225 :204:2008/10/20(月) 17:54:12
>>207-212
ありがとうございます。
ちょっと調べてきます。
実は実行ファイルの絶対パスをくっ付けるのでとりあえずしていたので、
出来そうなら修正します。

226 :デフォルトの名無しさん:2008/10/20(月) 19:05:51
>>225
PathAppendではなくPathCombineだった。失礼。

227 :デフォルトの名無しさん:2008/10/20(月) 19:20:36
typedef struct{
int data;
char mozi[10];
}Hoge;

という構造体の配列 Hoge huga[10]を宣言します。

i番目のHogeのメンバーのmoziの1文字目にアクセスしたいんですが、どう書けばいいんですか?

huga[i].mozi[1]かな?と思ったんですが・・・

228 :デフォルトの名無しさん:2008/10/20(月) 19:24:11
1文字目は [0]

229 :デフォルトの名無しさん:2008/10/20(月) 19:25:08
ああそうですね・・・
でもコンパイルできないんです

230 :デフォルトの名無しさん:2008/10/20(月) 19:30:29
エラーメッセージとソースがないと分からないよ

231 :デフォルトの名無しさん:2008/10/20(月) 19:32:21
char' から 'const char *' に変換できません
といわれます

232 :デフォルトの名無しさん:2008/10/20(月) 19:35:35
レッツエスパー

233 :デフォルトの名無しさん:2008/10/20(月) 19:40:53
%cではなく%sになってるとエスパニョール

234 :デフォルトの名無しさん:2008/10/20(月) 19:42:46
huga[i]のmoziの0文字目と別の文字をstrcmpで比較してるんですが・・・

235 :デフォルトの名無しさん:2008/10/20(月) 19:45:17
strcmpに何を渡すか調べろ

236 :デフォルトの名無しさん:2008/10/20(月) 19:50:25
んなこったろーと思った

237 :デフォルトの名無しさん:2008/10/20(月) 20:09:35
後出しジャンケン最強ですね、わかります

238 :デフォルトの名無しさん:2008/10/20(月) 20:12:44
後出しも何も、そのまんまじゃないか。

239 :234:2008/10/20(月) 20:22:31
もっと真摯的に回答しろよ。

240 :デフォルトの名無しさん:2008/10/20(月) 20:24:47
>>239
一文字だけ比較なら、

if (huga[0] == str[0]) ・・・

でいいよ。

241 :デフォルトの名無しさん:2008/10/20(月) 20:31:47
std::exceptionにウニコード入れてキャストしてもいいの?

242 :234:2008/10/20(月) 21:25:29
>>236
そう思ったなら分かった時点で言ってくれればいいのに。
後出しジャンケン最悪><

243 :デフォルトの名無しさん:2008/10/20(月) 21:56:14
ジャンケンのアナロジーを使うってことは、この問答に勝負の匂いを感じてるってことかな。

でももしそうなら、もう最初の質問文の時点でコールド負けしてるぞ、お前w

244 :デフォルトの名無しさん:2008/10/20(月) 23:09:04
VSで

if(fopen_s(&fpout, "data.txt", "w")){

exit(1);
}
で出力用のファイルを作成するとソースファイルとかがある階層にファイルが作られますが、
フォルダを作って、その階層にファイルを作ることはできますか?

245 :デフォルトの名無しさん:2008/10/20(月) 23:11:12
>>244
もちろん出来るよ

246 :デフォルトの名無しさん:2008/10/20(月) 23:11:47
>>245
if(fopen_s(&fpout, "data\data.txt", "w")){

exit(1);
}

ってやったんですがエラーになります・・・

247 :デフォルトの名無しさん:2008/10/20(月) 23:12:36
>>246
\→\\

248 :デフォルトの名無しさん:2008/10/20(月) 23:19:16
>>247
それでもだめでした。ファイルポインタエラーになります

249 :デフォルトの名無しさん:2008/10/20(月) 23:20:25
>>248
フォルダがなければ作成

250 :デフォルトの名無しさん:2008/10/20(月) 23:21:50
>>249
フォルダは作ってくれないんですね・・
WinApiじゃないとフォルダ作成はむりですか?

251 :デフォルトの名無しさん:2008/10/20(月) 23:26:38
_mkdirかな。使ってないからわかんないけど。
MSDN見てみてね。

252 :デフォルトの名無しさん:2008/10/20(月) 23:27:13
_tmkdir
こっちがいいか。

253 :デフォルトの名無しさん:2008/10/20(月) 23:51:47
template<CLS &p>
class ABC {
public:
};

としたとき、テンプレート値を省略できて、それを検知して適切な処理をさせられますか?


254 :デフォルトの名無しさん:2008/10/20(月) 23:53:08
自己解決しました

255 :デフォルトの名無しさん:2008/10/21(火) 00:26:22
すみません。Windows用のC++ライブラリはボーランドのC++BuilderかVisualStudio付属のしか
ありませんか?

256 :デフォルトの名無しさん:2008/10/21(火) 00:26:45
自己解決してません。 テンプレート値を省略した場合、デフォルトを設定する方法わかりますか?

特化パラメータを指定しないとテンプレート を使えない

とでます。ネットで調べた方法 template <class T = int>のようにした場合です。

257 :デフォルトの名無しさん:2008/10/21(火) 00:29:30
>>256
それを使うときにはABC<>のように空の括弧が要るぞ、って問題じゃない?

258 :デフォルトの名無しさん:2008/10/21(火) 01:46:00
ごく普通に、throw std::exception();と書いたら、
場所によって(特定のクラスのコンストラクタとか)
vswprint.cでBuffer too smallとエラーがでるのね。
どこが悪いの?

259 :デフォルトの名無しさん:2008/10/21(火) 02:10:03
VC6でブラウザつくったんだけど(本の通りやって)
VC6がでてから何年もたってるからFlushとかうまく表示できないんだろうと
思ってたけど、普通に表示できるけど、VC6のインターネット関連のコンポーネントって
今のPC上のIEエンジンがつかわれるのかな?VC6時代のやつじゃなくて。

260 :デフォルトの名無しさん:2008/10/21(火) 03:22:52
C++が一番難しいの?

261 :デフォルトの名無しさん:2008/10/21(火) 10:13:29
C++が一番気持ちいいの。

262 :デフォルトの名無しさん:2008/10/21(火) 12:51:15
>>258 バッファが小さすぎるんだろ。

263 :デフォルトの名無しさん:2008/10/21(火) 17:37:55
>>259
VC6にそんな機能は全くない。間違いなくIEコンポーネント使っているだけ。
HTTPでファイルをダウンロードしたり、HTML/CSSに従ってレイアウトしたり、
JavaScriptのインタプリタ作ったり、Flashを呼び出したりするコードを書いた覚えなんて一切ないだろ。

264 :デフォルトの名無しさん:2008/10/21(火) 18:04:04
VC6にIEコンポーネントが付属していて、それをスタティックリンクすると思ってたんじゃないの
VC6当時はなかったIE7で動作するのが不思議に思ったって事でしょ

265 :259:2008/10/21(火) 19:34:14
あれれ。。回答ついてるや。。

そうなんです、>>264さん。VC6にIEコンポーネントが付いてるとおもったんです。
初心者用の本の通りに作ったんです。ですから、あっという間にブラウザができて
コードなんてほとんど書いてなかったから、なにがどうなってどういうブラウザができたとか
さっぱりわからんのです。でもわかりました。>>263さんのいうとおりIEコンポーネントを使ってるということですね。

お二方どうもありがとうございました。おかげさまで心よく理解する事ができました。

266 :デフォルトの名無しさん:2008/10/21(火) 23:28:54
_sctprintf で出鱈目な長さが返って来るんだけどバグなの?

267 :デフォルトの名無しさん:2008/10/22(水) 00:10:51
何を指定して何が返ってきてデタラメだと思ったの。

268 :デフォルトの名無しさん:2008/10/22(水) 00:15:18
_vstprintfにしたらいけました

269 :デフォルトの名無しさん:2008/10/22(水) 09:44:55
while ( !feof(fp) ){

for (int i = 0; i < N; i++){
fscanf(fp,"%lf",&data[i]);
if( data[0] < 0 ) break;
}


}


読み込むテキストはN列あります。
5.2 12.2 124.7
15.2 52.2 24.7
25.2 92.2 324.7
-1.0
3.2 12.2 124.7

-1.0は区切りのためにいれてるんですが、-1.0が読み込まれたら飛ばして次の行にいくってプログラムを書いたつもりなんですが、
-1が読み込まれると無限ループになってしまいます。解決策をおねがいします・・・

270 :デフォルトの名無しさん:2008/10/22(水) 09:55:16
それ以前の問題に見えるが、、、そのソース。

271 :デフォルトの名無しさん:2008/10/22(水) 09:59:22
いろいろ直していただいてかまわないので、教えてください

272 :デフォルトの名無しさん:2008/10/22(水) 10:21:48
>>269
feofの使い方間違ってる

273 :デフォルトの名無しさん:2008/10/22(水) 10:23:06
いや間違ってるとはいったが、無限ループとは関係ないけどね

data[0]じゃなくてdata[i]じゃないの?

274 :デフォルトの名無しさん:2008/10/22(水) 10:28:27
>>273

-1.0が書いてあるのは1列目なんで0でいいかなと

275 :デフォルトの名無しさん:2008/10/22(水) 10:29:45
>>272
while ( !feof(fp) ){

for (int i = 0; i < N; i++){
fscanf(fp,"%lf",&data[i]);
if( data[0] < 0 ) break;
function(data);

}


}

1行ごとに読み、それを関数に渡して処理。そして次の行を読むっていうのをEOFまでやってるんです。
使い方どう違いますか?

276 :デフォルトの名無しさん:2008/10/22(水) 10:31:13
while ( !feof(fp) ){
flag =0;
for (int i = 0; i < N; i++){
 fscanf(fp,"%lf",&data[i]);
 if( data[0] < 0 ) }
flag = 1;
break;
}


}

if(flag !=1 )function(data);

}

こうでした。すいません

277 :デフォルトの名無しさん:2008/10/22(水) 10:31:18
fscanf(fp,"%lf",&data[i]);
これで3つの数値が data[0]、data[1]、data[2]に入ると思ってる?
scanfaの仕様をみなおしてみたほうがいいよ

278 :デフォルトの名無しさん:2008/10/22(水) 10:32:03
あれwwまたおかしい

while ( !feof(fp) ){
flag =0;
for (int i = 0; i < N; i++){
 fscanf(fp,"%lf",&data[i]);
 if( data[0] < 0 ) {
flag = 1;
break;
}


}

if(flag !=1 )function(data);

}
です

279 :デフォルトの名無しさん:2008/10/22(水) 10:33:39
>>277
-1.0の意図的な区切りが出てくるまでは読めてます。for文でまわしてるので大丈夫だと思ってましたが・・・

-1.0を付加してるのはtxtファイルのメンテナンスをしやすくするためです

280 :デフォルトの名無しさん:2008/10/22(水) 10:35:06
>>279
改行だけでよかろ?

281 :デフォルトの名無しさん:2008/10/22(水) 10:36:35
>>280
-1.0のあとにその上のデータを作成した方法を記載しているのです。

-1.0 pattern a
とかなってます。言ってなくて申し訳ありません。

282 :デフォルトの名無しさん:2008/10/22(水) 10:42:59
だからよ、使い方間違ってるって。
順を追って動作一つ一つ追ってみ?

283 :デフォルトの名無しさん:2008/10/22(水) 10:46:22
>>282
eofじゃなかったら
for文でその行のN個のデータをN次元配列に格納。関数に渡す。
eofじゃなかったら ・・・・
eofだったらwhileから抜ける

だと認識してるんですが・・・

284 :デフォルトの名無しさん:2008/10/22(水) 10:55:22
feofの使い方見直せ
feofはfprintfが最期の行読み込んだ後使うと真を返すんじゃなく
fprintfが最期の行読み込んだ後もう一回fprintfを使った後feof使うと真を返すんだよ

285 :デフォルトの名無しさん:2008/10/22(水) 10:56:02
ちょっと語弊がありましたすいません

286 :デフォルトの名無しさん:2008/10/22(水) 10:56:48
fprintfですか?ますますよくわからなくなってきました

287 :デフォルトの名無しさん:2008/10/22(水) 11:15:53
fscanfでしたごめんなさい

288 :デフォルトの名無しさん:2008/10/22(水) 11:19:50
-1.0が頭に出てきた列を読み飛ばすにはどうしたらいいですか?

289 :デフォルトの名無しさん:2008/10/22(水) 11:30:01
for (int i = 0; i < N; i++){
 fscanf(fp,"%lf",&data[i]);
 printf("%lf",data);
 if( data[0] < 0 ) {
みたいに実際に読んだデータを表示してみたら。
1ラインづつ読んで切り分けてatofでも使って変換、頭に-1.0があったら飛ばすでいいのでは。

290 :デフォルトの名無しさん:2008/10/22(水) 11:32:19
その飛ばすっていう方法がわかりません

291 :デフォルトの名無しさん:2008/10/22(水) 11:35:07
'\n'まで読むかfgets

292 :デフォルトの名無しさん:2008/10/22(水) 11:39:49
うまくできないので・・・書いてください

293 :デフォルトの名無しさん:2008/10/22(水) 11:42:41
宿題すれ

294 :デフォルトの名無しさん:2008/10/22(水) 11:49:22
図々しいと思わんのかな・・

295 :デフォルトの名無しさん:2008/10/22(水) 11:50:52
宿題スレに書きました。

296 :デフォルトの名無しさん:2008/10/22(水) 17:20:10
templateな関数はvirtualに出来ないの?

297 :デフォルトの名無しさん:2008/10/22(水) 19:31:44
数値微分ではなく関数を微分して関数を返すフリー(金の支払いが無い)のライブラリないですか?

298 :デフォルトの名無しさん:2008/10/22(水) 20:24:05
自動微分ってやつ?

299 :デフォルトの名無しさん :2008/10/22(水) 20:24:47
それって
y = ax + bって入力したら
y'= aって返ってくること?

そんなもんねーよ

300 :デフォルトの名無しさん:2008/10/22(水) 20:34:47
あるだろwww

301 :デフォルトの名無しさん:2008/10/22(水) 20:36:34
mathematicaなら出来きます。あとUBASIC86に多項式型が装備されていて微分可能です。
だから不可能ではないんです。
C言語でフリーのやつはないものかと。

302 :デフォルトの名無しさん:2008/10/22(水) 20:39:03
GNOME の Genius でできた気がする

303 :デフォルトの名無しさん :2008/10/22(水) 20:39:39
>>300
うそ、あんの?
教えてちょーだい

304 :デフォルトの名無しさん:2008/10/22(水) 20:45:56
多項式型と微積分するくらいなら楽勝に作れるんだが。
任意の関数の微分も出来るやつはないものか

305 :デフォルトの名無しさん:2008/10/22(水) 20:49:03
>>303
ごめん。無料ではしらない。
>>299が有料だろうと無料だろうとそんなもんはないし、作れないよ
みたいな風に見えたからさ

306 :デフォルトの名無しさん:2008/10/22(水) 20:57:03
vectorで作る配列って勝手に動的確保されるんですか?
でかかったら仮想メモリとかにおかれたり

307 :デフォルトの名無しさん:2008/10/22(水) 21:02:24
勝手に動的確保されるんです

308 :デフォルトの名無しさん:2008/10/22(水) 21:57:58
動的でなくても、すべてのメモリは仮想ですよ、いまどき

309 :デフォルトの名無しさん:2008/10/22(水) 21:59:39
SetRenderState使うときは前野を退避しないといけないの?

310 :デフォルトの名無しさん:2008/10/22(水) 21:59:41
ですよねぇ

311 :デフォルトの名無しさん:2008/10/22(水) 22:03:40
前野さん早く逃げて!

312 :デフォルトの名無しさん:2008/10/22(水) 23:23:12
構造体のvectorに代入するときってどうするんですか?

double型とかならば、

ary.push_back( 5.0 ); とかで末尾に入れれると思うんですが

313 :デフォルトの名無しさん:2008/10/22(水) 23:26:35
>>312
intとかdoubleとかの変数と同じだよ。

314 :デフォルトの名無しさん:2008/10/22(水) 23:26:41
>>312
構造体にコンストラクタを付ける

315 :デフォルトの名無しさん:2008/10/22(水) 23:28:21
同じようにすればいいですよ

316 :デフォルトの名無しさん:2008/10/22(水) 23:29:19
>>314
初期化するためのものではないのですか?

317 :デフォルトの名無しさん:2008/10/22(水) 23:29:58
ちなみに構造体はstring とdoubleの2メンバです

318 :デフォルトの名無しさん:2008/10/22(水) 23:36:46
Hoge hoge;

vec.push_back(hoge);

でいいだろ。

319 :デフォルトの名無しさん:2008/10/22(水) 23:39:33
>>318
どういうことですか?動的配列を使いたいのですが・・・

320 :デフォルトの名無しさん:2008/10/22(水) 23:53:11
>>319
「構造体をvectorに」のタイポかと勘違いしたよ。

「構造体のvectorに」って、

struct Hohe {
vector<T> vec;
};

ってこと?

321 :デフォルトの名無しさん:2008/10/22(水) 23:53:34
>>316
この場合は初期化のためというより一時オブジェクトを
利用したいから付ける

322 :デフォルトの名無しさん:2008/10/23(木) 00:01:32
typedef struct{
double data;

cahr name[256];

}DATA;

int main(){
std::vector<DATA> hoge<100>;


}

このhogeにデータを入れたいってことです

323 :デフォルトの名無しさん:2008/10/23(木) 00:02:06
おかしいっすね

typedef struct{
double data;

char name[256];

}DATA;

int main(){
std::vector<DATA> hoge(100);


}
こうでした・・・

324 :デフォルトの名無しさん:2008/10/23(木) 00:03:41
>>322
だから、

DATA d;

hoge.push_back(d);

でいいだろ。

325 :デフォルトの名無しさん:2008/10/23(木) 00:06:52
>>324
すいません。理解できないです。

hogeの末尾に double→1.0 char→"hoge"を入れる場合にはどうするんですか

326 :デフォルトの名無しさん:2008/10/23(木) 00:17:17
>>325
お前あちこちのスレにマルチしてるだろ

struct DATA {
double data;
char name[256];
DATA(double d = 0.0, char* str = "") : data(d) {
std::strcpy(name, str);
}
};

int main()
{
std::vector<DATA> hoge(100);

hoge.push_back(DATA(1.0, "hoge"));
}

327 :デフォルトの名無しさん:2008/10/23(木) 02:10:13
hoge.resize(hoge.size()+1);
hoge.back().data = 1.0;
std::strcpy( hoge.back().name, "hoge" );
とか

328 :デフォルトの名無しさん:2008/10/23(木) 04:36:52
>>296 試せよ。

329 :デフォルトの名無しさん:2008/10/23(木) 05:57:39
質問です。
以下のようなプログラムを書きましたが、終了しません。
>cat meso
123456
---------------------------------------------
FILE *f;
buff[256];
char *s;

f = fopen("meso","r");

while((s = hogehoge(f,buff)) != NULL){
         printf("%s¥n",s);
       }
      fclose(f);
    exit(0);
}
char *hogehoge(FILE *f, char *buff){
  int c = 0;
  int at = 0;

  while((c = fgetc(f)) != EOF){
   buff[at++] =c;
  }
  buff[at]='¥0';
  return buff;
}

どのようにすれば、このプログラムを終了させる事が出来るのでしょうか?




330 :デフォルトの名無しさん:2008/10/23(木) 06:04:58
>while((s = hogehoge(f,buff)) != NULL){
hogehogeのコードじゃnullが帰ることは決してないぞ。

331 :デフォルトの名無しさん:2008/10/23(木) 07:15:51
普通に代入して大丈夫だよ。自分でやってみて駄目だったら質問しろよ。
どのようにダメだったかを書いて

ただし、ポインタを持ってる構造体の場合は
コピーコンストラクタとoperator=をオーバーロードした方が良い。
これ以降は自分で勉強しな

332 :デフォルトの名無しさん:2008/10/23(木) 07:26:18
>>329
#include<stdio.h>

void hogehoge(FILE* f, char* buf);

#define BUF_LEN 256

int main() {
 FILE *f;
 char buf[BUF_LEN];

 f = fopen("a.out.c","r");
 hogehoge(f, buf);
 printf("%s\n", buf);
 fclose(f);

 return 0;
}
void hogehoge(FILE *f, char *buf){
 int c = 0;
 int at = 0;

 while((c = fgetc(f)) != EOF && at < BUF_LEN-1){
  buf[at++] = c;
 }
 buf[at] = '\0';
 return;
}


333 :デフォルトの名無しさん:2008/10/23(木) 12:38:13
stringに別のchar型の文字列を代入したいんですが、どうやるんですか?

334 :デフォルトの名無しさん:2008/10/23(木) 12:44:42
string s;
char c[4] = "abc";
s = c;
でおk

335 :デフォルトの名無しさん:2008/10/23(木) 13:20:14
ありがとうございます。stringをprintfで表示するときの%sてきな奴はなんですか?%sだとnullになります

336 :デフォルトの名無しさん:2008/10/23(木) 13:27:02
printf("%s", s.c_str());

337 :デフォルトの名無しさん:2008/10/23(木) 13:28:19
なるほど。coutつかったほうが楽そうですね。
fprintfのC++版ってあるんですか?

338 :デフォルトの名無しさん:2008/10/23(木) 13:33:17
>>337 printf 系は <cstdio> で全部そのまま使えるだろ。

339 :デフォルトの名無しさん:2008/10/23(木) 13:33:36
ofstream

340 :デフォルトの名無しさん:2008/10/23(木) 13:36:27
>>338
<iosteam>でも使えるぞ

341 :デフォルトの名無しさん:2008/10/23(木) 14:45:59
>>340 それは実装依存。ちゃんと対応したヘッダ使ってくれ。

342 :デフォルトの名無しさん:2008/10/23(木) 15:00:21
cmathのsqrtで何万回も計算するんだけど、遅いです

平方根はもとめないといけないんだけど(ユークリッド距離)なんかいい方法ないですか?

343 :デフォルトの名無しさん:2008/10/23(木) 15:08:21
sqrt の引数にとりうる数字が有限通りしかないならあらかじめ計算して覚えておく
くらいしか思いつかないなあ

344 :デフォルトの名無しさん:2008/10/23(木) 15:09:25
それはあまり現実的ではないですね・・・・あきらめます

345 :デフォルトの名無しさん:2008/10/23(木) 15:40:50
速くしなければならないかどうかを考える
sqrtをなるべく使わないようにする
ループの回数を減らせる方法がないか考える
sqrtの結果をキャッシュする

346 :デフォルトの名無しさん:2008/10/23(木) 16:08:41
FPUが遅いと文句を言ってるんならもっと速いCPUに買い換えるか
インラインアセンブラでSSE2のsqrtsdでも使うとか。

それ位しか思いつかない

347 :デフォルトの名無しさん:2008/10/23(木) 16:09:19
ああクアッドCPUなら計算範囲を1/4にして
スレッドを4つ起動すれば速いな

348 :デフォルトの名無しさん:2008/10/23(木) 16:30:11
_TIME_は、そのソースの書き込み時間ですが、
ビルドした時間を取得する マクロ? ってありますか?

349 :デフォルトの名無しさん:2008/10/23(木) 18:24:30
>>348
ビルド時にDオプションでどうにかすればいいんでない?

350 :デフォルトの名無しさん:2008/10/23(木) 18:40:58
ifstream はファイル読み込みだけですよね?ファイル書き込み(追記)できる関数ってなんでしたっけ?

351 :デフォルトの名無しさん:2008/10/23(木) 18:43:48
ofstream使え

352 :デフォルトの名無しさん:2008/10/23(木) 18:52:11
同じファイルから読んで、書き込みもできますか?

353 :デフォルトの名無しさん:2008/10/23(木) 18:54:36
できます

354 :デフォルトの名無しさん:2008/10/23(木) 19:00:27
C言語のa+みたいなモードがあるのかとおもったんですが・・・ないんですね

355 :デフォルトの名無しさん:2008/10/23(木) 19:12:25
なんでそんな変なモードを使いたいのかわからないが
fstream fs("filename.txt", fstream::in | fstream::out | fstream::app);
とかは?

356 :デフォルトの名無しさん:2008/10/23(木) 19:14:39
tbl.cpp
const char tbl[ 4 ][ 16 ]=
{
"spring",
"summer",
"auturmn",
"winter",
};

tbl.h
const char tbl[ 4 ][ 16 ];

test.cpp
#include "tbl.h"
void func()
{
printf("%s\n", tbl[ 0 ]);
}

C++でこれって出来ないの?
実体が無いって言われるんだけど。

357 :デフォルトの名無しさん:2008/10/23(木) 19:14:54
ofstream ofs("file.txt",ios::app);

if(!ofs.is_open()){
cout << "ファイル開けない " <<endl;
exit(1);
}

ifstream ifs("file.txt");
if(!ifs.is_open()) {
exit(1);
}

こうしたんですが、問題ありますかね

358 :デフォルトの名無しさん:2008/10/23(木) 19:19:38
>>356
externを付ける

359 :デフォルトの名無しさん:2008/10/23(木) 19:25:07
>>358
おおーありがとー。
externつけたけど、今度はconstが初期化されていないって言われる。
constを外すと複数定義されているって言われる。

360 :デフォルトの名無しさん:2008/10/23(木) 19:28:57
ヘッダファイルいらない

361 :デフォルトの名無しさん:2008/10/23(木) 19:31:51
>>360
ヘッダファイルが無いとtbl[]が無いって言われる。
cppをincludeしたら行けたけど、C++はcppをincludeするのが普通なの?

362 :デフォルトの名無しさん:2008/10/23(木) 19:32:52
普通にmain実行するようにちょい変えた

>> Makefile
test: test.o tbl.o
g++ test.o tbl.o -o test

clean:
rm *.o

>> tbl.cpp
#include "tbl.h"

const char tbl[ 4 ][ 16 ]=
{
"spring",
"summer",
"auturmn",
"winter",
};

>> tbl.h
extern const char tbl[ 4 ][ 16 ];

>> test.cpp
#include <cstdio>
#include "tbl.h"

int main(void)
{
printf("%s\n", tbl[ 0 ]);
}


363 :デフォルトの名無しさん:2008/10/23(木) 19:38:16
>>362
うーん。それだとconstが初期化されてないって言われるんだよねぇ。
error: uninitialized const 'Tbl'
って出る。

364 :デフォルトの名無しさん:2008/10/23(木) 19:44:17
あー分かった!
debug用に切っていたマクロをincludeしていなくて、定義されていないマクロの中に実体を定義してた。
しょうもない質問に、ありがとうございました。

365 :デフォルトの名無しさん:2008/10/23(木) 19:49:39
>>355
それにしてみたら、書き込まれないんですが・・・

366 :デフォルトの名無しさん:2008/10/23(木) 20:03:56
ifstream やofstreamではなく、fstreamをインクルードして使うときもfstream

367 :デフォルトの名無しさん:2008/10/23(木) 20:07:54
>>366
fstreamインクルードしてます

368 :デフォルトの名無しさん:2008/10/23(木) 20:09:53
使うときもfstream

369 :デフォルトの名無しさん:2008/10/23(木) 20:11:27
fstream fs("file.txt", fstream::in | fstream::out | fstream::app);

fs >> data;


こうやってるんですが書き込まれてないんですよね・・・

370 :デフォルトの名無しさん:2008/10/23(木) 20:12:37
fstream::appは知らないけど、入出力とバイナリ属性付けたらいけるのでは

371 :デフォルトの名無しさん:2008/10/23(木) 20:29:10
フラグ間違えてるだろ

std::ofstream ofs( "test.txt", std::ios::out | std::ios::app );

http://www.geocities.jp/ky_webid/cpp/library/033.html

372 :デフォルトの名無しさん:2008/10/23(木) 20:41:31
std::string ってZeroMemoryしていいんでしょうか?

373 :デフォルトの名無しさん:2008/10/23(木) 20:42:35
>>372
Copy On Writeありそうだからまずいんじゃね?

374 :デフォルトの名無しさん:2008/10/23(木) 20:43:06
いい
std::string s;の場合、&s[0]はchar*の先頭アドレスと同じように扱える

375 :デフォルトの名無しさん:2008/10/23(木) 20:45:11
>>371
読み込みはどうするんですか?

376 :デフォルトの名無しさん:2008/10/23(木) 20:46:04
std::ofstream ofs( "test.txt", std::ios::in |std::ios::out | std::ios::app );

377 :デフォルトの名無しさん:2008/10/23(木) 20:46:59
訂正

std::fstream fp( "test.txt", std::ios::in |std::ios::out | std::ios::app );

378 :デフォルトの名無しさん:2008/10/23(木) 20:49:09
>>377
うーん。かきこまれないです

379 :デフォルトの名無しさん:2008/10/23(木) 20:52:21
そしたらwinAPIつかえよ

380 :デフォルトの名無しさん:2008/10/23(木) 21:07:16
>>372
ZeroMemoryしなくてもresizeとかコピーされない手段を使えば、初めから0で埋まっているぞ。

381 :デフォルトの名無しさん:2008/10/23(木) 21:12:53
このプログラムで12345が2行書き込まれる。
#include <fstream>
#include <string>
int main()
{
std::fstream fp( "test.txt", std::ios::in |std::ios::out | std::ios::app);
fp << "12345\n";
fp.seekg(0, std::ios::beg);
std::string s;
fp >> s;
fp << s;
}

382 :デフォルトの名無しさん:2008/10/23(木) 21:41:14
#include <iostream>
using namespace std;

class Kitty{
int X;
public:
int & getX();
} obj ;

int & Kitty::getX() {
return X;
}

int main() {
obj.getX() = 10;
cout << obj.getX();
return 0;
}
のobj.getX() = 10が何をしてるのかわかりません。
10を代入してるのですか?
関数に数値を代入することってあるのでしょうか?

383 :デフォルトの名無しさん:2008/10/23(木) 21:47:23
参照型は左辺値になるから、
関数が参照型を返せばそういうこともできるというわけ。
実際使っているとこはあまり見ないけどな。

384 :デフォルトの名無しさん:2008/10/23(木) 21:48:27
10を代入しているのです
関数に代入するのではなく、戻り値であるintへの参照に代入しているのです

385 :デフォルトの名無しさん:2008/10/23(木) 22:09:37
質問です、include等は省略させていただきます。

struct data{
char word[81];
int zok;
int ret;
};

data DATA [255];

void main(){

FILE *fp ;
fp = fopen( "Library.dat" , "wb") ;

/* Library.dat の中身を DATA[255]にコピーする */

DATA[12].zok = 8;
DATA[12].ret = 90;
strcpy(DATA[0].word,"hogehoge");

/* Library.dat に DATA[255]の中身すべてを書き込む */

fclose(fp);
}

以上のような事を行いたいのですがコメント文の中身をどのように
すればよいのかをご教授ください。



386 :デフォルトの名無しさん:2008/10/23(木) 22:14:23
メモリマップドファイルが簡単

387 :デフォルトの名無しさん:2008/10/23(木) 22:18:59
>>386
ぐぐって見ましたが、確かにこれだとうまくできそうです。
ありがとん

388 :デフォルトの名無しさん:2008/10/23(木) 22:31:39
string filename;で定義したのをchar型が引数の関数に渡そうと

filename.c_str()で渡したんですが、const char *' から 'char *' に変換できませんとコンパイルとおらないんですが、どうやるんでしょう?

389 :デフォルトの名無しさん:2008/10/23(木) 22:36:57
>>388
char tmp[256];
strcpy(tmp, filename.c_str());

みたいにテンポラリにコピーしてから渡すとか。

390 :デフォルトの名無しさん:2008/10/23(木) 22:38:36
&filename[0]
にしとけよ

391 :デフォルトの名無しさん:2008/10/23(木) 22:47:08
>>388
引数の型を const char * に変える

392 :デフォルトの名無しさん:2008/10/23(木) 23:02:32
>>385の者です。調べながらコーディングしてみたのですが
『error C2440: '=' : 'LPVOID' から 'data *' に変換できません。』
と言うエラーが出てしまうのですが、何が間違っているのでしょうか?

struct data{
DATA lib[255];
};

data* mydata ;

int main(){
int i =0;
int *p = NULL;
HANDLE h;
HANDLE h2;
int tmp = 0;

h = CreateFile(
"memorymapping.dat" ,
GENERIC_READ | GENERIC_WRITE ,
FILE_SHARE_READ | FILE_SHARE_WRITE ,
NULL ,
OPEN_ALWAYS ,
FILE_ATTRIBUTE_NORMAL ,
NULL
);
printf("HANDLE = %ld, INVALID_HANDLE_VALUE = %ld\n", h, INVALID_HANDLE_VALUE );
h2 = CreateFileMapping(h, NULL, PAGE_READWRITE, 0, sizeof(data), "mmap");
mydata = MapViewOfFile(h2, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(data));/*★*/
/*以下略*/

393 :デフォルトの名無しさん:2008/10/23(木) 23:03:33
すいません、書き忘れてましたがエラーが出ているのは/*★*/でコメントしている行です。

394 :デフォルトの名無しさん:2008/10/23(木) 23:03:46
キャストしろ

395 :デフォルトの名無しさん:2008/10/23(木) 23:05:26
data* mydata = (data*) MapViewOfFile

396 :デフォルトの名無しさん:2008/10/23(木) 23:06:48
できました、ありがとうございます。
こんな初歩で失敗していたとはお恥ずかしい限りです・・

397 :デフォルトの名無しさん:2008/10/23(木) 23:07:13
>>389
>>390
>>391

できました!


398 :デフォルトの名無しさん:2008/10/23(木) 23:07:14
普通にfread(), fwrite() でやったほうが簡単じゃね?

fread(data, sizeof data[0], sizeof data / sizeof data[0], fp);
fwrite(data, sizeof data[0], sizeof data / sizeof data[0], fp);


399 :デフォルトの名無しさん:2008/10/23(木) 23:15:59
いずれにしても、メモリマップドファイルは勉強しておくと良い項目
オープンがちょっとめんどいが、読み書きのタイミングを自分で決める必要なしで
使うときは便利

400 :デフォルトの名無しさん:2008/10/24(金) 00:14:49
ifstream ifs("aa.txt");
とすればコンパイルとおるんですが

string filename;

filename = "aa.txt";


ifstream ifs(filename);のコンパイルが通りません。なぜでしょうか

401 :デフォルトの名無しさん:2008/10/24(金) 00:15:42
&filename[0]

402 :デフォルトの名無しさん:2008/10/24(金) 00:25:13
c_str()

403 :デフォルトの名無しさん:2008/10/24(金) 00:42:13
ありがとうございます。ふと思ったんですが、stringを予約語みたいに青くできますか?VSなんですが

404 :デフォルトの名無しさん:2008/10/24(金) 01:17:38
>>403
USERTYPE.DATでググれ。

405 :デフォルトの名無しさん:2008/10/24(金) 09:20:17
>>401
std::stringの連続性は保証されていないからまずいんじゃないの。

406 :デフォルトの名無しさん:2008/10/24(金) 11:11:26
俺もそうおもう

407 :デフォルトの名無しさん:2008/10/24(金) 11:14:23
実際では、連続していないやつは無いはずでは

408 :デフォルトの名無しさん:2008/10/24(金) 11:18:16
連続していても、ナルターミネートされている保証がなかったと思う。

409 :デフォルトの名無しさん:2008/10/24(金) 11:24:27
&hoge[0]つかわないんだったら、
stringをchar型の引数へわたすにはどうすりゃいいんだ? c.strじゃだめだし

410 :デフォルトの名無しさん:2008/10/24(金) 11:34:49
渡さなければいい。

411 :デフォルトの名無しさん:2008/10/24(金) 11:35:45
stringからconstじゃないcharにキャストできませんか?

412 :デフォルトの名無しさん:2008/10/24(金) 11:39:53
だから、互換性を無視して実装に依存したコードでいいなら好きにすればいいっしょ。
そうでないなら、直接渡すことは諦めてvector<char>でもchar[]でも使って中継すればいいだけだし。

413 :デフォルトの名無しさん:2008/10/24(金) 12:07:17
ここも知ったかが増えたな

414 :デフォルトの名無しさん:2008/10/24(金) 12:40:45
A. C++0xを使う。

415 :デフォルトの名無しさん:2008/10/24(金) 13:11:41
ファイル名を解析したいんですが
char file[256]とかに入っているファイル名の.の前(拡張子の前までの文字列を別のchar型の配列に入れたいんですが、どうしたら
いいやりかたありますか?

416 :デフォルトの名無しさん:2008/10/24(金) 13:27:03
strrchr()で最後のドットを探して、sscanf()か何かで引っぺがす。

417 :デフォルトの名無しさん:2008/10/24(金) 13:47:11
逆に.から後ろを入れたい場合はどうしますか?

418 :デフォルトの名無しさん:2008/10/24(金) 13:57:26
あと
data\\hoge.txt

みたいなファイル名の\の前を消そうとおもって
p = strrchr(filename,'\');
とするんですが、\がつかえないみたいでこまってます

419 :デフォルトの名無しさん:2008/10/24(金) 14:02:48
'\\'

420 :デフォルトの名無しさん:2008/10/24(金) 14:09:25
>>416
引っぺがす・・?

421 :デフォルトの名無しさん:2008/10/24(金) 15:30:41
>>420
何がご不満でも?

>>417
そっちも同じ要領でできるだろ。寧ろ簡単だ。
例えばこんな感じ。
--
char foo[] = "/foo/bar/fooz.foo.bar";
char ext[10];
char * dot = strrchr(foo, '.');
if (dot == NULL) ...; // dotが見つからない
if (dot == foo) ...; // 先頭がdot
if (foo + strlen(foo) >= dot + sizeof(ext)) ...; // 拡張子が想定より長い
strcpy(ext, dot);

422 :デフォルトの名無しさん:2008/10/24(金) 15:33:53
>>415
>416と>421を元に書いてみた。
char foo[] = "/foo/bar/fooz.foo.bar";
char * dot = strrchr(foo, '.');
if (dot == NULL) ...; // dotが見つからない
if (dot == foo) ...; // 先頭がdot

char baseName[100];
if (dot - foo >= sizeof(baseName) ...; // ベースネームが(ry
sprintf(baseName, "%.*s", dot - foo, foo);

423 :デフォルトの名無しさん:2008/10/24(金) 15:54:35
ifstreamでファイル読み込みすると最後の行が2回よまれるんですが。。。仕様ですか?

424 :デフォルトの名無しさん:2008/10/24(金) 15:57:46
そういうコードになってんじゃないの?

425 :デフォルトの名無しさん:2008/10/24(金) 15:59:13
while(!ifs.eof()){

ifs >> 変数;


 }

こんな感じですが、最後の行が2回読まれます

426 :デフォルトの名無しさん:2008/10/24(金) 16:02:32
eof()の使い方がおかしい。
eof()は自らはstreamを云々する関数ではないので、読み込んだ結果終端かどうかしか返さない。

427 :デフォルトの名無しさん:2008/10/24(金) 16:07:13
えっと・・・じゃあどうすればいいですか

428 :デフォルトの名無しさん:2008/10/24(金) 16:15:37
>>425
BASICのEOFと間違えてるだろ

do {
ifs >> 変数;
} while (ifs);

C/C++はあくまで読んだ後でないとEOFかどうか検出できない

429 :デフォルトの名無しさん:2008/10/24(金) 16:18:06
while (ifs >> 変数)
とか。

430 :デフォルトの名無しさん:2008/10/24(金) 17:13:32
C++のstringは何文字まではいるんですか?

431 :デフォルトの名無しさん:2008/10/24(金) 17:17:25
string::max_size() まで

432 :デフォルトの名無しさん:2008/10/24(金) 17:25:20
>>428
それでも2回よまれました・・・

433 :デフォルトの名無しさん:2008/10/24(金) 17:26:32
面倒だからgetlineにしてしまうとか

434 :デフォルトの名無しさん:2008/10/24(金) 17:36:37
>>432
for(;;){
ifs >> 変数;
if (ifs.eof()) break;
変数を使って何かする;
}

435 :デフォルトの名無しさん:2008/10/24(金) 17:46:49
>>73
輸出依存企業ってのは
国内で労働者を奴隷のように扱って海外に製品輸出してる企業だろ
倒産していいよそんなのは、むしろするべき。

436 :デフォルトの名無しさん:2008/10/24(金) 18:04:21
誤爆かい

その考え方はおかしいよ
海外で製品が売れることで日本に金が流れてくるんじゃん
輸入ばっかの企業のほうがダメ

437 :デフォルトの名無しさん:2008/10/24(金) 18:52:05
>>432
だから2回読むのは正常なんだって
問題は読んだ後にEOFになっているかどうかを調べろと言ってるの

438 :デフォルトの名無しさん:2008/10/24(金) 18:53:02
たしかコピペだから誤爆を装った工作だと思うが。
なりすましての嫌がらせも横行してるから
どちら側の仕業なのかわからんがね。
いずれにしてもスレ違いの話に反応するなよ。

439 :デフォルトの名無しさん:2008/10/24(金) 18:54:29
>>432
ああ言い忘れた
読んでその直後EOFになっていたら読んだ値は捨てる事。
読んだ直後EOFでなければ読んだ値は有効。

440 :デフォルトの名無しさん:2008/10/24(金) 19:00:18
ちなみにこいつはゲハ板でもマルチしてるゴミクズ

441 :デフォルトの名無しさん:2008/10/24(金) 19:16:48
2回読んだりしないだろ。読んでないから変数が書き換えられてないだけ。

442 :デフォルトの名無しさん:2008/10/24(金) 19:18:55
>>441
いやもちろんそうだが、C++はstd::ios::failbitやstd::ios..eofbitが
立ってしまうと読み込み書き出しの動作を止めてしまうので、
変数の値が変わらず、読んだように見える、と言いたかった。

C言語ならばfseek()でEOFマーカーをクリアできるが、C++の場合は
明示的にストリームに対しclear()などを行ってこれらのビットを
降ろしてやらなければ次の読み書きが一切出来ない。

443 :デフォルトの名無しさん:2008/10/24(金) 19:24:04
http://d.hatena.ne.jp/ntnek/20050824/p1

ここら辺。eof()を拾うのは正しい処理ではない。
ストリームに対して void* operator() を見るのが正解。

444 :デフォルトの名無しさん:2008/10/24(金) 19:26:33
じゃなかった、operator void*()か。
C++はややこしい決まり事が無数にあるのでやっぱり本か規格書を
読みながらでないと間違えがちだな。

445 :デフォルトの名無しさん:2008/10/24(金) 21:05:17
サンプルプログラム

int main()
{
std::ifstream ifs("read.txt");

for (int i = 0; i < 2; i++) {
int i;
while (ifs >> i) {
std::cout << i << ' ';
}
std::cout << std::endl;
ifs.clear();
ifs.seekg(0, std::ios::beg);
}

for (int i = 0; i < 2; i++) {
int i;
while (true) {
ifs >> i;
if (ifs.eof())
break;
std::cout << i << ' ';
}
std::cout << std::endl;
ifs.clear();
ifs.seekg(0, std::ios::beg);
}
}

446 :デフォルトの名無しさん:2008/10/24(金) 22:00:56
char型で"A5"という文字列から、BYTE型の0xA5というデータを格納させたいのですが、
文字毎に格納するデータを各々書いていくしかないでしょうか?

447 :デフォルトの名無しさん:2008/10/24(金) 22:02:56
strtol
sscanf

448 :デフォルトの名無しさん:2008/10/24(金) 23:07:42
Kitty(const Kitty &);

の&は参照を表してるんですか?

449 :デフォルトの名無しさん:2008/10/24(金) 23:32:57
はい

450 :デフォルトの名無しさん:2008/10/24(金) 23:35:19
しかもconstと&をペアにして使う事でコピーコンストラクタを
起動させなくても内容が変更される恐れがないので
サイズの大きなクラスなど渡す時に便利

451 :デフォルトの名無しさん:2008/10/25(土) 00:02:19
constと*ではだめなの?

452 :デフォルトの名無しさん:2008/10/25(土) 00:07:33
>>451
参照だと見た目、値渡しでコールしてるように見える。
ポインタに比べて、無効な値が入ってきにくくなる。

453 :デフォルトの名無しさん:2008/10/25(土) 00:08:19
お前はintの初期化にint*を渡すのか。

454 :デフォルトの名無しさん:2008/10/25(土) 00:08:41
コンストラクタがあれば定数でもわたせるとかってのもあるか。

455 :デフォルトの名無しさん:2008/10/25(土) 00:09:18
explicit

456 :デフォルトの名無しさん:2008/10/25(土) 07:37:11
>>447
ありがとうございます!

457 :デフォルトの名無しさん:2008/10/25(土) 11:12:01
cout << _T("暗号前 :") << data.i << endl;

このプログラムなんですが
unicodeを使用していると_T("")の部分が正常に表示されません。
マルチバイトなら出来るのですが、_T("")は両方に使えると思っていたのですが例外はあるのでしょうか?

あとunicodeとマルチバイトの差はコンパイル時に出るだけだと思って良いでしょうか?
コンパイル時にunidodeかマルチバイトを設定しておけば、どのような環境下でexeファイルを実行しても
内部ではコンパイル時に設定された文字コードが扱われる〜ような。

458 :デフォルトの名無しさん:2008/10/25(土) 11:16:32
ちがう。
Unicodeコンパイルすれば内部コードがUnicodeになって、Unicode対応OSでないと動かない。

459 :デフォルトの名無しさん:2008/10/25(土) 11:36:48
>>457
前半だが、
ostream& operator<<(ostream&, LPCTSTR)
みたいなのを自分で定義するか、
単にwcoutに書き込むんだな。

UNICODEや_UNICODEの定義は、TCHARがcharになるかwchar_tになるかの違いなので、
当たり前だが生成されるバイナリが全然違う。
勿論TCHARに一切タッチしないなら関係無い話だが、
あんたがAnsi版、Unicode版を直接指定しないでAPIを使っているなら、
もしくはMFC/ATL/WTLのようなものを使っているなら、無関係では
いられないだろう。

460 :デフォルトの名無しさん:2008/10/25(土) 11:52:28
#ifdef _UNICODE
typedef wstring _tstring;
#else
typedef string _tstring;
#endif



461 :デフォルトの名無しさん:2008/10/25(土) 11:54:19
C++なのにオーバーロードでなくマクロで誤魔化している
MFC/ATL/WTLは糞

462 :デフォルトの名無しさん:2008/10/25(土) 11:56:54
ジェネリックテキストなんて使わないで、ワイド文字にだけ対応すればいいよ。

463 :デフォルトの名無しさん:2008/10/25(土) 21:26:59
>>460
typedef std::basic_string<TCHAR> _tstring;でいいじゃない。
っていうか下線で始まるのはダメだろ。

>>461
VC++ 7あたりからMFC/ATLのCStringはテンプレート化された。

464 :デフォルトの名無しさん:2008/10/25(土) 21:42:00
>>463
ん?CStringはCString<TCHAR, StrTraitATL<TCHAR> >
とかだから、結局TCHARマクロ依存だし
Window系のクラスとかが扱うのはLPCTSTRだのCStringだのだから
これまたマクロだろ?

APIと違ってTCHARマクロを避ける方法が無いどころか
全面的に依存してるわけじゃん

465 :デフォルトの名無しさん:2008/10/25(土) 21:45:24
CStringAとかCStringW使えばいいんじゃないの?

466 :デフォルトの名無しさん:2008/10/25(土) 21:46:36
おねがいTCHAR

467 :デフォルトの名無しさん:2008/10/25(土) 21:46:56
>>465
MFCだのATLだののクラスのインタフェースがCStringを要求しているのにか?

APIはA版とW版の両方のインタフェースが提供されている
MFCやWTLは、T版のインタフェースしか提供していない

んだよ

468 :デフォルトの名無しさん:2008/10/25(土) 22:06:47
そもそもTCHARを避ける理由が無い

469 :デフォルトの名無しさん:2008/10/25(土) 22:07:29
CStringAとCStringWの間は互いのコンストラクタで変換できる。
いや、そういう話ではないのは分かるけど、書かずにはいられなかった。

>>467
そういう問題ならそうといってよ、勘違いするじゃない。

470 :デフォルトの名無しさん:2008/10/25(土) 22:10:36
とりあえずマクロで解決するのはやめろよと

CreateWindowってメンバ関数作ろうとしてハマった俺ガイル

471 :デフォルトの名無しさん:2008/10/25(土) 22:12:06
コンストラクタで変換できるっていうか、AやWを明示的に指定しておいて違ったほうでコンパイルしたらエラーになるから、なんら問題ないじゃん。

472 :デフォルトの名無しさん:2008/10/25(土) 22:14:49
>>468
パラメーター見ようと、
マウス乗せても、hogeW/HogeAのdefineですぅ、としか表示されない。

473 :デフォルトの名無しさん:2008/10/25(土) 22:20:47
T系のマクロやら、_t系の関数使っていても、しっかりマルチとワイドの両方に対応してるところなんてほとんどないだろうし、
AやらWに決めうちしたほうが、かえってトラブルなくて安全になりそう。


474 :デフォルトの名無しさん:2008/10/25(土) 22:22:18
マルチとワイドの両方に対応しようとしたら#ifdefの嵐にならざるを得んだろ
ロジック自体が共有できんことが多いのだからな
それなのにマクロ一発で切り替えるという発想自体が馬鹿

475 :デフォルトの名無しさん:2008/10/25(土) 22:24:58
そもそもAを想定したOS自体が既に非サポートなわけで

476 :デフォルトの名無しさん:2008/10/25(土) 22:30:30
>>472
Janeみたいに多段ポップアップなら良いのにな

477 :デフォルトの名無しさん:2008/10/25(土) 22:31:35
>>470
.NET Frameworkに同名のメンバがあるやつでそういう問題が起こるからって、
最近のSDKではMC++やC++/CLIでコンパイルすると
マクロをやめてインライン関数で定義するようになっている。

478 :デフォルトの名無しさん:2008/10/25(土) 22:52:55
質問です。
配列の要素数は
奇数がいいのですか?
偶数がいいのですか?
2の倍数がよいのですか?
素数がよいのですか?

479 :デフォルトの名無しさん:2008/10/25(土) 22:56:41
要素数だけに、要・素数、なんて。

480 :デフォルトの名無しさん:2008/10/25(土) 22:58:48
.NETのリストは素数で確保してるっぽい

481 :デフォルトの名無しさん:2008/10/25(土) 23:02:28
>>478
使う分だけ確保すればいいんじゃね?

482 :デフォルトの名無しさん:2008/10/25(土) 23:06:41
配置new用の演算子オーバーロード、
void* operator new(size_t size, void* buff){ return buff; }
を追加したクラスに対して、通常のnewを使用するにはどうすればよいのでしょうか?

483 :デフォルトの名無しさん:2008/10/25(土) 23:09:01
::new

484 :デフォルトの名無しさん:2008/10/25(土) 23:10:05
_cstr

485 :デフォルトの名無しさん:2008/10/25(土) 23:17:21
>483
ありがとうございます。単純なことだったんですね

>484
すみません、具体的にどうするのか、想像がつきません

486 :478:2008/10/25(土) 23:41:55
>>481
まぁ、簡単に言うとそうなんですけれど
要素数はどれにすれば一番パフォーマンスが出るかなと思って

487 :デフォルトの名無しさん:2008/10/25(土) 23:47:53
>>486
要素数はパフォーマンスと関係ないんじゃね?


488 :デフォルトの名無しさん:2008/10/25(土) 23:50:12
見積もりが甘いと頻繁に伸びる

489 :デフォルトの名無しさん:2008/10/26(日) 01:08:16
>>486
大概のC/C++処理系はパフォーマンスが出るように設計されて
いるので気にするな

490 :デフォルトの名無しさん:2008/10/26(日) 01:45:57
C言語で長門がやってたみたいにゲームの改造とかできますか?

491 :デフォルトの名無しさん:2008/10/26(日) 01:54:42
何箇所で質問しても、まともに返事が返ってくるとは思えないけど。

492 :デフォルトの名無しさん:2008/10/26(日) 02:28:10
cを始めようと思ってて家に2000年発行の本があるんだけど
これで充分?

493 :デフォルトの名無しさん:2008/10/26(日) 02:33:48
>>492
だいたい使えると思う。
統合環境の操作方法とか、言語の説明以外のところはつかえない可能性が高い。

494 :tame@sa.re rudaichi:2008/10/26(日) 06:40:27
test

495 :デフォルトの名無しさん:2008/10/26(日) 06:55:56
つい最近、VC++を使いはじめた
んで、hello worldを作ってみた
文字の表示と数字の表示、xやyの変数に代入する事を覚えた

次、何したらいい?

496 :デフォルトの名無しさん:2008/10/26(日) 07:15:56
入門書読破

497 :デフォルトの名無しさん:2008/10/26(日) 08:21:22
>>495
外出

498 :デフォルトの名無しさん:2008/10/26(日) 08:28:20
>>496-497
そういう事は自分で調べろっていう戒めの意味を込めて言ってるんだよな
お前らのその素直でない親心・・・嫌いじゃないぜ

とりあえず、自分で頑張ってみるわ

499 :デフォルトの名無しさん:2008/10/26(日) 08:42:32
友達からC++のプログラムもらって家でコンパイルしたら
strcpy_s()関数が使えません、という警告が出て、コンパイルが成功しませんでした。
調べてみたらstrcpy_sはstrcpyの拡張版らしくて、うちのコンパイラが若干古いので、strcpy_sは使えないみたいなんです。
それでプログラムのstrcpy_sをすべてstrcpyに置き換えたら、またエラーが出ました。
strcpy_sは引数の数が三個で、strcpyは二個なんで、その警告が出ました。
strcpy_sを、strcpyと同様の動作をさせる関数として定義すればうまくいくと思ったのですが、どのような関数を定義すればよいでしょうか。


500 :デフォルトの名無しさん:2008/10/26(日) 10:26:15
>>499
参考 URL
http://msdn.microsoft.com/ja-jp/library/td1esda9(VS.80).aspx
パラメータ検証 ( ポインタの妥当性、サイズなど ) の実装が必要。面倒そうだね。
ソースの規模にもよるが、単純に strcpy_s の第二引数を捨てて、strcpy に置換
した方が楽かもしれない。

501 :デフォルトの名無しさん:2008/10/26(日) 12:53:44
赤い靴履いてた女の子異人さんに入れられてイッちゃった

502 :デフォルトの名無しさん:2008/10/26(日) 12:54:51
>>490
長門がCで書いてたように見えたか?

503 :デフォルトの名無しさん:2008/10/26(日) 12:57:04
BCCだったね。

504 :デフォルトの名無しさん:2008/10/26(日) 15:20:05
>>495
こらこら、曲解するでない
入門書読破はプログラム覚えるにあたって健全な意見

外出はさらに健全な意見


人間的な意味で

505 :デフォルトの名無しさん:2008/10/26(日) 15:22:39
俺もコンパイラ拡張のはよく分からないというか使えないんだが、
>>500をやるなら
#define strcpy_s(a,b,c) strcpy(a,c)
でどうかな。戻り値使ってないならいけると思う。

506 :デフォルトの名無しさん:2008/10/26(日) 16:33:06
Visual C++ 2008 Express Edition をインストールしたんですが、
コンソールからコンパイルする方法がわかりません。

(IDEを使うよりも最初はコンソールからやった方がいいと聞いたので、、、、)

どなたかお願いします。


507 :デフォルトの名無しさん:2008/10/26(日) 16:46:08
>>504
マジレスすると、入門書を買う金すら捻出できないんだ。
これ以上生活費削ると、来月の家賃を払えない可能性があって云々。
とりあえず派遣に登録して、仕事の紹介受けてるから
そこで働ければ、安定はしそうだけど今はヤバイ。

外出は買い物とか家賃振込みとかで
嫌でもしなきゃいけないから、そこはモーマンタイ。

図書館に行って、それっぽい本を探してみたが
用語辞典ばかりで、今の自分には合わなさそうなのばっかだった。

まぁそれなりに頑張ってみるわ。

508 :デフォルトの名無しさん:2008/10/26(日) 16:53:22
>>507
金なくてニートなのに、なんでVCなんて勉強してんの?

509 :デフォルトの名無しさん:2008/10/26(日) 16:54:28
>>507

本を買わなくてもサイトで勉強すればいいのでは?
過去スレ読んでないので外出ならスマソ

取りあえず、ググって最初に出たやつを乗せてみた

ttp://www.asahi-net.or.jp/~yf8k-kbys/newcpp0.html
ttp://www5c.biglobe.ne.jp/~ecb/cpp/cpp00.html
ttp://wisdom.sakura.ne.jp/programming/cpp/index.html

まぁ、がんばれ

510 :デフォルトの名無しさん:2008/10/26(日) 17:55:57
ニートがC言語なんてやるなよ・・・。高収入の奴がやる言語だぜ

511 :デフォルトの名無しさん:2008/10/26(日) 18:15:13
441 名前: 9条教徒(愛知県)[sage] 投稿日:2008/10/26(日) 18:05:01.92 ID:QI/VG6PS
___________
|アキバは     /ヽ‐-/|  |
|いつまでも   |_.・ω・_ .i |
|てめーの味方 ((((((< ミ -゙ |
|ぢゃねーぞ!!  |i、゚ l>゚ ノ从 |
|     ゴルァ   ⊂兇⊃. |
(⌒ヨ_______|_l_ヽ〉F⌒)
| |   ∧_∧      / /
\\ <´Д`>    / /
  \二    二二二/
    |  サヨ |

442 名前: 下痢気味(神奈川県)[] 投稿日:2008/10/26(日) 18:07:33.73 ID:ajuDYaOC
>>441
仕事はやいな

プラカードもってるのがモナーってのもまたwww

512 :デフォルトの名無しさん:2008/10/26(日) 18:24:31
>>508
むしろ、金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかのweb関係の方が、需要があると聞いたからなぁ。
そういう経験の無い人間は、そっちを目指した方がいいんだろうか。

513 :デフォルトの名無しさん:2008/10/26(日) 18:28:00
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

514 :デフォルトの名無しさん:2008/10/26(日) 18:29:10
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。



515 :デフォルトの名無しさん:2008/10/26(日) 18:35:09
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。



516 :デフォルトの名無しさん:2008/10/26(日) 18:35:39
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。



517 :デフォルトの名無しさん:2008/10/26(日) 18:40:59
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。



518 :デフォルトの名無しさん:2008/10/26(日) 18:45:20
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

519 :512:2008/10/26(日) 18:48:53
お、何だこれ
誰かが意図的に煽ってるのか?
それとも俺のせい?

520 :デフォルトの名無しさん:2008/10/26(日) 19:17:45
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

521 :デフォルトの名無しさん:2008/10/26(日) 19:26:07
まぁ、C/C++スレで他の言語を持ち出す時点で嵐みたいなもんだし。

522 :デフォルトの名無しさん:2008/10/26(日) 19:43:20
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

523 :デフォルトの名無しさん:2008/10/26(日) 19:45:17
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

524 :デフォルトの名無しさん:2008/10/26(日) 19:46:06
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

525 :デフォルトの名無しさん:2008/10/26(日) 19:46:37
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

526 :デフォルトの名無しさん:2008/10/26(日) 19:47:42
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

527 :デフォルトの名無しさん:2008/10/26(日) 19:48:22
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

528 :デフォルトの名無しさん:2008/10/26(日) 19:48:52
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

529 :デフォルトの名無しさん:2008/10/26(日) 19:49:47
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

530 :デフォルトの名無しさん:2008/10/26(日) 19:50:55
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

531 :デフォルトの名無しさん:2008/10/26(日) 19:51:50
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

532 :デフォルトの名無しさん:2008/10/26(日) 19:58:34
いい加減やめない?
うざいよ〜☆

533 :デフォルトの名無しさん:2008/10/26(日) 20:06:24
あまりやるとアク禁になるぜよ。

534 :デフォルトの名無しさん:2008/10/26(日) 20:07:42
Borland C++ Compiler 無償版って雑誌の付録につかなくなったの?

535 :デフォルトの名無しさん:2008/10/26(日) 20:11:28
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

536 :デフォルトの名無しさん:2008/10/26(日) 20:18:50
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


537 :デフォルトの名無しさん:2008/10/26(日) 20:19:53
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

538 :デフォルトの名無しさん:2008/10/26(日) 20:24:12
>>534
いまさらいらんだろ?

539 :デフォルトの名無しさん:2008/10/26(日) 20:40:16
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

540 :デフォルトの名無しさん:2008/10/26(日) 20:46:14
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

541 :デフォルトの名無しさん:2008/10/26(日) 20:46:18
>>538
一応9MB、インストール後でも53MB程度だからお手軽でしょ

542 :デフォルトの名無しさん:2008/10/26(日) 20:50:34
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

543 :デフォルトの名無しさん:2008/10/26(日) 20:52:47
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

544 :デフォルトの名無しさん:2008/10/26(日) 20:56:01
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

545 :デフォルトの名無しさん:2008/10/26(日) 20:58:31
1000まで続けるのか?


546 :デフォルトの名無しさん:2008/10/26(日) 21:00:37
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

547 :デフォルトの名無しさん:2008/10/26(日) 21:01:03
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


548 :デフォルトの名無しさん:2008/10/26(日) 21:02:24
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


549 :デフォルトの名無しさん:2008/10/26(日) 21:02:51
>>506
付属のVSコマンドプロンプトを起動
ソースファイルのディレクトリに移動
cl.exe hoge.c
hoge.exe

550 :デフォルトの名無しさん:2008/10/26(日) 21:03:33
つまんね

551 :デフォルトの名無しさん:2008/10/26(日) 21:03:48
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


552 :デフォルトの名無しさん:2008/10/26(日) 21:07:15
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


553 :デフォルトの名無しさん:2008/10/26(日) 21:09:52
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


554 :デフォルトの名無しさん:2008/10/26(日) 21:15:25
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


555 :デフォルトの名無しさん:2008/10/26(日) 21:39:28
VIPPERでもまざってんのかこれ。
NGめんどいなあバカー

556 :デフォルトの名無しさん:2008/10/26(日) 21:43:12
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


557 :デフォルトの名無しさん:2008/10/26(日) 21:43:56
>>512
最初に学ぶものとしてCを選ぶのはやっぱりいい選択だと思うよ。
OOPに行きにくくなるかも、という懸念もなくはないけど、まあ。


558 :デフォルトの名無しさん:2008/10/26(日) 21:51:13
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


559 :デフォルトの名無しさん:2008/10/26(日) 21:53:58
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


560 :デフォルトの名無しさん:2008/10/26(日) 21:58:08
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

561 :デフォルトの名無しさん:2008/10/26(日) 21:58:20
>>512
いまいくつよ?

562 :デフォルトの名無しさん:2008/10/26(日) 21:59:26
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


563 :デフォルトの名無しさん:2008/10/26(日) 22:02:50
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


564 :デフォルトの名無しさん:2008/10/26(日) 22:09:44
なぁ、このこぴぺって同じやつなのかな?

565 :デフォルトの名無しさん:2008/10/26(日) 22:18:37
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

566 :デフォルトの名無しさん:2008/10/26(日) 22:23:55
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

567 :デフォルトの名無しさん:2008/10/26(日) 22:46:24
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


568 :デフォルトの名無しさん:2008/10/26(日) 22:46:54
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。


569 :デフォルトの名無しさん:2008/10/26(日) 22:55:14
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

570 :デフォルトの名無しさん:2008/10/26(日) 22:55:46
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

571 :デフォルトの名無しさん:2008/10/26(日) 23:00:13
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

572 :デフォルトの名無しさん:2008/10/26(日) 23:01:31
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

573 :デフォルトの名無しさん:2008/10/26(日) 23:05:13
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

574 :デフォルトの名無しさん:2008/10/26(日) 23:08:10
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

575 :デフォルトの名無しさん:2008/10/26(日) 23:15:12
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

576 :デフォルトの名無しさん:2008/10/26(日) 23:20:32
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

577 :デフォルトの名無しさん:2008/10/26(日) 23:21:44
>>508
金掛かるの?
プログラミングには昔から興味あったし、パソコンに関しては
あまり抵抗が無いから、唯一自分が向いてると思えるものなんだ。
てかCよりjavaとかVBとかの方がいいのかな?

>>509
おぉ、リンクサンクス
頑張ってIT企業に就職するわ

>>510
javaとかPerlとかのweb関係の方が、需要があると聞いたからなぁ。
プログラムの経験の無い人間は、そっちを目指した方がいいんだろうか。

578 :デフォルトの名無しさん:2008/10/26(日) 23:24:51
お前ら規制くらうぞおおおおおおおおおおおおおお

579 :デフォルトの名無しさん:2008/10/26(日) 23:25:22
そのうち正義に持っていくから

580 :デフォルトの名無しさん:2008/10/26(日) 23:30:37
お前「ら」って
荒らしてんの一人だろ?

最近ム板もキチガイが多いよな

581 :デフォルトの名無しさん:2008/10/26(日) 23:38:56
>>466
息が詰まるほど笑った。

582 :デフォルトの名無しさん:2008/10/26(日) 23:44:53
コンストラクタを明示的に呼び出すにはどうしたらいい?
特にコンストラクタ内で別のコンストラクタを呼びたい。

class obj;

obj::obj()
{
obj( v ); // 別のインスタンスが作られるようでNG
}

obj::obj()
{
obj::obj( v ); // 別のインスタンスが作られるようでNG
}

obj::obj
{
operator=( obj( v ) ); // これならOKだが。。
}

153 KB [ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]

■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
会社で使えない奴、それはワタシ/アイツ [プログラマー]
気軽に「こんなソフトありませんか?」 Part.97 [ソフトウェア]

新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.0.7.8 2008/09/25 アクチョン仮面 ★
FOX ★ DSO(Dynamic Shared Object)