【初心者歓迎】C/C++室 Ver.9【環境依存OK】
901 :
デフォルトの名無しさん:04/10/09 13:36:48
Ruby >>>>>>>>>>>>>>>>>>>>>> ぼおst
boost::filesystemな・・・ポータブルパスの書式は
ディレクトリの区切り文字が '/' になってややこすぃ。
"C:\Windows\system" は "C://Windows/system" とか。
うっかりネイティブ形式の放り込むと例外が飛んでくるんで注意!
でもディレクトリ移動が '/' 演算死を使って実装してあるのはちょっと感動した。
>>903 だから何?remove使って何か問題あるのかね?
>>902 っつかWindows(DOS)って何でディレクトリの区切り文字を'\'にしたの?
ディレクトリはUNIXから拝借したんじゃないの?
>>905 オプションが'/'で始まる仕様だったから。
ファイルの概念の無い環境は知らんが、BTRONにはディレクトリの概念は無いよね。
#いやさ、リンクで擬似的に実現できるんだけど".."がお手上げでね。
>>907 誘導したの漏れだけど、黙って移動するかな。おまけにこっちで環境書かないし。
で、改めて言うけどLSI-Cはやめとけ。ロングファイル名にも対応できないんだから。
>>909 ほぅ
そこのボタンの掛け違いはいつ起こったんですか?
ご存知の方いるかな?
> int getBar() const {return Bar;}
このconstってどういう意味?
>>911 元々MS-DOSはUNIXじゃなくてCP/Mの真似だから。
つか、最初はディレクトリもなかったしな。
mutable を見た PG を鬱にさせるおまじない
>>913 CP/Mってオプションはやっぱ'/'だったんですかね?
>>912 「getBarではメンバ変数(Barとか)に変更を加えない」という宣言
黙っての移動すいませんでした。
以後気をつけます。
環境はボーランドのコンパイラです。
絶対値を求める演算子を教えてください
調べても出てきませんでした
文字列がatofで変換できるか調べるには
自前で関数用意するしかないですか?
>>920 int型でいいならabs()関数
あとはMSDN見ればわかるだろう。
>>922 MSDN使っていると言う前提は如何な最中。
>>921 「変換できるか」の定義に拠るが、strtod()を使えば文字列のどこまでを変換に使ったかは判る。
>>920 そういう演算子は無い。
>>920 そういう関数でやれ。
<cstdlib>
int:abs
long:labs
long long:llabs
<cmath>
double:fabs
float:fabsf
long double:fabsl
>>923 すいません、今携帯でかつ調べる手段がないのでその関数の詳細教えていただけますか?
因みに基準は文字列が数字とピリオド1つで構成されているかです。
>>923 927
解決しました。ありがとうございます。
929 :
デフォルトの名無しさん:04/10/09 19:26:06
Kdevelop使ってる人いますか?
情報が少なすぎで困っています。
関数の戻り値としてx座標とy座標の2つを指定できるのでしょうか?
いろいろな例をみていると1つしか指定できないみたいなので
(x、y)を戻り値として返すことはできるのでしょうか?
void hoge(int *x, int *y);
or
class Point {
int x_, y_;
//blah, blah, blah
};
Point hoge();
std::pair<int, int>とか
>>930 C++だったら
>>932がスマートだと思う。
Cだったら
>>931の2つかグローバル変数しか方法はなさそう。
classじゃなくてstructしか使えないけど。
古いコンパイラだと構造体の実体は返せないので注意。
>>931 >void hoge(int *x, int *y);
この方法は何という名の方法なんでしょうか
わからないので検索して調べてみたいのですが
なんて調べたらいいのかわからないもので…
>>932 調べてみます
>>933 c++.netなんですけどreturnで構造体をかえせるか試してみます
レスありがとうございました
最近C++を学び始めたのですが二進数表示にするマニピュレータとかってないんでしょうか。
回転とかシフトなどビット単位で計算することってC++やCではよくあると思うのですが。
936 :
デフォルトの名無しさん:04/10/09 20:53:55
返せないわけないだろ
937 :
デフォルトの名無しさん:04/10/09 20:55:16
Cでint型をString型に変換するにはどうすればいいのでしょうか?
JavaでいうtoStringやParseIntみたいなAPIはあるのでしょうか?
通は8進表示でビットデータを読みます
939 :
デフォルトの名無しさん:04/10/09 20:58:11
CにはString型はないんだけどsprintfでがんがれ
ほとんどの環境でitoaがあると思うけど。
941 :
デフォルトの名無しさん:04/10/09 20:59:42
>>934 >void hoge(int *x, int *y);
「参照渡し」とかでぐぐれば見つかるんじゃない?
ポインタを理解してれば自動的に理解できると思うんだけど。
>>936 安心して使ってみます
>>943 まだポインターは理解してないので
これから勉強しようと思います
レスありがとうございました
>935
unsigned char型を2進表記しようとしてこんなん
unsigned char uchar = 'c';
for(short i=sizeof(unsigned char)*8-1; i>=0; --i){
if( (uchar>>i) & 1U ){
bset[index++] = 1;
}else{
bset[index++] = 0;
}
}
書いたことある。bsetはなんらかのbitsetのインスタンスね。
もっと簡潔にするなりテンプレート化するなりはだれか偉い人やって(;´Д`)
charが8bitだと誰が決めたのか
Rubuy ???????????????????????>>>>>>>>>>>>>>>
>>945 こんなもんでどうよ。
コンパイラによっては警告くらいは出ちゃうかもしれんが。
unsigned char uchar = 'c';
_Bool bset[sizeof(unsigned char)*8];
for(int i=0; i<8; i++) bset[i++] = (((128>>i) & uchar)!=0);
949 :
デフォルトの名無しさん:04/10/10 00:05:39
pppppuuuuuuuuuuuuuuuuuuuuuuuuuぷううううううううううううううううううううう
>>935,945
…std::bitset::to_string()