[表示 : 全て 最新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

641 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:36:15 ]
>>637
unsigned char* を期待したのに void が渡された

関数コールで引数指定し忘れたとかそういうオチ?


642 名前:デフォルトの名無しさん [2007/12/21(金) 00:46:13 ]
>>641
UART_1_PutString(itoa(line,iData,10));

ここでエラーが出ています。引数指定し忘れというのは??
すいません、勉強不足で・・・・

643 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:57:45 ]
>>635
VC++ 2008 でも問題ない。

644 名前:635 mailto:sage [2007/12/21(金) 00:59:50 ]
>>638-639
自分もバカバカしいと思いながらも、完全には自信がなくて・・・。
でもg++でOKなら、それが正しそうですね。
どうやらVC++6は、内部クラスは外側のクラスにとっての
暗黙のfriendにはならないようです。
ありがとうございました。

645 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 08:12:04 ]
>>642

>UART_1_PutString(itoa(line,iData,10));

UART_1_PutString()の宣言はどうなってる?

>引数指定し忘れというのは??

関数の引数が足りないんじゃないか、と言うこと。


646 名前:デフォルトの名無しさん [2007/12/21(金) 11:17:26 ]
>>645
UART_1_PutString()の宣言は・・・・されていません。


関数の引数が足りないっていうのはitoa関数のって事ですか??




647 名前:デフォルトの名無しさん [2007/12/21(金) 11:27:04 ]
>>645
連投すいません。

UART_1_PutString()の宣言はvoidです。



648 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 11:29:28 ]
>>647
ちゃんと書こうよ。その書き方じゃ
void UART_1_PutString(?)
? UART_1_PutString(void)
void UART_1_PutString(void)
のどれかわからない。


649 名前:デフォルトの名無しさん [2007/12/21(金) 11:32:44 ]
すいません・・・
void UART_1_PutString()です。



650 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 11:40:49 ]
>>649
#include <PSoCAPI.h> しないで自分で宣言を書いたりしてないよね?


651 名前:デフォルトの名無しさん [2007/12/21(金) 11:47:39 ]
>>650
#include <PSoCAPI.h>はしています。

UART_1_PutString(itoa(line,iData,10)); で

`UART_1_PutString'; found `void' expected `pointer to unsigned char'
というエラーが出てくるという事は、itoa関数に問題があるのでしょうか?


652 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 12:56:12 ]
itoaの戻り値は文字列なの?


653 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 12:58:56 ]
>>651
UART_1_PutString() と itoa() の宣言をコピーして見せるべし。


654 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:07:31 ]
>>651
UART_1_PutStringが引数を取らない関数なのに
unsigned char * 型の引数(itoa(line,iData,10))を渡すからエラーなんだろ。
UART_1_PutStringの使い方が間違ってるから確認しろ。

655 名前:651 [2007/12/21(金) 14:06:00 ]
>>652-654
void main()
{
int iData;
char line[10];

M8C_EnableGInt;

ADCINCVR_2_Start(ADCINCVR_2_HIGHPOWER);
ADCINCVR_2_SetResolution(8);
ADCINCVR_2_GetSamples(0);

UART_1_CmdReset();
UART_1_Start(UART_1_PARITY_NONE);

for(;;)
{
while(ADCINCVR_2_fIsDataAvailable() == 0);

iData = ADCINCVR_2_iGetData();
ADCINCVR_2_ClearFlag();

char line[10];
UART_1_CmdReset();
UART_1_PutString(itoa(line,iData,10));

UART_1_PutChar('\n');
}
}

このようなプログラムです。。。

656 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 14:35:59 ]
>>655
>653

657 名前:651 [2007/12/21(金) 14:43:06 ]
あとはvoid main()の上に
#include <m8c.h>
#include "PSoCAPI.h"
#include <stdlib.h>
が記述してあるだけで、全てなのですが・・・



658 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 14:50:52 ]
もしかして、C用のインクルードファイルをC++から直にインクルードしているって落ち?

659 名前:651 [2007/12/21(金) 15:01:44 ]
ちょっとわかんないです・・・・



660 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 15:14:42 ]
えい面倒だ。コマンドライン若しくはコンパイラの出力を全部晒せ。

661 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 15:35:56 ]
>>657
stdlib.h や PSoCAPI.h の中に atoi() や UART_1_PutString() の宣言
があるはずだから、それをここに示して欲しい。

それらがないと、ここで見ている人は正しい仕様がわからないのでアド
バイスしにくい。コンパイラの種類なども示してくれるとベター。


662 名前:651 [2007/12/21(金) 15:38:00 ]
>>660
改行多すぎエラーが出るため分割します。


#include <m8c.h>
#include "PSoCAPI.h"
#include <stdlib.h>

void main()
{
int iData;
char line[10];

M8C_EnableGInt;

ADCINCVR_2_Start(ADCINCVR_2_HIGHPOWER);
ADCINCVR_2_SetResolution(8);
ADCINCVR_2_GetSamples(0);

UART_1_CmdReset();
UART_1_Start(UART_1_PARITY_NONE);

663 名前:651 [2007/12/21(金) 15:41:05 ]
>>660

for(;;)
{
while(ADCINCVR_2_fIsDataAvailable() == 0);

iData = ADCINCVR_2_iGetData();
ADCINCVR_2_ClearFlag();

UART_1_CmdReset();

UART_1_PutString(itoa(line,iData,10));
UART_1_PutChar('\n');
}

}



664 名前:651 [2007/12/21(金) 15:41:28 ]
出力
Starting MAKE...
creating project.mk
lib/adcincvr_2.asm
lib/adcincvr_2int.asm
lib/dac8_2.asm
lib/psocconfig.asm
lib/psocconfigtbl.asm
lib/uart_1.asm
lib/uart_1int.asm
lib/uart_1plus.asm
./boot.asm
./main.c
!E ./main.c(32): type error in argument 1 to `UART_1_PutString'; found `void' expected `pointer to unsigned char'
!E ./main.c(32): can't recover from syntax error.


adconv1_vup_usart - 2 error(s) 0 warning(s) 15:39:51


665 名前:651 [2007/12/21(金) 15:45:27 ]
>>661
stdlib.hの中身@。。これも分割します。

#ifndef __STDLIB_H
#define __STDLIB_H
#include <_const.h>

#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
#ifndef NULL
#define NULL 0
#endif
#include <limits.h>
#define RAND_MAX INT_MAX

#ifndef __SIZE_T
#define __SIZE_T
typedef unsigned int size_t;
#endif

#if defined(_HC12)
#pragma nonpaged_function atof exit
#endif

666 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 15:46:00 ]
情報が欠けているので確信はないけど、

たぶん itoa() が値を返さない仕様で、UART_1_PutString(char*)
に渡せない。
itoa(line, iData, 10);
UART_1_PutString(line);
にすればokかもしれない。



667 名前:651 [2007/12/21(金) 15:46:06 ]
>>661
stdlib.hの中身A。。

char *ftoa(float f, int *status);

int abs(int);
double atof(CONST char *);
int atoi(CONST char *);
long atol(CONST char *);
void itoa(char *string, unsigned int value, int base);
void ltoa(char *string, unsigned long value, int base);
int rand(void);
void srand(unsigned);
long strtol(CONST char *, char **, int);
unsigned long strtoul(CONST char *, char **, int);

#if !defined(_M8C)
void abort(void);
void *calloc(size_t, size_t);
void exit(int);
void free(void *);
void *malloc(size_t);
void _NewHeap(void *start, void *end);
void *realloc(void *, size_t);
#endif

#endif


668 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:01:38 ]
VC++2008を使っているのですが、ソースファイル変更を施していない上に、ソースファイルが存在しているのに、逆アセンブリ表示でしかデバッグができません。
これは何か知らないうちに変な設定をしてしまったからなんでしょうか?

どなたかご存知の方いらっしゃいましたらご教授ください。

669 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:02:08 ]
はい、ダミアンが正解だったようです。



670 名前:668 mailto:sage [2007/12/21(金) 16:03:13 ]
ちなみにビルドの際にも、ソースファイルはプロジェクト中に存在しています。

671 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 16:03:24 ]
>>668
VisualStudio専用スレがあるからそちらでどうぞ。

672 名前:668 mailto:sage [2007/12/21(金) 16:05:07 ]
はい。

673 名前:デフォルトの名無しさん [2007/12/21(金) 17:39:14 ]
>>666
ありがとうございました。解決できました。

674 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 18:30:39 ]
WinXP,VC++2005について質問です.
DOSコマンドのassoとftypeのように,特定の拡張子に関連付けされた
アプリケーションをできればフルパスで取得したいのですが,
VC++で可能でしょうか?

675 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 21:04:40 ]
関連付けならレジストリのHKEY_CLASSES_ROOT以下を見ればいい。

676 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 22:22:15 ]
HDD片方だけぶっ壊れたせいで復旧作業泣ける、嫌になってレジストリ削除とエントリ削除結構適当だから不安

あー、もうしにたい

677 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 22:37:01 ]
ごばくだうわあああorz

678 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 01:32:45 ]
初めて見たんだけど、’あっそ’ってどんなコマンドなん?

679 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 07:10:49 ]
>>678
assocの間違いだと思う。



680 名前:デフォルトの名無しさん [2007/12/22(土) 10:03:06 ]
>>485です
回答くださったみなさん、ありがとうございます。
三項演算子は勉強になりました。
>>502の参照からポインタとって操作するのがわかりやすかったので、
この方法でいこうと思います。
has()が返すアドレスの実態はgetで得られるインスタンスと一緒です。

681 名前:674 mailto:sage [2007/12/22(土) 10:24:21 ]
>>678,679

すみません.assocの間違えです.
c++でできるコマンドがありましたらお願いします.

682 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 10:34:14 ]
>>674 >>681
それは OS 無しで知りえない情報だから system (みたいなもの)
使うしかないんじゃないの?


683 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:02:30 ]
クラス配列の要素数の求め方を教えてください。

class_array = new Class[10]();
sizeof( class_array ) / sizeof( class_array[0]);

てやっても0になってしまいます。
sizeof( class_array ) ってすると4になるんですが、
この4が何かが分かりません。
例えば普通の10個の要素を持つ配列をsizeofすると、配列のサイズが返りますよね。
クラス配列にsizeofすると、また別の意味の値を返すのでしょうか。

684 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:04:52 ]
>>683
sizeof(class_array)/sizeof(class)じゃ無理?

685 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:13:35 ]
>>684
レスありがとうございます。
できないです…。結果は0になりました。
sizeof( class_array ) が 4
sizeof( CLASS ) が 16
になっていました。

普通の配列にsizeofすると配列のサイズが返ってくるのに、
クラス配列にsizeofした時、配列は16*10=160のサイズを持っている
はずなのに、4しか返ってこないということは、、、
どういう事なんですか??

686 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:13:56 ]
>>683
class_array はただのポインタだろ。そうじゃなきゃ new [] の結果は受け取れないはず。

687 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:16:27 ]
ああ、new

688 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:20:27 ]
>>686
なるほど、sizeof( class_array ) では、ただのポインタのサイズを返しているわけですね。
sizeof(またはそれ以外)を使用してクラス配列全体のサイズを調べるにはどのようにすればよいでしょうか。

689 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:23:34 ]
>>688
sizeof にこだわらなければ 10 に決まってんだろ。
即値を繰り返すのが嫌なら定数なり変数なりに入れとけ。
配列と別の変数でサイズを持ってるのが嫌なら std::vector にしとけ。



690 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:23:59 ]
new[]したもので、要素数を後から知る方法はない。
std::vectorでも使っておけ。

691 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:29:13 ]
恐らくだけど、newに拘る必要はないんじゃないか?

newを知らずに使っているように見受けられる

692 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:30:42 ]
vectorを調べてきました。
こんな便利なものがあったなんて、、
std::vectorを使います!
答えてくださった方々ありがとうございました!

693 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:34:17 ]
>>691
クラス配列の要素を動的に増やしたり、減らしたりしたかったのです。
mallocはコンストラクタが動かないと聞いたんで、newを使っていました。
その結果sizeofで要素数を求めようと頑張っていたのですが、
vectorでなんとかなりそうな気がします。
ありがとうございました。

694 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:37:49 ]
CやC++でGUIなユーティリティを作る場合何を使うのがベターなんでしょうか?
先日本職さんの知り合いに聞いたところMFCだと言っていました
それと同時にCやC++で作るならゲームかなぁみたいなことも言っていました

やはりCやC++でGUIというのはあんまりベターじゃないんでしょうか?
API直接だとかデザイナついたやつだとか、もしくははなからCは使わないだとか

695 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:41:20 ]
趣味でやるのか、仕事でやるのか
自分だけで使うのか、人に売るのか
これからも続けていきたいのか、今回作ったら終わりなのか

もろもろの事情による

696 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:43:00 ]
>>695
一応趣味で、これからも使っていく予定です
人に売る気はないですが、良さそうなものが出来たら公開してみたりしたいなぁくらいには考えています

697 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:45:58 ]
C++Builderかね。

698 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:46:29 ]
MFC WTL ATL ボーランドC++

699 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:50:00 ]
趣味ならCやC++だけと言わずC#にも手を伸ばしてみるのはどうだろうか



700 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 14:52:30 ]
売るつもりが無いならC#は楽でいいな

701 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 15:02:48 ]
C#は一応手を出したことがあるんですが、デザイナがあるだけでどうもそれに頼り切ってしまって
そのせいかどうも感覚を掴めない
まだWinAPIで試行錯誤していた時の方が気が楽でしたorz

とりあえず今Turbo++Explorerとやらをダウンロード中です。
最終的にはVC++を買うことになりそうだなぁ

702 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 15:09:11 ]
プログラミング勉強中なのですが質問させて下さい。
あるファイルから内容を読み取ってデータを抽出して別のファイルに書き出すプログラムを作りたいのですが
#include "fstream"

using namespace std;
void main(int argc, char *argv[]){
ifstream f1;
f1.open(argv[1],ios::in);
中略
f1.close();

ofstream f2;
f2.open("data.txt",ios::out);
中略
f2.close();
}
このようなプログラムを実行するとD&Dしてプログラムを実行した時ofstream f2;以降の書き込み動作が出来ていないようなのです。
何がいけないかいろいろ試してみたのですが、ファイルを読み込む部分をソースから消して書き込む場所だけにしてみても
D&Dして実行すると駄目で、D&Dしないで実行すると普通に書き込めるみたいなのですが
これはどういう理由からなんでしょうか。

703 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 15:35:07 ]
>>702
>D&Dして実行する

って、何をどうやって実行してるの?
その場合って、argvに対象のファイル名がちゃんと渡ってくるものなの?

704 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 15:39:35 ]
>>703
上記のプログラムをコンパイルしてできたexeに読み込ませたいtxtをD&Dで実行ということです。
途中にcout << argv[1]を入れてみたところD&Dしたtxtはフルパスで格納されていました。
ですが ofstream f2("data.txt",ios::out);のdata.txtへの書き込みが出来ない状態です。

追記ですがコンパイルはVC++2005です。

705 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 15:47:27 ]
いや、きっとdata.txtは出力されている。
PCの中を検索すればどこかにあるはずだ。

argv[1]が絶対パスだったら、f2で書き込むファイルも
argv[1]のファイルと同じフォルダになるよう絶対パスで指定するという風にすればいい。

706 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:10:01 ]
printfで\の半角は表示できませんか?

707 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:10:51 ]
>>705
argv[1]で絶対パス渡すと後のファイルオープンのパスに影響与えてしまうってことですかね?
確かに絶対パスを渡したら指定のフォルダにきちんと出力されました。
ありがとうございます。

