[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 12/22 20:21 / Filesize : 245 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2008/02/28(木) 00:01:39 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.49【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1203478421/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

24 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 17:23:59 ]
PlaySound()なんていう便利なAPIがあるとか本気で思ってるの!?

25 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 17:39:49 ]
>>20
g++ 4.0 では警告出たけどコンパイルできたよ。
もちろんリンクはできないけど。
定義するとリンクも通る。

26 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 17:45:11 ]
>>24
ありがと。

27 名前:デフォルトの名無しさん [2008/02/28(木) 18:45:23 ]
すいませんお願いします。
passing `const cell' as `this' argument of
`double cell::cell_input(double)' discards qualifiers
というエラーが出ます。

問題の行は
IT->first.cell_input( OUTPUT*(IT->second) );
でITは
map<cell,double >::iterator IT;
です。
やりたいことはclass cellのオブジェクトA内のpublic関数から
別のオブジェクトB内のpublic関数にアクセスすることです。

28 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 18:53:14 ]
>>27
map<cell,double >
のcellはconstで修飾されてる。
IT->first.cell_input・・・・
cell::cell_input(double);が非constメンバー関数なんじゃないの?


29 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 19:02:46 ]
C++の質問です。
コンパイラはbccを使用しています。

別のcppファイルで定義した配列をexternしたいのですが、
"外部シンボルが未解決です"というリンクエラーがでます。

data.cpp
const char namber[5] = { 1, 2, 3, 4, 5 };

show.cpp
extern char namber[];

リンクエラーを解決する方法を教えて頂けないでしょうか?
よろしくお願いします。


30 名前:デフォルトの名無しさん [2008/02/28(木) 19:05:53 ]
>>28
ありがとうございます!
非constメンバー関数、で検索かけて調べてみます!

31 名前:27 [2008/02/28(木) 19:17:50 ]
すいません。。
調べましたがmapに放り込んだ時点でconst cellになってしまうから
もし非constメンバ関数からconstメンバ関数に変えられない場合
私がやりたいことは出来ないということでしょうか?
cell_ouputは非constメンバ関数でありデータメンバを書き換えます。

32 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 19:23:26 ]
>>31
残念ながらmapのキーはconstだからキーのオブジェクトは
変更できない。他の手段を考えたほうがいいかも。
とにかくcellはconstオブジェクトだから非constメンバー関数
は呼び出せない。



33 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 19:25:20 ]
>>31
変更する部分をまとめてpimplにするとかはどうよ?


34 名前:27 [2008/02/28(木) 19:26:18 ]
>>32
まいった。ありがとうございます。
無理やりmap<mutable cell,double >::iterator IT;
とか書いてみたけど無理っぽかったです。
他の手段か・・重ねてありがとう。

35 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 19:29:49 ]
>>34
mutable使うならメンバーに
あまり好きではないけど

36 名前:27 [2008/02/28(木) 19:35:30 ]
>>33
pimplちょっと調べてみたんですが難しくて・・覚えておきます、ありがとう。

>>35
メンバー関数の先頭にはmutable付けられなかったです。
変更されることになるデータメンバの先頭につけてみたけど変わらず・・。


37 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 19:40:31 ]
>>36
mutableデータメンバはconstメンバ関数から変更できる

38 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 19:41:02 ]
>>36
mutableを非staticなメンバーに指定すれば、constメンバー関数内で
変更できるはずだけど。

39 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 21:27:49 ]
pair の vector コンテナじゃ駄目ですか><


40 名前:デフォルトの名無しさん [2008/02/28(木) 21:41:36 ]
前レス >944
すいません。前回ポインタの格納場所について質問したものですが
お礼を言うのを忘れていました。
ありがとうございます。

41 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:08:50 ]
>>34
キーがconstなのは、キーでソートされるからであって、
mapに格納したまま書き換えたら順序を守れなくなる。
一旦mapから削除して、書き換え後に再度insertすべきでは?

42 名前:sage [2008/02/28(木) 22:21:56 ]
質問します。たったこれだけのコードが動きません。
ポインタのポインタを使ってみたのですが。教えてくだされ。

#include <stdio.h>
#include <string.h>

const char* string;
const char** address;
char str[1024];

void inputadd(const char* stradd){

address=&stradd;
}

void inputstr(void){

char teststr[]="abcdefghijklmn";
strcpy(str,teststr);
*address=str;
}

void main(void){

string=NULL;
inputadd(string);
inputstr();
printf(string);
}



43 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:24:24 ]
>>42
address=&stradd; ←これがダメ
straddはinputadd内のローカル変数だ。
関数を抜けると無くなるので、addressはトンでもないところを指すことになる。

44 名前:29 mailto:sage [2008/02/28(木) 22:30:58 ]
自己解決しました(。。)゛
分割コンパイルを行わないといけないのですね。

記述にばかり目を奪われておりましたが、
やっと問題点に気がつきました。

レスが無いのも納得がいきます。
それでは。


45 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:31:03 ]
>>43
サンクス。ポインタは引数なら直でいけるという思い込みだったわ。
関数内で使っているものはポインタの値のコピーに過ぎないわけだな。
下みたいにして乗り切ったが正解でいいんだよな?

void inputadd(const char** stradd){

address=stradd;
}

46 名前:デフォルトの名無しさん [2008/02/28(木) 22:39:56 ]
初心者は、newやポインタを使わない方がいい
STL使えばすべて片付く

47 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 22:43:40 ]
使わなければいつまで経っても初心者だ。
練習コードなんだから、なんでもやってみればいい。

>>45 OK

48 名前:デフォルトの名無しさん [2008/02/28(木) 23:03:04 ]
上級者もnewやポインタを使わない方がいい
使うのは、速度やサイズの気になる場面だけだ
それまで気になるならアセンブラにする

49 名前:デフォルトの名無しさん [2008/02/28(木) 23:04:10 ]
極論するとC言語は使わない方がいい

50 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:19:17 ]
極論するとプログラミングなんかしない方がいい

51 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 00:47:12 ]
速度が気になるんだったら、newを使うのはいけないと思うんだ。
少なくとも考えなしに使うのは。

52 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 01:12:20 ]
boost::Pool



53 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 01:27:58 ]
>>51
実測もせずに new を避けるのも良くない。

54 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 03:16:43 ]
結局のところ重複はこっちでいいんかい?

55 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 06:28:30 ]
>>53は受け売りでしゃべっているだけですから気にしないでください。


56 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 10:16:31 ]
newのなにがいけないのだろうか?
動的にオブジェクトの生成をしたらだめ?

57 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 11:02:47 ]
馬鹿?馬鹿なの?ねえ?

あえてだめっていう理由があるとしたらオーバーヘッドだろうか、ログ読んでないからなんともいえないが

58 名前:27 [2008/02/29(金) 11:39:19 ]
>>37,38,39,41
昨日は急用で落ちてしまいました27です。
>mutableを非staticなメンバーに指定すれば、constメンバー関数内で
変更できるはずだけど。

を実践したところコンパイル通りました!
constとかややこしくて触らないようにしてたんですけど
これからちょこっと勉強してみようと思います
みなさんありがとうございました!!

59 名前:デフォルトの名無しさん [2008/02/29(金) 12:10:15 ]
基本的に動的確保は頻繁にやるべきではない
不安定になる

60 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 12:16:40 ]
>>59
動的確保が悪いんじゃない。正しく扱わないプログラマが悪いんだ。

C++ なら、 new したらすぐ auto_ptr なりに突っ込んどくとか、
new [] したくなったら標準コンテナを使うとか、そういう正しい対処をしとけば
ミスもほとんど防げる。

原因も把握せずに「不安定になる」とか言ってプログラムの手段を
制限するのは得策じゃないね。

61 名前:デフォルトの名無しさん [2008/02/29(金) 12:24:44 ]
あらかじめ必要な領域を見積もって確保すべき

for(n=0;n<100000;n++)
str+="A";
などは解放確保を繰り返し良くない

62 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 12:29:33 ]
reserve 使っておけばいいし



63 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 13:45:50 ]
本業はWEBアプリ屋なんですが、必要に迫られてActiveXの開発することになったC++ド素人です。
環境はVS2008、作ろうとしてるモノはMFC ActiveXです。

内部で文字列の暗号化処理(Blowfish)をしたいのですが、以下のソースを書いてコンパイルも
一応通ったものの、案の定うまく動きません。

LPSTR lpszPassword; //パスワード
LPTSTR lpszInputStr;//暗号前文字列

//↑に値を適当にセットした上で↓

UCHAR digest[16];
MD5String(lpszPassword, digest);

CBlowFish bf;
bf.Initialize(digest, sizeof(digest));

unsigned char* outBuf = (unsigned char*)malloc(sizeof(lpszInputStr));

// エンコード
bf.Encode((unsigned char*)lpszInputStr, outBuf, sizeof(lpszInputStr));

printf("%S", outBuf)


よくわからなくて、ググりつつ適当に書いたソースなのでめちゃくちゃだと思います。
最終的には暗号化されたMD5ハッシュ値のような感じの文字列が出力されることを期待
していたのですが、バケバケな上入力値を変えても同じ値が返ってきますw
若干お手上げなので、皆さんのお知恵を拝借ください

64 名前:63 mailto:sage [2008/02/29(金) 13:49:43 ]
ちなみに、BlowfishのソースはJim Congerさんが書いたのそのままです。
↓ここから持ってきました。
www.schneier.com/blowfish-download.html


65 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 13:56:07 ]
waveファイルを再生しようと思い、playsound()というAPIがあるよ、と教えて貰ったので
調べてみたのですが、
VC++2005
#include <mmsystem.h> // PlaySound()のため
#pragma comment(lib,"winmm")

#define FILENAME "Windows XP Startup.wav"

LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg){
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_LBUTTONDOWN: //再生
PlaySound(FILENAME,NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
return 0;
case WM_RBUTTONDOWN: //停止
PlaySound(NULL,NULL,0);
return 0;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
このようなサンプルを見つけたのでコンパイルしてみたのですが、
error C2065: 'CALLBACK' : 定義されていない識別子です。
error C2065: 'DRIVERPROC' : 定義されていない識別子です。
error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
なぜでしょうか?

66 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 13:57:41 ]
>>65
#include <windows.h>

67 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 14:14:23 ]
>>66
ありがとうございます。ですが、まだエラーが出てしまいます><
VC++2005
#include <windows.h>
#include <mmsystem.h> // PlaySound()のため
#pragma comment(lib,"winmm")

#define FILENAME "Windows XP Startup.wav"

LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg){
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_LBUTTONDOWN: //再生
PlaySound(FILENAME,NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
return 0;
case WM_RBUTTONDOWN: //停止
PlaySound(NULL,NULL,0);
return 0;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

error C2664: 'PlaySoundW' : 1 番目の引数を 'const char [23]' から 'LPCWSTR' に変換できません

68 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 14:17:28 ]
#define FILENAME TEXT("Windows XP Startup.wav")

69 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 14:28:38 ]
>>68
ありがとうございます。&重ね重ねすいません。まだ駄目みたいです。
error LNK2019: 未解決の外部シンボル _main が関数 ___tmainCRTStartup で参照されました。
fatal error LNK1120: 外部参照 1 が未解決です。

70 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 14:33:19 ]
エラーメッセージでぐぐれ

71 名前:デフォルトの名無しさん [2008/02/29(金) 14:33:42 ]
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")

main(){
PlaySound("C:\\WINDOWS\\system32\\oobe\\images\\clickerx.wav",
NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
Sleep(2000);
PlaySound(NULL,NULL,0);}

72 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 14:35:57 ]
>>69
main関数がないのに動くわけないだろう



73 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 14:38:11 ]
>>70
int main を追加する方法や システム>サブシステムをwindowにする方法
エントリポイントにMainを追加してみたりは試した上で質問はしました。。><

74 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 14:49:57 ]
VCだよね?mainをこう書いてみたら?

int APIENTRY _tWinMain(HINSTANCE hInst, HINSTANCE hPrev,
                LPTSTR lpCmd, int nCmd)
{
...
}

あとWindowProcを呼ばせるにはちゃんとウィンドウを作って、
メッセージ処理しないとだめだと思うぞ。

75 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 14:59:41 ]
>>72
書き終わった直後に気付いて書いてみたのですが根本的な原因は別にあるようでした。
>>74
そうみたいです!。ありがとうございます。

>>71
これに、文字セットをマルチバイトにしてみたところ。うまくいったので、これをベースにして、考えているプログラムにしてみたいと思います。

みなさんお付き合い頂いてありがとうございました。

76 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 15:06:52 ]
>>63
>unsigned char* outBuf = (unsigned char*)malloc(sizeof(lpszInputStr));

俺unix屋だから windows のこと詳しくないけど
lpszInputStr は LPTSTR だからポインタだと思うよ。
上のコードのしていることは文字列の分ではなく
ポインタのサイズの分をmallocで確保している。多分4バイトくらい。

まず文字列のバイト数を正しく求めることから始めないといけないんじゃないかな。
size_t size_of_in = sizeof(TCHAR) * (lstrlen(lpszInputStr)+1); // NUL 文字に+1文字分

あと outBuf には暗号化されたバイナリが入るだろうから
printf("%S") ではうまく表示されないと思うよ。バイナリで扱わないと。
他にも暗号化単位やバイトオーダーなども問題になるかもしれないよ。

77 名前:63 mailto:sage [2008/02/29(金) 16:02:41 ]
>>76
ども、ありがとうございます。
PHPやASPな人間なもんで、厳密な型変換やったことないんでさっぱりです。
バイナリを文字列(1-9,a-z.A-Z)に戻すのは、どうすればいいんでしょうか。

78 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:04:03 ]
newってそんなに遅いの?

79 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:08:03 ]
その程度のオーバーヘッドも看過できないような状況では十分に「遅い」。

80 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:21:26 ]
まぁ、何を作ってるか、によるよね。
趣味でLisp方言作ってたときは、operator new()を工夫しただけで全体の動作が3割速くなったし。

81 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 16:33:06 ]
>>79
boost::Poolのほうが断然速かった。

82 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 17:23:19 ]
>>78
メモリマネージャ次第じゃね?
Windowsに限ってもVCとBCBじゃnewでもメモリ確保の仕方違うし。



83 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 23:15:19 ]
newを忌避しすぎるのも意味が無い。「まだ最適化するな」。

84 名前:デフォルトの名無しさん [2008/03/01(土) 01:01:15 ]
初期化方法おしえてください 全部通りません

vector<int> x={1,2,3};

vector<int> x(3,{1,2,3});

vector<int> x({1,2,3});

85 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:04:48 ]
>>84
static int const initial_x = {1,2,3};
vector<int> x(&initial_x[0], &initial_x[3]);

86 名前:85 mailto:sage [2008/03/01(土) 01:05:36 ]
ごめん。 [] が抜けてた。
static int const initial_x[] = {1,2,3};

87 名前:デフォルトの名無しさん [2008/03/01(土) 01:08:49 ]
そういうやり方しかないですか・・・そしたらint x[]={1,2,3}ですませます
すみません

88 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:16:29 ]
#include <boost/assign/std/vector.hpp>
...
vector<int> v;
v += 3, 1, 4;

89 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:16:34 ]
boost::assignとか

90 名前:89 mailto:sage [2008/03/01(土) 01:16:55 ]
ごめんリロードしてなかった

91 名前:デフォルトの名無しさん [2008/03/01(土) 01:21:24 ]
vectorに関数追加する方法ありませんか?
x={1,2,3}の代入を可能にする関数です

92 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:23:37 ]
配列数が8000ぐらいあるものでそれぞれが4つくらいのアイテムを持っている場合、
vectorやらmapやらを使いたいんですが、メモリ消費や処理速度的にどのようにしたらよいでしょうか?

ちなみに8000くらいあるほうは歯抜けで番号が記録されていてコール元から頻繁にアイテムを求めてきます。(ユニークキー)
4つくらいのアイテムの方は可変になってしまうのでそれぞれをvectorにしようかと思ったのですが、
消費メモリが大きくなりそうだったので悩んでいます。



93 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:23:45 ]
>>91
継承すれば

94 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:24:00 ]
ありません

95 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:35:05 ]
>>92
「なりそう」で悩む前に素直に実装してみて、実際のメモリ消費量見てから考えるのがいいよ。

96 名前:デフォルトの名無しさん [2008/03/01(土) 01:44:11 ]
vec x(10, 10, 10, 0);
で初期値0の3次配列を定義できるようにするには、どう書けばいいですか?
int 型限定でよいです 4次や5次もしたいです

97 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:45:17 ]
>91
無理。C++0x を待て。

98 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:46:56 ]
>>95
ありがとうございます。
ちょっと試してみます。
業務で初めてC++使っているので勉強の毎日です。><

99 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:53:25 ]
>>96
コンストラクタ多重定義しとけば。

100 名前:デフォルトの名無しさん [2008/03/01(土) 01:56:57 ]
このように書けば可変個の引数をとれますが、内部の型が一つに決まってしまって変更できません
どうすればいいですか?

class vec{
int x;
public:
vec(int n, ...){}
};

101 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:59:21 ]
template使え

102 名前:デフォルトの名無しさん [2008/03/01(土) 02:04:43 ]
100次元でもできるようにするためには、テンプレートを再帰的につかうようにすれば
いいと思いますがわかりません どう書けばいいですか



103 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:09:53 ]
まだこれいたのか

104 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:13:35 ]
もう誰も触るなよ。

105 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 03:20:54 ]
Cのcursesについてお教ください

printw("mojiretsu");

char buf[]="mojiretsu"
printw("%s",buf);

これで前者が表示され後者が表示されないのは何故なんでしょうか。

106 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 04:17:36 ]
>>105
環境くらい書いた方が。
どちらのコードも問題はないと思う。
refreshはしている?
前者が表示されているってことなので大丈夫だとは思うけど。
お試しコードみたいに短いのを書いていて、
printw→refreshのあと、すぐにendwinとかしてたら表示が見えていない可能性あり。

107 名前:105 mailto:sage [2008/03/01(土) 04:36:50 ]
OSはクノーピクスのDVD最新ver、コンパイラはgccです。

int main()
{
initscr();

move(5,1);
printw("mojiretsu");
refresh();

char buf[]="mojiretsu";
move(8,1);
printw("%s",buf);
refresh();
getch();

getchで止まった時に上のmojiretsuは表示されているのに下はされないという状態です。
最初はcygwinでやろうかと頑張ったのですが、cursesライブラリがどうやってもリンクできずクノーピクスを使うに至っています。

108 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 05:28:37 ]
>>107
fedoracoreでは特に問題なく二つの行ともに表示された。
そのソースでcursesを使うプログラムとしては特に問題はないと思うけど、
くのーぴくすに入ってるライブラリのバグなのかな……
windows上でなら、cygwinのcursesでもいいと思うけど、
PDcursesを取ってきて自前でライブラリを自分の得意の環境でコンパイルする手もあるよ。
それならリンクのやりかたが分からないとかって問題もないと思う。

109 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 05:31:29 ]
printw("mojiretsu");とprintw("%s",buf);の順番が逆の時はどう?

110 名前:105 mailto:sage [2008/03/01(土) 05:57:14 ]
逆にした場合もprintw("mojiretsu");の側しか表示されません。
どうやら環境が問題のようなので108さんが紹介してくださった方法等試してみます。
ありがとうございました。

111 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 06:18:59 ]
printwww

112 名前:デフォルトの名無しさん [2008/03/01(土) 09:03:27 ]
C++のdeleteについて質問させてください。
環境はWindowsXP VS2005EEです。

newしたポインタをdeleteすると、メモリの中身がfe ee fe eeとなります。
fe ee fe eeという値には何か意味があるのでしょうか?




113 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 10:36:51 ]
>>112
メモリ管理の都合やらデバッグの都合やらで値を書き換えているのかも
しれない。ともかく、delete後のメモリなんて参照しちゃダメ。ぜった
いダメ。



114 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 13:27:17 ]
>>113
もちろん、その値を何かに使ったりはしませんが
見るだけでも何かまずいことがおこるんですか?

115 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 14:00:51 ]
ネットからダウンロードしたデータがシフトJISコードの場合char型のに入れると
文字化けしてしまってまともに処理できないんですが、ecuに変換すればいいんでしょうか?
できたらやり方かサンプルソース公開してくれてるサイト教えて欲しいです

116 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 14:05:12 ]
間違えたecuじゃなくてEUC

117 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 14:23:31 ]
GNUのlibiconvでも使えば?
GPLイヤンならIBMのICU

窓限定でいいのなら
ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=613442&SiteID=7

118 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 14:42:32 ]
>>117
ありがとう。勘違いしてたEUC→SJISに変換だった
自力で関数作ってどうにかできました

119 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 14:43:11 ]
>>114
起こらないかもしれないが、起こるかもしれない
まだOSにメモリを返してなければ大丈夫かもしれないが、
返しちゃってた場合はアクセス違反で落ちるかも
処理系の実装と運次第

120 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:22:17 ]
>>114
動作未定義だから鼻から悪魔が出るかもしれんし、HDDが
フォーマットされるかもしれない。

121 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 16:32:42 ]
VCで定数のアライメントってどうするん?
packじゃ出来なかったYO


122 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 16:47:33 ]
定数のアライメント に一致する日本語のページ 約 件中 - 件目 ( 0.201466 秒)
定数のアライメント に該当するページは見つかりませんでした。



123 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:32:52 ]
ifとswitchくらいしかまだ使ったことがないのですが、
条件分岐をする際 if を良く使います。ifの中にifその中にif って普通でしょうか?

124 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 17:48:13 ]
普通






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<245KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef