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


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

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



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

231 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 02:30:00 ]
すいませんCの質問かどうか微妙なんですが、
同じ数字を繰り返す式例えば
while(){
int num++;
a = num % 3;
}であれば012012012とaの値が変化しますよね、
これと別に0121012101210って感じで変化する数字を作り出すやり方ってありますかね?

232 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 02:34:06 ]
>>231
3行目、aじゃなくてnumな。あとnumのスコープが狭すぎ。

int num=0;
static int array[] = { 0, 1, 2, 1 };
while() {
int a = array[ num ];
num = ( num + 1 ) % 4;
}

テーブルで変換とかどう?
1の次が0になる場合と2になる場合があるから単純なステートマシンじゃ無理かと。


233 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 02:39:43 ]
>>232

なるほど。おっしゃるとおりテーブル使ったほうがよさげですね。
実はこれ今作ってるゲームのアニメパターンの変化部分で使うんですよ。
グラデーションみたいなアニメなんで012012みたいな循環数字(?)じゃ気に入らなくて、、、

ありがとでした!!

234 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 02:53:15 ]
>>221
TCPなら順序制御があるけど、何が問題なの?
少なくともトランスポート層以上では正しい
データになってるだろ。
アプリ層で60kByte取得するまで待てばいいんでは?


235 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 02:58:13 ]
>>233
三角関数使うといいんじゃね?

236 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 03:39:42 ]
int main(){

const int C = 100;
const double PI=3.1415f;
const double K = 10.0f;

double i=0.0f;

for(int r =0;r<C;r++){
double t=0;

for(double x=1.0f;x<K ; x=x+1.0f){
t = t + sin((x* PI )/2.0f ) * (sin( x * i))/(x*x);
}
cout << static_cast<int>(round(fabs(t*(8.0f/(PI*PI))) * 2)) << endl;;

r%4==0 ? i=0.0f:i=i+PI/4.0f;
}



return 0;
}

237 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 05:07:14 ]
>>224
どうしてunion使わないの?

238 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 07:25:38 ]
struct Foo {
double value;
char *name;
};

int main (int argc, char *argv[]){

int i;
for(i = 1;i < argc; i = i + 2)
struct Foo test[i] = {atof(argv[i]), argv[1+i]};

とやると、
.c:13: error: parse error before 'struct'
.c:17: error: 'test' undeclared (first use in this function)
.c:17: error: (Each undeclared identifier is reported only once
.c:17: error: for each function it appears in.)

ってコンパイルエラーが出てコンパイルできないんですけれど、
どうやれば構造体を宣言できるのか分からないので教えていただけないでしょうか?

239 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 07:44:39 ]
>>238

for(i = 1;i < argc; i = i + 2)
struct Foo test[i] = {atof(argv[i]), argv[1+i]};

↑こんなことできん。
いったい何をしたいんだ?





240 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 08:10:40 ]
>>239
できないんですか〜。
残念。
正確にやりたいことを書くと、引数に「100,りんご,200,みかん,150,バナナ」みたいなものがあります。
でも引数の数は「100,りんご,200,みかん」かもしれないし、「100,りんご」かもしれないし、もしかしたら引数がないかもしれません、
で、まず構造体を作って、
struct Foo {
double value;
char *name;
};

int i;
for(i = 1;i < argc; i = i + 2)
struct Foo test[i/0] = {atof(argv[i]), argv[1+i]};

ってできないかなぁと思って。

241 名前:240 mailto:sage [2007/12/12(水) 08:12:12 ]
struct Foo test[i/2] = {atof(argv[i]), argv[1+i]};
の間違いです。

242 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 10:06:49 ]
>>236
それはやりすぎwww

243 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 10:31:57 ]
i/0ってw

244 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 10:44:43 ]
>>224
要素が12bitのように振舞うvector<signed long>のラッパー
vector<signed long>に12bitずつ格納するラッパー
イテレータも実装すればいろいろ応用できるだろう

245 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 11:12:50 ]
>>240
造体の要素ごとに入れていくか、
コンストラクタつきの構造体(クラス)にして、引数にするとかじゃね?
っていうか、やりたい事を見ると、簡単な構文解析が必要なんじゃね?



246 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 11:51:50 ]
>>221
MTU (最大転送単位)なんだから、MTUより大きなパケットは使えません。
なんで分割されると困るの?


247 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:23:24 ]
if(!a)printf("hello world");
だとaが偽(0の時)の時printfを実行するという意味でしょうか


248 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:31:10 ]
そうですよ。

249 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:34:02 ]
>>247の質問をエスパーするとだな

真が0以外なのに正常終了が0なのはどうしてですか

ってことだと思う



250 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:42:26 ]
#include <vector>
#include <sstream>
#include <algorithm>
struct Foo {
double value;
std::string name;
};
int main (int argc, char *argv[]){
{
std::vector<Foo> FooArray;
if (argc > 1) {
std::vector<char> str(argv[1], argv[1] + strlen(argv[1]) + 1);
std::replace(str.begin(), str.end(), ',', ' ');
std::stringstream buf(&str[0]);
Foo data;
while (buf >> data.value >> data.name)
FooArray.push_back(data);
}
return 0;
}

251 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:44:05 ]
>>250>>240へのレスね。ちなみにマルチバイト文字列だとバグるかも

252 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 13:50:44 ]
>>250
240 を見る限り、実際にカンマ区切りのテキストを入力するわけじゃなくて
argv に2つずつ並んでるみたいだよ。そんなめんどくさいことしなくていいみたい。

253 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 14:01:09 ]
#include <vector>
#include <string>

int main(int argc, char ** argv)
{
struct valname {
double value;
std::string name;
};
std::vector<valname> valnames;
for (int ic = 1; ic < argc; ic += 2) {
valname data = {atof(argv[ic]), argv[ic + 1]};
valnames.push_back(data);
}
for (std::vector<valname>::const_iterator it = valnames.begin(); it != valnames.end(); ++it) {
std::cout << it->value << ' ' << it->name << '\n';
}
return 0;
}

254 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:08:21 ]
ポインタ配列は、一つ当たり32bit使いますか?


255 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:12:56 ]
>>254
環境によります。
printf("%u\n", sizeof(void *))とでもしてバイト数を割り出してみてください。
大抵の環境では、その8倍がビット数になります。

256 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:14:39 ]
サンクス

257 名前:デフォルトの名無しさん [2007/12/12(水) 15:29:40 ]
int ch;
while((ch=getchar())!=EOF){
if(if(isalpha(ch)) analysis(ch);
}

ってなってるところで11Fってやったらanalysis(ch)に11回Fをいれるようにしたいんですどどうすればいいですか?
analysis(ch)は他の関数です。

258 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:38:14 ]
>>257
ループの外で count という変数を宣言して、0で初期化
ループの中で、isdigit() だったら count = count * 10 + ch-'0'
analysis() を呼ぶところで、count の回数だけ繰り返し


259 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 15:39:51 ]
>>257
日本語とCでOK。



260 名前:デフォルトの名無しさん [2007/12/12(水) 16:09:33 ]
>>258
有難うございます、やってみます。

261 名前:デフォルトの名無しさん [2007/12/12(水) 16:59:20 ]
const int num = 5;
int a[num];

って、C++では、配列を宣言ってできるの?
これが出来たら、配列が動的に宣言できちゃうことにならない?

262 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:02:34 ]
>>261
numはコンパイル時に確定しているから静的でないといけないC++でも問題ない。
Cの場合は、ローカル変数なら同じ方法で動的に宣言できる。

263 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:45:57 ]
>>261
const は動的に書き換えられないので問題ない。

264 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:46:57 ]
>>262
それはC99だろ

265 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:49:24 ]
>>263
でも、変数の初期化時に動的な値で初期化できないかい?

const int num = f();

みたいな感じで

266 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 17:59:55 ]
>>265
やってみろ。話はそれからだ。

>>264
C99はCではないとでも?

267 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 19:29:48 ]
>>266
C99はCの一つ。だから、Cの場合は云々行った場合、
それがC99だろうと、C89だろうとかまわない内容でないとまずいだろ。

ちゃんとC99である事を明記するべきだといっているんだ

268 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 19:42:03 ]
なに、じゃあいまさらK&R形式でやれと?
構造体の直接代入は禁止かい?

269 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 19:53:47 ]
頭の悪い絡み方だが、本人的には鋭い突き上げなんだろうね。



270 名前:266 mailto:sage [2007/12/12(水) 20:19:43 ]
いや、>268は私じゃないし。

271 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:21:03 ]
いまの32bitx86用商用コンパイラってだいたいC++コンパイラだろ
C99をサポートした上記用Cコンパイラって何かある?

272 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:27:39 ]
取り敢えず、icc, sun studioはc99だね。

273 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 20:52:11 ]
そもそも32bit x86用商用コンパイラ、というカテゴリそのものがアレだなー。

274 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 21:26:35 ]
まぁC99、あんま流行ってないしな。

275 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:02:47 ]
>>274
まーね、C++のCの部分だけで十分なんだけどって感じかな。
俺としては、C99サポートよりC++TR1のサポートを要求するって感じだ。

>>272
やっぱ、銭にならん、あるいは、対応要求が強くないからかなサポートしないってことかな。


276 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:07:35 ]
というか、「いまの32bitx86商用Cコンパイラ」をC99対応に関わらず
列挙してみろってば。

277 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:19:19 ]
ググレカス

278 名前:デフォルトの名無しさん [2007/12/12(水) 22:49:57 ]
C++で typedef は何の為にあるんでしょうか。
自己満足以外の使い方を教えてください。

279 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 22:54:20 ]
移植性と書きやすさ



280 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:06:02 ]
>>275
>まーね、C++のCの部分だけで十分なんだけどって感じかな。
つーか、C89から使ってる人間からすると、C99でどうしても欲しい機能って無いのよ。
むしろC99に対応するより、ISOやらJISやらにC89の規格を閲覧出来るようにしろと要求したい。

281 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:11:36 ]
>>278
traitsの表現
というか自己満足してるのはお前だけ

282 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:27:42 ]
typedef無かったらめっちゃ不便やん?
テンプレート使うときとか後で変更される可能性のある型使うときとか

283 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 23:31:06 BE:335659853-2BP(35)]
コードコンプリート第2版とModernC++Designまじおすすめ

284 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:13:25 ]
VCのうにコードな時、TEXT("もじれつ")でWSTR[]が作れるけど、
文字からWCHARを作るにはどうすればいいの?

285 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:24:05 ]
おまえらC#も使えるよな?

286 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:24:24 ]
TEXT('も');
_T('じ');

287 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:35:32 ]
VCのうにコードな時、TEXT("もじれつ")でWSTR[]が作れるけど、

いや無理だろ

288 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 00:45:21 ]
>>284
C/C++言語で文字列をどうこう言う前に、自然言語で正しい(意味が伝わる)文字列を
扱えるようにするのが先だとは思わないかね?

289 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:15:14 ]
vector配列の解放はどうやるんですか? resizeとかで縮めるしかないですか



290 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:17:53 ]
自己解決しました clear();というのがありました

291 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:25:20 ]
だめだ
解放されていない

292 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:26:46 ]
reserve(0);でも解放されないよ どうしたら良いんですか

293 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:30:50 ]
vectorの解放ってあんましピンとこないなー。

std::vector<T>( hoge ).swap( hoge )
でシュリンクできる、ってEffectiveSTLにあったけど、
そういう話?

294 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:34:25 ]
解放できましたよ 標準でついてないのが良くないですね
main(){
int n;
vector<double> a(10000000,1);
vector<double>().swap(a);
scanf("%d",&n);
}


295 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:37:39 ]
>>293
作業領域でたとえば100M使っていたとして、そのあとにもプログラムが続く場合
作業領域は消したいですよね 多分サブルーチンで確保したものは戻るときに消えていると思うのですが
そうでないと消したいわけなんですが・・標準でついてないです

296 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:44:52 ]
そういう意味なら、スコープ抜けたら消えるでしょ。
vectorの定義から消したい場所までをブロックで囲めば。

297 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:47:29 ]
万能解放命令できたよ

template<typename T>
void clear(T& t){ T().swap(t);}

main(){
int n;
string a; a.resize(100000000);
clear(a);

vector<double> b(10000000,1);
clear(b);
scanf("%d",&n);}

298 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 19:50:30 ]
>>296
実験してみました ちゃんと解放しますね 勉強になりました

main(){
{vector<double> b(10000000,1); Sleep(1000);}
int n; scanf("%d",&n);
}

299 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 20:00:26 ]
でも有効範囲を括弧で括るのは紛らわしいですね 他にも適用範囲の別の物がまじっていたら困ります
明示的に解放するほうが良さそうですね 




300 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:00:51 ]
vcはclearで解放しなかったかな

301 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:23:11 ]
C99の複合リテラルに対応しているコンパイラって何がありますか?

302 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:40:38 ]
gccって更新はやいんじやないの?

303 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 00:36:56 ]
>>299
まともにスコープ切ってれば明示的な解放(ブロック作成)が要るようになることなんて
無いと思うよ。そうとう特殊な場合でしょ。

304 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:17:40 ]
ImpersonateLoggedOnUser関数による偽装ログオンについて教えてください
アドミン権限で動いてるプログラムのうち、ユーザHOGEに偽装ログオンして
動かしたいA()という関数と、アドミン権限で動かしたいB()という関数があります。

このとき、
LogonUser(..., &hToken);
ImpersonateLoggedOnUser(hToken);
A();
B();
RevertToSelf();
CloseHandle(hToken);
としてしまうと、B()までHOGE権限で動いてしまうと思っています。ので、
LogonUser(..., &hToken);
ImpersonateLoggedOnUser(hToken);  A();  RevertToSelf();
CloseHandle(hToken);
LogonUser(..., &hToken);
ImpersonateLoggedOnUser(hToken);  A();  RevertToSelf();
CloseHandle(hToken);
B();
とするか、
LogonUser(..., &hToken);
ImpersonateLoggedOnUser(hToken);  A();  RevertToSelf();
ImpersonateLoggedOnUser(hToken);  A();  RevertToSelf();
B();
CloseHandle(hToken);
とするかだと思うのですが、A()、B()が何回か繰り返し呼び出されるとき、後者のように
LogonUser()を呼ぶのは一回だけにして、LogonUser()とCloseHandle()の間に複数回の
偽装・偽装解除・A()・B()を呼び出すのは問題ないでしょうか。
多分大丈夫なんじゃとは思うのですが、そういうサンプルコードが見あたらなかったので
決めかねている次第です。どなたか教えていただけると助かります。

305 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 11:44:17 ]
文字列リテラルにスコープってある?

char *func(){
return "Hello,World!!!";
}
てあり?

306 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 11:56:07 ]
>>305
大蟻。
つーか、常套手段。但し、const char *を返すべき。

307 名前:306 mailto:sage [2007/12/14(金) 11:58:04 ]
>>305
書き忘れた。文字列リテラル自体の生存期間はstaticと同じく、プログラム開始時から終了時まで。

308 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 12:47:11 ]
>>306-307
サンクス
そうかconstだったな

309 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 15:35:34 ]
スコープ(名前の有効範囲。コンパイル時にチェックされる)と
寿命(変数を置く場所がその変数のための場所である期間。実行時の話)は
別の話だぞー。



310 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 22:33:52 ]
参考書を見ながら独学でやっているプログラミング初心者です。
どうにもわからないことがあるので質問します。

#include<stdio.h>

int main(void){

int a = 1;
int b = 0;


printf("short int型のサイズは%dバイトです。\n",sizeof(short int));
printf("int型のサイズは%dバイトです。\n",sizeof(int));
printf("long int型のサイズは%dバイトです。\n",sizeof(long int));

printf("float型のサイズは%dバイトです。\n",sizeof(float));
printf("double型のサイズは%dバイトです。\n",sizeof(double));
printf("long double型のサイズは%dバイトです。\n",sizeof(long double));

printf("変数aのサイズは%dバイトです。\n",sizeof(a));
printf("式a+bのサイズは%dバイトです。\n",sizeof(a+b));


return 0;
}

でコンパイルするとlong doublのところが10バイトになるのですが
私の持っている参考書の{やさしいC}では8バイト表記になっています。
何度も見直していますが間違いがわかりませんでした。
よろしくお願いします

311 名前:310 mailto:sage [2007/12/14(金) 22:40:24 ]
動作環境はWinXP
使用コンパイラはCpadというものです。

312 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 22:41:38 ]
型のサイズは環境によって違う。
long double は 8, 10, 16 バイトの3種類くらい見たことがある。

313 名前:310 mailto:sage [2007/12/14(金) 22:57:54 ]
>型のサイズは環境によって違う。
long double は 8, 10, 16 バイトの3種類くらい見たことがある。

環境の違いがあるということも頭に入れて勉強を進めたいと思います。
ありがとうございました。

314 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 23:39:03 ]
GCCとVCくらいしか使わん身としては
10バイトってのは珍しいね

315 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 23:52:31 ]
コンソールで画面整形というか画面操作というか、正しい呼称はわからないのですが
例えば複数行に渡って
1111111
2222222
3333333
4444444
などと表示した後、それに被せる、ないしは消して同じ位置に出力というのは不可能でしょうか?

自分で調べてみて大量の\r\bを並べてみてもうまくいかなく今は大量の\nでごまかしごまかしやっています

316 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:08:05 ]
そんなあなたに ncurses

でもwin用ってあったけ?

317 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:12:19 ]
調べてみると
利用可能OS
AIX
BeOS
Cygwin
Digital Unix (aka OSF1)
FreeBSD
GNU/Linux
HPUX
IRIX
OS/2
SCO OpenServer
Solaris
SunOS

あばばば、Cygwinか、いやしかし・・

318 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:14:37 ]
PDCursesってのもあるでよ。

319 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:15:09 ]
cursesならある。
VCか何かだったかな・・・。

でもそれよか、そのぐらいならエスケープシーケンス有功にした方が早いかもよ。



320 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:21:51 ]
エスケープシーケンスっていうと自分のところでしか結局動かないことになっちゃうような・・?

PDCurses、なかなかいいページがみつからないのでちょっと試行錯誤してきてみます

321 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:33:06 ]
fseek的なのほしかぁ、ありがとう

322 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:43:58 ]
enum Foo { a = 0, b = 10, };
int main()
{
Foo x = Foo(3);
}

VC71ではこれがコンパイル出来るんだけど、
Foo xが列挙型Fooにない値を取り得るというのは正しい動作?

323 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 00:46:46 ]
結局windows.hが入ってきましたとさ

324 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 01:29:51 ]
>>322
xは11になったろ?

325 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 02:23:22 ]
>>324
いや、int(x) == 3だった。

326 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 07:52:18 ]
>>314
Intel 系の CPU は浮動小数点を 10 バイトで扱ってるから別に珍しくはない。
Intel 系の環境なら、16 バイトになってても 6 バイトはパディングが入ってるだけ。普通なら。
昔は Turbo C++ とか 10 バイトだったような。

>>315
Win ならコンソール系の関数があるのは知っている。
使った事無いから目的の操作ができるかどうかは知らんが。
msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpfileio/html/Toppage_Console.asp

327 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 10:06:17 ]
>>322
列挙Fooの値の範囲は
下限が0で上限が15になる。
xがその範囲の値ならFoo(x)
はOK。

328 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 14:17:34 ]
DLLでdosコマンドを呼び出すとき、ms-dosの標準ではないアプリなどですが
全くdos画面を出さずに呼び出すにはどうしたらいいですか? エラーが出るとdos画面が出てきてしまいます

329 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 14:23:54 ]
>>328
SetStdHandle



330 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 14:43:49 ]
>>329
サンクス
日本語サイト検索してもヒットが少ないんですけどどうやってその知識を得たんですが? 物知りさんですね

331 名前:デフォルトの名無しさん [2007/12/15(土) 16:57:51 ]
ソースの行数とかクラスの数とかを計測したいのですが
何かいいソフトはないでしょうか? Linuxです






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

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

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