708 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:19:16 ]
>>706
printf("\\");で出力されるのが、半角円記号だというのなら、
それはそういう風にフォントが出来ているから。

日本では、歴史的経緯で半角バックスラッシュが用いられるべきところに半角円記号が使われる。
今更、円記号とバックスラッシュに分離しようとしてもおそらく極めて困難。

709 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 16:39:52 ]
>>706
フォントに依存するんじゃないかと



710 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 17:03:42 ]
turboC++Explorer落としに行ったけどあれでよかったのだろうか

711 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 18:31:41 ]
>>707
もう解決したようだけど、
D&Dでは作業フォルダに注意ね

712 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:18:03 ]
std::vector<unsigned char> buffer( 100, 0 )

buffer[100][0]という意味ですか?

713 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:19:14 ]
100個確保して0が入っているという意味
buffer[100]=0

714 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:25:09 ]
std::vectorでは二次配列は確保できないのですか?

715 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:25:43 ]
あ、、こうやればいいいのか
std::vector<unsigned char> buffer[a][b];

716 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:28:45 ]
>>715
vectorをa×b個作るの?

vector<vector<unsigned char> >では?

717 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:29:55 ]
>>714
std::vector<std::vector<unsigned char> > vec(100, std::vector<unsigned char>(10));

718 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:31:39 ]
thx!


719 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:36:02 ]
>>713
1行目と2行目が違うのだが・・・



720 名前:デフォルトの名無しさん [2007/12/22(土) 21:11:53 ]
Cのdouble型で表せる最大の数と最小の数はなんですか?

721 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:12:57 ]
環境による
64ビットが普通だけど

722 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:14:05 ]
>>721
計算した値がdouble型の精度を超えてたらエラーとするにはどうしたらいいですか?

723 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:16:00 ]
代入前に比較

724 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:16:30 ]
具体的にどうやるんですか?

725 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:16:48 ]
代入前に比較

726 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:20:26 ]
演算できる上限はどうなってるんだろうな、代入時に分割して代入するとか意味はあるんだろうか

727 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:22:16 ]
BCBだとlong doubleは10バイトなのに、なんでVC++だとdoubleと変わらない8バイトなんですか

728 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:24:18 ]
>>727
俺の自作コンパイラでは9バイトだぜ

729 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:26:01 ]
unsigned long long int=unsigned long long int*unsigned long long int
これで溢れる時
unsigned long long int=(unsigned long long int*unsigned long long int)/2
実際の何割とか決めてって話か



730 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:32:25 ]
double型の演算が大きすぎてコンパイラが停止するのを制御できますか?

731 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:44:53 ]
>>727
MSのも16bit用のコンパイラは10バイトだった。最終はVC++1.5だったか。
10 byte realがIntel x87の内部形式で他と互換が無いこと、
Intel自身も将来的に実数のSMIDを予定してたので10 byte realを
データ型として扱うのは非推奨だったことから廃止した。

732 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:47:21 ]
これはどこが駄目ですか? 実行中にエラーになります

for(n=0;n<1000;n++){
try {x=x*x;}
catch (...) {break;}
}

733 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:47:50 ]
int n; double x=3;が入ります

734 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:53:59 ]
>>732
まずエラーメッセージ嫁。意味が分からなければコピペして見せろ。
ソース貼るならコンパイルできるようにしてくれ。
n や x の宣言が無いのでなんともいえない。

735 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:55:52 ]
xが凄まじい勢いで増えるから

736 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 21:55:54 ]
>>732
double でも確実にオーバーフローするだろ。何がしたいんだ?

737 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:01:26 ]
オーバーフローを起こしたらbreakするにはどうしたらいいんですか

738 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:09:38 ]
>>737
演算前に比較。

739 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:10:34 ]
それはどうやるんですか



740 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:12:48 ]
演算する前に、演算後にオーバフローするかを比較する。

741 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 22:13:19 ]
それはどうやるんですか






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

前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