【初心者歓迎】C/C++室 Ver.11【環境依存OK】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGただしその場合、質問者は必ず、環境を書きましょう。
【歴代スレ】
1:http://pc5.2ch.net/tech/kako/1059/10590/1059041347.html
2:http://pc5.2ch.net/tech/kako/1067/10671/1067189450.html
3:http://pc2.2ch.net/test/read.cgi/tech/1069719929/ (消滅?)
4:http://pc2.2ch.net/test/read.cgi/tech/1073473867/ (消滅?)
5:http://pc5.2ch.net/test/read.cgi/tech/1077102238/ (dat落ち)
6:http://pc5.2ch.net/test/read.cgi/tech/1082182233/(dat落ち)
7:http://pc5.2ch.net/test/read.cgi/tech/1086373839/(dat落ち)
8:http://pc5.2ch.net/test/read.cgi/tech/1091264964/(dat落ち)
9:http://pc5.2ch.net/test/read.cgi/tech/1094494997/l50
10:http://pc5.2ch.net/test/read.cgi/tech/1097416187/l50
【ラウンジ】質問、回答が長い時はココを使うと見やすい
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
関連スレは>>2-5ぐらい
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG★初心者にVisual C++を教えるスレ★ Part15
http://pc5.2ch.net/test/read.cgi/tech/1097880265/l50
■MFC相談室 mfc11.dll■
http://pc5.2ch.net/test/read.cgi/tech/1088084875/l50
C++Builder相談室 Part11
http://pc5.2ch.net/test/read.cgi/tech/1094749339/
GCCについて part4
http://pc5.2ch.net/test/read.cgi/tech/1090062751/l50
cygwin + mingwn + gcc 相談室
http://pc5.2ch.net/test/read.cgi/tech/1058134693/
タダで使えるBorland C++ Part4
http://pc5.2ch.net/test/read.cgi/tech/1091066805/l50
タダで使えるVisual C++ $2
http://pc5.2ch.net/test/read.cgi/tech/1086287039/l50
Borland C++ BuilderX
http://pc5.2ch.net/test/read.cgi/tech/1065260556/l50
Turbo C++ 5.0 プログラミング
http://pc5.2ch.net/test/read.cgi/tech/1030878794/l50
0004デフォルトの名無しさん
NGNGC言語なら俺に聞け! Part 93
http://pc5.2ch.net/test/read.cgi/tech/1098007606/l50
C++相談室 part37
http://pc5.2ch.net/test/read.cgi/tech/1098543578/l50
暇な人がエレガントにC/C++の宿題片づけます 33代目
http://pc5.2ch.net/test/read.cgi/tech/1097932699/l50
【C++】template 統合スレ -- Part5
http://pc5.2ch.net/test/read.cgi/tech/1091522597/l50
C++は難しすぎ 難易度:2
http://pc5.2ch.net/test/read.cgi/tech/1071697977/l50
C言語の第一歩
http://pc5.2ch.net/test/read.cgi/tech/1031374980/l50
0005デフォルトの名無しさん
NGNG★C言語で遊ぼう!★
http://pc5.2ch.net/test/read.cgi/tech/1028269762/l50
プリプロセッサについて熱く語るスレ。
http://pc5.2ch.net/test/read.cgi/tech/1058203590/l50
C統合・質問スレッド
http://pc5.2ch.net/test/read.cgi/tech/1068359871/l50
フリーコンパイラー使えよ。
http://pc5.2ch.net/test/read.cgi/tech/1061384369/l50
C、C++の最適化について語るスレ
http://pc5.2ch.net/test/read.cgi/tech/1084676298/l50
ラウンジでC言語
http://etc3.2ch.net/test/read.cgi/entrance/1093006298/l50
0006デフォルトの名無しさん
NGNG目についたところはリンクを張り替えましたが、
至らない点などございましたらご容赦ください。
>>2
再開します
0007デフォルトの名無しさん
NGNG乙
0008前スレ999
NGNG0009前スレ999
NGNGいじってるうちに勘違いしてたようだ
前スレ999と8取り消す
惑わして御免
0010前スレ999
NGNGこんな感じでx[i]がdouble *のテンポラリを作ってるような気がする
#include <iostream>
#include <iomanip>
#include <memory>
using namespace std;
template<class Container>
class Tester {
const Container& mc;
int mn;
Tester();
public:
Tester(const Container& c, int n): mc(c), mn(n) {}
void disp() {for (int i=0; i<mn; i++) cout << setw(3) << mc[i]; cout << endl;}
};
int main() {
enum { N=3, n=10 };
double x[N][n];
for (int i=0; i<N; i++) for (int j=0; j<n; j++) {x[i][j] = n*i + j;}
auto_ptr< Tester<double*> > p[N];
for (int i=0; i<N; i++) {
double *tmp (static_cast <double *> (x[i]));
p[i].reset(new Tester<double*>(tmp, n));
}
for (int i=0; i<N; i++) {cout << "Tester[" << i << "]: "; p[i]->disp();}
return 0;
}
0011デフォルトの名無しさん
NGNGウインドウズなんか作ってる人ってすごいな
まともに動くだけでもすばらしい
0012デフォルトの名無しさん
NGNGバグって?
0013デフォルトの名無しさん
NGNG95/98/ME環境の人のみ文字化けしてしまいます。
文字コードの問題?っと思うんですが、ビルド設定に見当たらないんですが
どうしたらいいですか?
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGメモリがなくなったりとかしたら当然失敗するでしょ
0016前スレ916
NGNG返事が遅くなり申し訳ございません。
なるほど……。
べたで展開した場合は、コンストラクタごとに別のテンポラリ変数を作って
それへの参照をコンストラクタに渡していたわけですね。for loop で記述
した場合はテンポラリ変数を使いまわして最適化を図っていたと……。
{ // for loop を再現するよう、べたに展開
int i=0;
double *tmp;
tmp = (static_cast <double *> (x[i]));
p[i].reset(new Tester<double*>(tmp, n)); // tmpへの参照で初期化
i++;
tmp = (static_cast <double *> (x[i]));
p[i].reset(new Tester<double*>(tmp, n));
i++;
tmp = (static_cast <double *> (x[i])); // tmpへの最後の代入
p[i].reset(new Tester<double*>(tmp, n));
}
しかし勝手にこんな展開をされるのは怖いなあ…。
一時変数は式の最後(';')の時点で寿命が尽きると理解していたのですが
意識を改めなければならないようです。解決。
わかり易い解を有り難うございました。また他の方々も親身になってお答え
くださり、まことに有り難うございました。
0017デフォルトの名無しさん
NGNG微妙に誤解してる気がするが...
配列とポインタは型が違うのよ
例)
int array [10]; int *pointer;
cout << (typeid (array) == typeid (pointer)) << endl;
結果: 0
Tester <double *>のコンストラクタにx[i]を渡すときに
x[i]は(double [10])から(double*)に暗黙の型変換が起こり(つまり一時変数)
コンストラクタのcはこの一時変数を参照する
そしてmcがcで初期化される
>一時変数は式の最後(';')の時点で寿命が尽きると理解していたのですが
この理解はあってるでしょ
寿命の尽きた一時変数をmcが参照しているので今回のようなことになるわけで
001817
NGNG>今回のようなこと
捕捉すると
つまり動作は不定
表示されたのはたまたま
0019デフォルトの名無しさん
NGNG俺っちはnewでメモリ確保に失敗なんて一度も無いけどな。
失敗した時のコードを書くのはスペースの無駄。
気にすんな。
0020デフォルトの名無しさん
NGNGそのプログラムを動かしながら、バックで何かとてつもなくメモリを食う
プログラムが動いていたとしたら?
そうでなかったとしてもそのプログラム自体がとてつもなくメモリを食うとしたら?
0021デフォルトの名無しさん
NGNGメモリ確保に失敗する前にむしろOSがおかしげになりそうではある。
DOSの頃は切実だったけど。
0022デフォルトの名無しさん
NGNG動いていてもメモリ確保出来ちゃうから
特に問題無い。
0023大原ゆき
NGNGとか、なんだか将来が心配ですね。
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNGあそびならむしろプロと違って切実な納期とかあるわけじゃないんだから、
ちゃんとこだわって書いていきたいと思う。
エラーチェックはある程度までで仕方ない点はあるけど、
freeはちゃんと書こうぜ。
002624
NGNG俺はどっちかというとnewやmallocのメモリ確保失敗チェックを
しない、delete、freeをしない奴を揶揄して書いた。
それと24の書き込みは22宛て。時間見て。
0027デフォルトの名無しさん
NGNGそのチェックに引っかかったことはあるの?
0029デフォルトの名無しさん
NGNG他の原因なのか。
0030大原ゆき
NGNG解からないこともあります。
フリーウェアであっても同じ事がいえます。
使う人間が増えればそれだけ露見することも多いでしょう。
0031大原ゆき
NGNG解からない以上、知りうる限りの対策を予め講じておかなければなりません。
エラーが発生して被害を受けるのは顧客だけでなく開発者もそうなのです。
0032デフォルトの名無しさん
NGNG0033大原ゆき
NGNG場合は、多くの場合、エラーチェックすると「やりすぎ」かもしれません。
上述はたくさんのオブジェクトをnewする時だけの話です。
new/deleteは必ずペアで使う、というのは変わりませんが。
0034デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG意識する必要もないわけだが。
#精々APIで終了してしまってデストラクタを通らないなんて事が無いよう気にするくらい。
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNGやっぱ地道に書くしかないのかな…
最近こんなんばっか
0039デフォルトの名無しさん
NGNG愚痴をこぼす前に手を動かせ、な!
0040デフォルトの名無しさん
NGNGプロセス消滅前に態々 free する莫迦の存在が寧ろ心配なんですが。
0041デフォルトの名無しさん
NGNGVisualC++プロジェクト→.NET→コンソールアプリケーション
で下記を作成し、ウォッチで"tmp->c"を参照しても、2次元配列
の中身が参照できません。
#include "stdafx.h"
#using <mscorlib.dll>
using namespace System;
typedef struct{
int a;
int b;
int c[5][2];
}AAA;
AAA aaa;
int _tmain()
{
AAA *tmp;
tmp = &aaa;
return 0;
}
VisualC++プロジェクト→Win32→Win32コンソールプロジェクト
で作成すると、参照できるのですが、.NETの方で参照できる
方法はあれば、教えて下さい。
0042大原ゆき
NGNGなるべくプログラムを部品化して再利用した方がコストがかからなくて良い、
というのは賛成していただけるのでしょうか。
もし、賛成していただけるとしたら、その部品がなるべくどの環境でも正常な
動作を期待したいと思うでしょう?
OS任せ→環境依存→再利用が困難→一から作らないといけない→コスト増し
0043デフォルトの名無しさん
NGNGもちろん>>42の意見は当然なんだけど、
それ以前に「開けたら閉める」ってのは普通の感性だと思うんだけど。
0044デフォルトの名無しさん
NGNGのですが、Widowsのように以下のGlobalMemoryStatus関数のようなシステム情報
を取得する関数は存在しますか?
GlobalMemoryStatus関数
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/globalmemorystatus.asp
上のような関数でなくとも、システム情報を取得する方法があれば教えて頂きたいです。
0045デフォルトの名無しさん
NGNGclass A
{
public:
virtual void NamePuts() = 0 ;
} ;
class B
{
public:
A* m_low ;
B( A* in )
: m_low( in ) //←
{}
virtual void Puts() = 0 ;
} ;
の、
B( A* in )
: m_low( in )
ってのが、解りません。継承した基本クラスのコンストラクタに値を渡すような書式だけど、
継承してないし、メンバのAのポインタだし…。
: m_low( in )の部分を取ってコンパイルしてみてもエラーは出ませんでしたが、
実行中にエラーがでました。
値を代入しているようには思えますが、どういった意味なんでしょうか?
ちなみに、Bridgeパターンです。
0046デフォルトの名無しさん
NGNGclass Bのメンバをコンストラクタの引数で初期化してる
つーかそれ以外にどういう解釈があるんだ
0047デフォルトの名無しさん
NGNG継承ではなくてコンポジション(包含)だろ。デザパタ以前にもう少しクラスの
お勉強をした方がいいね。
0048デフォルトの名無しさん
NGNGtopのソース見ればいいじゃないか?
0051デフォルトの名無しさん
NGNG「プロセス消滅前」と言っている。つか、何で部品化云々の話が?
>OS任せ→環境依存
リソースをマトモに管理できない環境でメモリヒープ使う事自体が自殺行為。
>>43
malloc/calloc/realloc が「開ける」とするなら
free は「閉めた事にする」なんだが。
0052デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNGshort型にint型を代入すると、警告レベル4だと警告出るじゃん。
その警告出さない為に、あらかじめshort型で宣言しておきたいんだけど、どうやって宣言すればいいの?
実際は、MSXMLのIXMLDOMDocument2Ptr::preserveWhiteSpaceにVARIANT_BOOL型で代入すると
警告が出るんだけど、VARIANT_BOOLのVARIANT_TRUEって(VARIANT_BOOL)0xffffでdefineされてんだよね。
んで、preserveWhiteSpaceはshort型なもんで、警告がでるの。大丈夫かMS。
この警告を巧く消す方法ってないかな?
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNGtopというコマンドが私のやろうとしている事を行っているみたいですね。
即レスありがとうございましたm(__)m
006154
NGNG必要ない。
ので、別にオールビット立っている直値でも突っ込みたい気分なんだがそれをやっても警告は消えない。
short型で宣言して値を初期化しようとした段階でエラーになるんだよ・・・。
short hoge = 0xffff; <-警告発生
どうやりゃいいの?
0062デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG手元にある書籍は、エディタにコードをうち、Borlandのコンパイラにかけてプログラムを作っていくものです。
これは覚えていくことで将来的にGUIアプリケーションは作成できるものなのでしょうか?
もしかしたらVisualC++などを買わないとGUIは作成できないのではないかと不安です。
0065デフォルトの名無しさん
NGNGtrue == 1
0067デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/prog/1082154544/l50
0068大原ゆき
NGNGGUIプログラミングをするのは結構ですが、何か目的あってのことですか?
とりあえずGUIであても無く何かを作りたいと思っているだけでしたら、
そういう考えは捨て、もっと有益なテーマを見つけてからプログラミング
に取り掛かることをお薦めします。
例えば、手書き文字認識に興味があって、その入力ツールを作るために
GUIがどうしても必要だ、ということになって始めてGUIの書き方を学ぶと
良いでしょう。
もっとも、GUIのしくみ自体に興味があるのでしたら、それでも構いませんが。
さて、GUIアプリケーションを作るにあたって、WindowsでしたらWin32API
を使って書けばウインドウを開いたり、一般的なGUIと言えるインターフェース
を構築することは可能です。
Win32APIを扱うためにはVC++でなければならないわけではなく、BorlandC++Compiler(以下BCC)
のような無償のコンパイラでも全く問題なくコンパイルできます。
VC++を使うことのメリットは統合開発環境としてのVC++を利用できる点で、
BCCのような多くの無償コンパイラに付属していない便利な機能が付属しています。
何が便利かというと検索していただければすぐに解かります。
0070デフォルトの名無しさん
NGNGVC++のようなMSコンパイラに付属していない便利な機能が付属しています。
何が便利かというと検索していただければすぐに解かります。
0071デフォルトの名無しさん
NGNGshort hoge = ~0;
ダメだよな
0072デフォルトの名無しさん
NGNG#include <windows.h>
#include <windowsx.h>
int main()
{
int d,e,f;
bool a,b,c;
d=0,e=0,f=0;
a=(d!=0);
b=(e!=0);
c=(f!=0);
if (a||(b&&c))
{
printf("%d\n" , 777);
}
else
{
printf("%d\n" , 999);
}
}
を実行すると
error C2065: 'a' : 定義されていない識別子です。
error C2065: 'b' : 定義されていない識別子です。
error C2065: 'bool' : 定義されていない識別子です。
error C2065: 'c' : 定義されていない識別子です。
error C2143: 構文エラー : ';' が '識別子' の前にありません。
:error C2144: 構文エラー : '<不明>' は '<不明>' によって先行されなければなりません
error C2144: 構文エラー : '<不明>' は '<不明>' によって先行されなければなりません。
error C2146: 構文エラー : ';' が、識別子 'a' の前に必要です。
というエラーが出ます
なぜでしょうか?
0074デフォルトの名無しさん
NGNG拡張子をcppに変更したらいけました
ありがとうございました
0075デフォルトの名無しさん
NGNGCString *s[] = new CString[10];
delete[] s; // 質問:どうして delete s; では駄目なの?
0076デフォルトの名無しさん
NGNGマルチさんさようなら。
0077デフォルトの名無しさん
NGNGnewならばdelete、new[]ならばdelete[]。
1つと複数では、確保の方法が違う(実装がある)場合があるから
区別が必要。考えるのが面倒臭ければ1つの領域を確保する場合に
new[1]とすることもできるけれども、あまりお勧めしない。
0078デフォルトの名無しさん
NGNGぶっぶー
0079デフォルトの名無しさん
NGNG本当の正しい答えを知ってるけど、もったいないから教えてげないよ。
0080デフォルトの名無しさん
NGNGもういいから、本を買えよ。
EffectiveC++くらい持っていても存はないよ。
0081デフォルトの名無しさん
NGNG(double(rand())/RAND_MAX)
という記述があったのですが rand() を囲っている double にはどういう意味があるんでしょうか?
0082デフォルトの名無しさん
NGNG気になるなら
static_cast<double>(rand())
とフィルタしとけ
0083マイク ◆yrBrqfF1Ew
NGNGそういうものだから。
あとsの宣言・定義時の[]もいらない。
0084デフォルトの名無しさん
NGNGまず言語仕様を覚えることから始めないとどうしようもなかんべ。
それをきっちり身に付けてからGUIに逝け。
基本を身に付けずにVCにいくと、何か一つしようとするたびに
ここで質問にしなければ手が出ないようなことになるぞ。
>>70
統合開発環境はBCBだべ。
0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNGC言語のサンプルコードなのですが、
visual studio.net2003で拡張子を.c -> .cppにしてコンパイルするとエラーがでてしまいます。
こういうコードはC++ではエラーになってしまって通らないのですが、どうしたらいいでしょうか?
0087デフォルトの名無しさん
NGNGそこ1行だけじゃ良くわからないが、どこかをキャストすればいいような気がする。
0088デフォルトの名無しさん
NGNGdouble 入れないと、常に 0 になっちゃう。C の基本だよ。
0089デフォルトの名無しさん
NGNG"pure virtual function called"
と言うエラーが出るのですが原因は何でしょうか?
純粋仮想関数絡みみたいですが対策がわかりません
VC6,SP5適用済みです
0090デフォルトの名無しさん
NGNGどういうことでしゅか?
0091デフォルトの名無しさん
NGNG実装の与えられていない仮想関数が呼び出されたってこと。
purecall でウェブ検索してみるといい。
0092デフォルトの名無しさん
NGNGどんなエラーが出るのか書きなされ。
たぶん、その文を少し修正するだけで C++ でもとおると思われるが。
最初の (void) は不要なんでは?
0093デフォルトの名無しさん
NGNG解決策しってる人 教えてください
0094モモ
NGNGICU って http://oss.software.ibm.com/icu/ これのこと?
開発環境はなに?
009589
NGNGおかげさまで解決できそうです。
回答ありがとうございました
009693
NGNGICUはソレ
http://oss.software.ibm.com/icu/
です。バイナリ版使うとブレークポイントが使えなくなる
ソースからBuildしてデバッグライブラリを明示的にLinkしたけどダメ
STLportとBoost使ってますが ICUのビルドではSTLportでコンパイルできなかったので
ICUのBuildには 標準のSTLを利用しました
009893
NGNGを書くと、プログラム上にブレークポイント置いても
ブレークポイントが無効にされてしまうんです。
0099モモ
NGNG原因がわからなくてすまんけど、
VC6 って、プロジェクトファイル (.dsp) が不適切だと、
デバッグビルドでもブレーク置けないことがあるよ。
そういうときは、プロジェクトを作り直すと直ることがある。
010093
NGNG原因は結局よくわかりませんでしたが
Includeの順番を入れ替えたりしているうちに直ったのですが
その後再現性が全くないのです・・・
単に運が悪かったのかもしれません お付き合いありがとうございました
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNGだいたい知ったのですがこの先APIをすっとばしてMFCから学び始めるってのはアリなんでしょうか?
0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNG0107デフォルトの名無しさん
NGNGWindowsは使わない。
0108デフォルトの名無しさん
NGNGう〜ん、生Win32APIかな。
0109デフォルトの名無しさん
NGNGWin32系は全部将来消えることが確定してるから(MFCのようにやたら無意味に)苦労して覚える必要は無いと思う。
0113デフォルトの名無しさん
NGNGMFCで作っているアプリケーションは手抜き
0114デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1097524712/
これ使え
0115デフォルトの名無しさん
NGNG>Win32系は全部将来消えることが確定してるから
(゚Д゚)ハァ?
0116デフォルトの名無しさん
NGNGIME制御の方法がよくわかりません。
サンプルも見つからないし;
詳しい方教えてください
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG今のcppファイルは10000行近くあります
分割した方がいいかな?
0119デフォルトの名無しさん
NGNGクラス単位で分割。
0120デフォルトの名無しさん
NGNG機能で分けろ。
0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNG>>120
クラスは使ってないので関数単位で分けるんですかね?
関数の数も10個くらいあるので分割すると10ファイルもできちゃいそうなんですが
それでもいいのでしょうか?
0123デフォルトの名無しさん
NGNG分割する必要は無い。
捨てろ。
0124デフォルトの名無しさん
NGNG一関数につき千行以上あります
一つの関数はなるべくコンパクトにまとめたほうがいいんですか?
0125デフォルトの名無しさん
NGNG捨てれませんw
0126デフォルトの名無しさん
NGNG捨てろ。そして書き直せ。
0127デフォルトの名無しさん
NGNG漏れは前者をお薦めする
0128デフォルトの名無しさん
NGNG通りすがりの俺ですら捨てることをお薦めするぜ
0129デフォルトの名無しさん
NGNG理由を教えてください
0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG天然だとしたら10年ぐらい植物人間してたのかね?
0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNGそのソースを渡されたら即効その組織から抜けるが
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNGhttp://www.pro.or.jp/~fuji/mybooks/cdiag/
これも初版は10年以上前だぞ。
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG移動ルーチンです
0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNGまだやり直しはできるだろう。
0142デフォルトの名無しさん
NGNGデータファイルにでも追い出せそうなことをずらずらハードコードしてるとか?
0143デフォルトの名無しさん
NGNG条件2の場合
・
・
・
という風に条件文がおおいので行数が多くなるんです
一行あたりの文字数は少ないですが
0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG関数にすると引数とかプロトタイプ宣言とかしないといけないんであまりやってませんでした
条件別にしたら一関数500行程度に収まりそうです
関数が多いと関数名考えないといけないのでそれもめんどくさいです
英語での銘々は苦手です
0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNGまじっすか?
関数が増えすぎると逆にぶちぶち切れててわかりずらくありませんか?
0150デフォルトの名無しさん
NGNGおまえプログラミングに向いてないわ
プログラミングを捨てる
これが正解だな
0151デフォルトの名無しさん
NGNG透明あぼーん設定してるわけでもないのに
あれ?なんか記憶が飛んでしまってるのかな…
0152デフォルトの名無しさん
NGNG関数が全部自分の頭に入る程度でなくてどうやってメンテナンスするんだ?
よっぽど優秀なエディタを使っているかよっぽど非効率なことやってるかどっちかだとは思うが。
0153デフォルトの名無しさん
NGNGとりあえず>>135を全部読むまでもう書き込みするな。
ってか、まともに勉強してたら「関数は一目で把握できる長さ」って
常識なのだが。
いったいどういう勉強してきたのかね。
0154デフォルトの名無しさん
NGNG一瞬だけな
0155デフォルトの名無しさん
NGNGできるだけ関数化してサイズを小さくしてみます
ソース分割する際に分割したソースファイルをフォルダに分けて管理したいんですが
勝手にフォルダにファイル入れてもコンパイルしてくれるんですか?
ファイルのパスとかも指定しないといけないんですかね?
0156デフォルトの名無しさん
NGNG早速読んできます
0157デフォルトの名無しさん
NGNGしないといけないです。
0158デフォルトの名無しさん
NGNGもしそうなら、もうじき社会へ旅立つのか…ガクブル
0159デフォルトの名無しさん
NGNG研究室なら周りから教えてもらえるからここまで酷くはならないだろう。
>>155
使ってる開発環境なりコンパイラなりのヘルプ嫁。
その前にまともな入門書をきちんと読め。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG本気でこれ以上プログラム書くのはやめて勉強しなおした方が良いと思う
あとmakefileの存在忘れないであげて
0163デフォルトの名無しさん
NGNG未来への投資だと思えば安い安い
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNGサンプルある場所でもいいから。
MSDNみたけど、サンプルがないんですよ
>>116
0170デフォルトの名無しさん
NGNGサクラエディタのソースでも参考にしたら?
0171デフォルトの名無しさん
NGNGimm32.dll
ImmGetContext
ImmSetOptionStatus
ImmReleaseContext
0172デフォルトの名無しさん
NGNG検索して調べてみます
0173デフォルトの名無しさん
NGNGそうか。
ということは、参照渡しで参照メンバを初期化する場合は、
暗黙の型変換が起こらないように気をつけるか、それを監視する
コードが必要なわけですね。
どうやって監視すれば良いのか、ちと考えてみます。
細部にまでわたるご指摘、ありがとうございました。
# とりあえず explicit 宣言周りから調べてみます。
# コンストラクタで size 関数を呼び出して、STL コンテナに
# 型を制限するのは簡単なのですが、静的配列にも使えるように
# するのが一応のゴールなのです。配列型を struct でラップする
# しかないのかなあ。
0174デフォルトの名無しさん
NGNGファイル出力形式はS-JISでもUNICODEでもいいのですが
変数がUNICODEなのでその方が楽だと思ってUNICODEで出力しています
wchar_twszTest[1000];
FILE *fp = _wfopen( L"c:\\temp\\aa.txt", L"w" );
fputws( L"AAAあいうえおBBB", fp );
fclose( fp );
と実行するとファイルには "AAA" しか出力されず、全角文字以降が無視されています
何を間違えているのかわからないのです。誰か教えて下さい
0175デフォルトの名無しさん
NGNGsetlocale( LC_ALL, "Japanese" );
0176174
NGNGありが�d
即解決しますた
0177デフォルトの名無しさん
NGNG最初から使わないことが分かっている関数をビルド時に
無視することは可能でしょうか?
(したい処理によって#defineで定義した値Tを変えてビルドして
いますが、処理によっては使わない関数もコンパイルするのは時間が
(10秒もしないですが)掛かるような気がして…。)
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGコンボボックスにある状態で、右の矢印を押すと今は
一つしか表示されません。それを、ずらぁーっと下に表示
させることは可能でしょうか?教えてください。
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNGよくあるiniファイルを扱うソリューションは用意されているんでしょうか?
もしなければどう扱うの一般的ですか?
0182デフォルトの名無しさん
NGNGGetProFile系のAPIでやっとれ
0183177
NGNGソースコードは分けています。
そーすか(ベタで済みません^^;)、変更はされないのですかね。
でも、ヘッダーファイルで#defineした部分は全てのファイルで
書き換えられているのかなぁという気がします。
0184デフォルトの名無しさん
NGNGソースファイルを変更した場合、そのファイルのみ再コンパイルされる。
インクルードファイルを変更した場合、そのファイルをインクルードしているソースファイルが再コンパイルされる。
>>179
ダイアログエディタで▼をクリックしてから枠をドラッグしてサイズ調整。
0185デフォルトの名無しさん
NGNGおお、こんなんがあるんですね。ありがとう。
0186181
NGNGCWinApp::GetProfileXXXというのがあるようですが、NT系だと
レジストリを使うようです。
0187デフォルトの名無しさん
NGNGGetPrivateProfile〜
0188デフォルトの名無しさん
NGNGAPIの方はNT系でもiniファイルになる。
http://asia.microsoft.com/japan/developer/library/jpwinpf/_win32_getprivateprofilestring.htm
0189デフォルトの名無しさん
NGNGMFCでもレジストリ使わないでiniにできるよ。
CWinApp::SetRegistryKey を呼はないようにする。
0190181
NGNGAPIとかMFCとか使ったことないのでそれから勉強してます。
ヘルプ見ても何がなにやら・・・。
0191デフォルトの名無しさん
NGNG>配列型を struct でラップするしかないのかなあ。
boost::array
0192デフォルトの名無しさん
NGNG1.
a void func( int a ); b void func(int a);
2.
a int GetNumber(); b bool GetNumber(int *n);
どれが一番主流なんだろう。
0193デフォルトの名無しさん
NGNG何を対比させてるんだ。
0194デフォルトの名無しさん
NGNG1,a
2,a
1は正直どうでもいいが、
2の問いが意味不明だな。例外失敗する可能性あるなら例外飛ばせばいいんでね?
てかポインタじゃなくて参照に汁。
0195デフォルトの名無しさん
NGNGさらに質問
あとできれば、回答者のプログラミングレベル教えてください。( 自己分析で )
3. (空白関係なし)
a. POINT GetNum(); b. bool GetNum(int *x, int *y);
4 戻り値がbool の関数と intなどの値を返す関数 を混同して自作する
( int などのとき、あらかじめエラー値をきめておく。正常値はプログラムで使われる )
a しない b する
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG0198ジゴロウ
NGNG質問です。
�@BCB5で、WindowsXPのビジュアルスタイルにする方法はありますか?
�Aあれば、どうすればできますか?
以上のこと教えてください。お願いします。
0200デフォルトの名無しさん
NGNG3 bool GetNum(POINT& rpt);
4 bに近い。boolとvoidとの混同になる。
0201ジゴロウ
NGNG早速ありがとうございます。
関係ないところばかり探していました。
0202デフォルトの名無しさん
NGNGThanks !
>>194の人とは違う人っぽい。。。 どっちがいいんだろう。
0203デフォルトの名無しさん
NGNG漏れのような超初心者が来るようなところじゃ無かったよorz
別スレ探してきまつ。(´・ω・`)
0204デフォルトの名無しさん
NGNG歓迎するよ〜
いらっしゃい〜
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNGネタにしか思えんし、答える気も失せる
そもそも質問の意図も意味も伝わっとらんしな
0207デフォルトの名無しさん
NGNG会社にはいって、個性あるプログラムだねぇといわれたくないもので。
0208デフォルトの名無しさん
NGNG正直見づらい上にバラバラに聞いてるからなぁ‥‥
せめて↓な感じで書けばまだ見やすいんだが‥‥
3. (空白関係なし)
a:. POINT GetNum();
b: bool GetNum(int *x, int *y);
0209デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1068752664/l50
C/C++ Coding Style Thread
http://pc5.2ch.net/test/read.cgi/tech/1096687703/l50
C++相談室 part37
http://pc5.2ch.net/test/read.cgi/tech/1098543578/l50
この辺ならそういう話題を結構取り扱っている
けど、コーディングの規則は会社や仕事依頼元に左右され
必ずしも画一的ではない
と、今まで↑のスレ読んできた限りでは、学生風情の漏れはそう判断した
0210デフォルトの名無しさん
NGNGおお さんきゅ〜〜〜
こんなすれがったのかーーー
まじありがとーー
0211デフォルトの名無しさん
NGNGおまえさん、会社に入る=就職するつもりならコーディング規約より先に
まともなコミュニケーション能力をつける必要があるぞ。
0212209
NGNGオンラインゲームかチャットかの雰囲気そのままここに持ってきた感じだよな
0213デフォルトの名無しさん
NGNGあんたは、なにいまさらいってるんだよ
ここはオンラインゲームかチャットよりもひどい板だろ
0214デフォルトの名無しさん
NGNGopen("mona/giko", O_RDONLY);
がなぜか 0 を返す・・・。
他とナニが違うから、よりによって 0 を返すのか見当も付かない・・・。
open(2) 関数@Vine Linux and Cygwin でつ。
0215デフォルトの名無しさん
NGNGオープンハンドル使い切ってたりしない?
0216214
NGNGエラーなら open() は -1 を返すはずなんですよねえ。
0 という値自体は有効なものなんだが、それは本来は標準入力を表すファイル記述子のはず・・・。
いったいどんな状況に open() がこんな値(0)を返すのか、man とか見ても
さっぱり分からない。
0217デフォルトの名無しさん
NGNGFor next文の実行中で
何かのキーが押された時に、
実行を中止するにはbreak以外の方法はありますか?
breakってあまり使いたくないので…。
よろしくお願いします。
0218デフォルトの名無しさん
NGNGそれはともかく、好き嫌いは知らないがほかの方法(gotoなど)を
使われても周りは読みにくくて迷惑するんじゃないのか?
0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNGこいつVBの質問を誤爆してると思う。
breakってbreakキーのことじゃないのか?
0224デフォルトの名無しさん
NGNG{
while(条件式)
{
if(条件式)
{
//正常処理
goto END;
}
}
//異常処理
return;
}
//正常処理
END:
//必要な後始末
上記の様な感じでgoto文使うのは一般的に問題があるようなgotoの使い方でしょうか?
ちなみに2箇所の正常処理部分は一部処理内容が異なります。
0225デフォルトの名無しさん
NGNG{
//正常処理
}
else
{
while(条件式)
{
if(条件式)
{
//正常処理
break;
}
}
//異常処理
return;
}
//必要な後始末
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG宗教問題起こしたいんじゃなければ、好きにしろとしか
0228デフォルトの名無しさん
NGNG正常処理(1)、正常処理(2)、異常処理、後始末をそれぞれ関数にしちゃえばすっきりするだろうし。
0229コピペ推奨
NGNG○2チャン運営は創価と統一が乗っ取った!....朝鮮宗教派遣の2チャン運営が削除
http://ex5.2ch.net/test/read.cgi/accuse/1096781624/l50
○2チャン運営は、創価と統一の朝鮮人脈に乗っ取られた!....宗教鮮人がスレスト
http://qb5.2ch.net/test/read.cgi/operate/1096699253/l50
0230デフォルトの名無しさん
NGNG{
while(条件式)
{
if(!条件式)
{
//異常処理
return;
}
}
}
//正常処理
0231デフォルトの名無しさん
NGNG今後もお世話になる確率が非常に高いので宜しくお願いします。
クラスAを用意し、メンバー関数(a,b,c)を3つほど作りました。
派生クラスはありません。
そのメンバ関数aの中で、動的変数を配列で定義したのですが、
b,cで認識してくれません。
これは常識なのでしょうか。
つまらない質問だろうとは思いますが、返答をもらえれば幸いです。
追加で、クラス内で動的変数を定義する為にはどうしたらいいかも教えていただければ幸いです。
0232デフォルトの名無しさん
NGNGソースを手短に書き込んでくれ
0233デフォルトの名無しさん
NGNG動的変数ってなんじゃワリャー
0234デフォルトの名無しさん
NGNGメンバ関数b、メンバ関数cで見えないなんて事を言ってるわけじゃないよな?
0235231
NGNGあぁ・・・まさにその通りでした。
言われて気づきました。
申し訳ないです。クラス以前の問題でしたね。ありがとうございました。
>>232さん、お騒がせしました。
そしてもう一つ問題が出てしまいました。
class A の private の中で、変数を定義し、同時に数値を代入すると
class A{
private:
int aaa=0;
関数でない識別子が純粋関数であると指定されています。とコンパイルエラーになってしまいます。
使い方がおかしいのでしょうか。
0236デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG落ち着け。
ここは初心者歓迎なスレだ。
0240デフォルトの名無しさん
NGNG1スレ読んだ後、質問側に回ることにしたけど。
0241デフォルトの名無しさん
NGNGint main()
{
int a,b,c;
a=b=0;
c=a+b;
a=b=1;
printf("%d\n" , c);
}
とすると0が表示されます
aとbに1を代入してるから
cは2になるはずなのになんでですか?
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNGお前の考えだと、a=b=0; とa=b=1; が
矛盾してるというか相反すると思いませんかー
0244デフォルトの名無しさん
NGNG>>243
レスありがとうございました
なぜかふと、疑問に思ってしまいました
時々、基本中の基本をど忘れすることがありまして
アルツハイマーぎみですw
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGint aaa=0;
これは代入でなくて初期化。
そしてクラス定義内で初期化できるのはstaticな整数のみ。
0247デフォルトの名無しさん
NGNG×staticな整数
○staticなconst整数
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG『プログラミング言語C++第3版』 10.4.6.2
「静的な整数の定数メンバは、メンバ宣言に constant-expression 初期設定子を
追加することによって初期設定することもできる。」
0250デフォルトの名無しさん
NGNGどうしてfloatやdoubleはだめなのですか?
実践MySQL4 に書いてある Cクライアントのサンプルコードを入力してコンパイルしてみると
/usr/include/mysql.h:59:21: typelib.h: そのようなファイルやディレクトリはありません
typelib.hというインクルードファイルはどこで提供されているのでしょうか?
mysqlの方にはついてなかったと思うのですが、
一応ディスク内は検索してみましたがありませんでした。
gccの方で標準的に提供しているでしょうか?
0252デフォルトの名無しさん
NGNGauto_ptr<int> p1(new int), p2;
p1.release();
や
p2 = p1;
とするとVC6付属のSTLでは所有権のみの移動なのですが
STLPortでは所有権だけでなくp1が保持するポインタもヌルになります。
規格が新しくなってこうなったのだと思いますが
どういう意図でポインタもヌルになるようになったのでしょうか?
0253デフォルトの名無しさん
NGNGttp://bugs.mysql.com/bug.php?id=4168
ここによると最新版では修正されているらしい。(これはWin版の記事だけど)
0254217
NGNG元々VBを使っているので間違えてしまいましたが、
意図を汲んでくださってありがとうございます。
感謝します。
C言語を勉強した中で、
breakやgotoは使ってはいけないような気になっていたのですが
色々なソースを見ているとgotoよりもbreakで抜けてしまったほうが
わかりやすいみたいですね。
longjmpも面白そうですが、初心者なのでbreakを使ってみようと思います。
どうもありがとうございました!!
また何かわからなくなったら教えてくださいー
(ゲームに挑戦中ですw)
0255デフォルトの名無しさん
NGNGmain
{
int b[10];
hoge(b);
}
void hoge(int a[])
{
a[1]=1;
}
だと配列b[1]が1に書き換えられてしまうのですが
配列bが関数hoge内で書き換えられないようにhogeに配列bを渡すにはどうすればいいのでしょうか?
0256訂正します
NGNGmain
{
int b[10];
hoge(b);
}
void hoge(int a[])
{
a[1]=1;
}
だと配列b[1]が1に書き換えられてしまうのですが
配列bが関数hoge内で書き換えられないようにhogeに配列bを渡すにはどうすればいいのでしょうか?
0257デフォルトの名無しさん
NGNGvoid hoge(const int a[])
0258デフォルトの名無しさん
NGNG別の場所で配列bの内容を書き換えたいのでそれはちょっと・・・
for (i=0; i<10; i++)
{
b[i] = a[i];
}
hoge内で上のようにコピーするしかないのでしょうか?
変数を関数に渡した時は元の変数が勝手に書き換えられることがなかったのでちょっと不思議です
0259デフォルトの名無しさん
NGNGC++ならvectorとかのコンテナを使えば可能
0260デフォルトの名無しさん
NGNGvectorは難しそうなんで>>258の方法で地道にコピーしてみます
0261デフォルトの名無しさん
NGNGあんまり難しくもないんだけどね
参考までにあなたのやりたいことはこんな風に書ける(それ以外もちょっと修正したけど)
#include <vector>
using namespace std;
void hoge(vector <int> a);
int main ()
{
vector <int> b (10);
hoge(b);
return 0;
}
void hoge(vector <int> a)
{
a[1]=1;
}
0262デフォルトの名無しさん
NGNG俺もせっかく書いたので・・・
#include <vector> // ← STLのvectorを使うため
void hoge(std::vector<int> a);
int main()
{
std::vector<int> b(10); // ←要素数10の配列だと思ってもらっていい
hoge(b);
}
void hoge(std::vector<int> a) // ←ここの配列aは配列bのコピー
{
a[1]=1; // ← コピーなので配列aの中身を書き換えても配列bの中身は書き換わらない
}
書き換えたい場合は参照渡しにすればOK
0263デフォルトの名無しさん
NGNG>>262
ご説明ありがとうございます
早速試してみます
0264デフォルトの名無しさん
NGNG--- aaa.hpp ---
struct AAA
{
static const int table_aaa[];
void a( )
{
//ここでtable_aaa[]にアクセス
}
};
--- aaa.cpp ---
const int AAA::table_aaa[]=
{
//色々
};
--- main.cpp ---
int main( )
{
AAA aaa;
aaa.a( ); // ※
}
※の部分に関してですが、
MinGWでは、AAA のstaticメンバ(table_aaa[])に対しての
undefined reference が発生しますが、
VCToolkit2003では、通ります。
どちらが正しいのでしょうか?
0265264
NGNG申し訳ありませんでした。
0266デフォルトの名無しさん
NGNG>変数を関数に渡した時は元の変数が勝手に書き換えられることがなかったのでちょっと不思議です
>vectorは難しそうなんで>>258の方法で地道にコピーしてみます
こんなこと言ってる奴に教えても無駄だと思われ
0267デフォルトの名無しさん
NGNGhoge.exeの0x00401009でハンドルされていない例外が発生しました
0xc0000005:場所0x00030bcに書き込み中にアクセス違反が発生しました
と言うエラーが出ました
分割するのに必要なとこだけしか変更してないのになんででしょうか?
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNGワトソン博士のログファイルなんかから
場所と原因を特定してみるのも面白いぞ。
練習だと思ってやってみ。
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNGは同じファイル内だけで有効なのか・・・
ファイルごとにオンオフすんのめんどくさいな
0274デフォルトの名無しさん
NGNGIDEのプロジェクト設定なりmakeいじるなりすれば全ファイルのコンパイル時にマクロ定義できる。
0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNGMakefileならターゲットごとに設定するのが基本。
0277デフォルトの名無しさん
NGNGとりあえず自分で関数を作ってみようと下記のようにしたのですが
どうやったらこのエラーを修正できるでしょうか。。
[リンカ エラー] 外部シンボル 'TForm1::message()' が未解決(C:\BUILDER\PRACTICE\1106\UNIT1.OBJ が参照)
ソースは下記のようにしました。
ヘッダふぁいる。
class TForm1 : public TForm
{
__published:// IDE 管理のコンポーネント
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
private:// ユーザー宣言
public:// ユーザー宣言
__fastcall TForm1(TComponent* Owner);
void message();
};
cppふぁいる。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
message();
}
void message()
{
ShowMessage("通ったよ");
}
0278デフォルトの名無しさん
NGNG→void TForm1::message()
0279デフォルトの名無しさん
NGNGclass TForm1 : public TForm
{
__published:// IDE 管理のコンポーネント
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
private:// ユーザー宣言
public:// ユーザー宣言
__fastcall TForm1(TComponent* Owner);
};
void message();
0280276
NGNG(・∀・)ありがとーございます。
クラスの中に入っているときには「クラス名::関数名」ってやればいいんですね。
逆に言うとTFormのクラスの外に関数のプロトタイプ宣言を出してやれば。
関数の名前にTForm::ってつけなくてもいいみたいですね。。
(・∀・)一つ進化した気がする。
0281デフォルトの名無しさん
NGNGとりあえずC++の入門書読みなさい。
0282277
NGNG>>279さん
(・∀・)ありがとーございます。
後なんとなく、クラスにおけるpublicとかprivateとかイメージがつかめてきた気が。。
↑
今まで無茶苦茶曖昧だった。。
0283デフォルトの名無しさん
NGNGとりあえず猫でも分かるシリーズ3冊読みました。
そろそろC++やりたいんですけど、いい入門書あれば教えてください。
0284デフォルトの名無しさん
NGNGttp://www.amazon.co.jp/exec/obidos/ASIN/475611895X/
0285デフォルトの名無しさん
NGNG似たような質問ばかり見るんだけど、ちゃんと適当なスレを探している?
さんざん既出で、もうその質問にはうんざりなんだけど。
0286デフォルトの名無しさん
NGNGWindows XP や Windows 2003 Server の環境下で実行することはできますか?
簡単なテキストファイルを編集したり、ファイルを検索したりコピーしたりする
アプリケーションを作ろうと考えています。
0287デフォルトの名無しさん
NGNG普通はOK
0288デフォルトの名無しさん
NGNGサンキューです。
Cの経験はほとんどないですが、勉強がてら作ってみようと思います。
0289デフォルトの名無しさん
NGNG本を何冊も読むより、自分でコードを書いた経験がはるかに大事だよ。
猫3冊読んだだけじゃ、経験値は0みたいなものだな。
↓C++の定番入門書。
http://www.amazon.co.jp/exec/obidos/ASIN/489471115X/
http://www.amazon.co.jp/exec/obidos/ASIN/4756140068/
ダイテル本は全3冊
どちらかを勉強したら、自分でコードをガシガシ書いて経験値を上げた後>>284を。
0290デフォルトの名無しさん
NGNG誰かエロイ人
0291デフォルトの名無しさん
NGNG0292Rubykitch
NGNGsf.net
0293デフォルトの名無しさん
NGNGPGM作る関数。
前に宿題スレ作った分の残りもの。
void save_pgm( char* filename, unsigned char** image, int xsize, int ysize ) {
FILE* fp;
int x, y;
fp = fopen( filename, "wb" );
fprintf( fp, "P5\n" );
fprintf( fp, "%d %d\n", xsize, ysize );
fprintf( fp, "%d\n", 255 );
for ( y = 0; y < ysize; y++ ){
for ( x = 0; x < xsize; x++ ){
fputc( image[y][x], fp );
}
}
fclose(fp);
}
0294デフォルトの名無しさん
NGNGそこ誤訳があるところ。
禿の文意はおそらく(かなりの意訳)
「クラス宣言内でシンボル定数が必要なら列挙を使うようにしろ。
そうすれば変数や浮動少数点数をクラス宣言内で初期化しようとする
ミスは防げる。」
0295デフォルトの名無しさん
NGNG2xyとか
0296デフォルトの名無しさん
NGNG// こういうこと?
double func2xy(double x, double y) {return 2 * x * y;}
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG結局整数しばりは禿様がなんらかの思想の元きめたことなのですかね
特に深い理由はないのかな。どうもです。
0299295
NGNG0300デフォルトの名無しさん
NGNGまず普通の2*3^4とかを入力して、結果を表示するプログラムを作ってみれば良いのでは?
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG意思伝達の初心者だと (このスレを利用するのは) 難しい
0303デフォルトの名無しさん
NGNGバイナリエディタとかで開くと、使ったコンパイラの情報が入ってますよね?
それをなくしたいんですけど、どうやったら良いですか?
0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNGハンドアセンブルすればいいよ
0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG空白か何かで埋める。
0309デフォルトの名無しさん
NGNGどんな情報が入ってるの?
シリアルナンバー、使用者の名前、とかの情報も入ってるの?
0310デフォルトの名無しさん
NGNG適当にバイナリエディタで見てみたら?
そんなたいしたこと書いて無いよ
0311デフォルトの名無しさん
NGNG式のパースをしたいならパーサを書け。lex、yaccなどについて調べよ。
0312デフォルトの名無しさん
NGNGgcc -S hoge.c
で出てきたアセンブリ言語のソースで気になるところをチェックして
アセンブラにかければよろし。
0313デフォルトの名無しさん
NGNGCなんだから、ハンドコンパイルって言おうよ。
0314デフォルトの名無しさん
NGNGライブラリの中とかに情報が入ってたりするよ。
0315デフォルトの名無しさん
NGNGCtrl+F5の実行だと必ず再現するバグって何が原因か心当たりないでしょうか。
いずれもDebugモードです。
「Debugモードでは出ないで、Releaseモードでは出るエラー」だと
初期化のし忘れなどが多いですが、F5とCtrl+F5で挙動が違うのは初めてで、お手上げです。
0316デフォルトの名無しさん
NGNGまずその「バグ」の内容を書こうとは思わんのか?
0317デフォルトの名無しさん
NGNGそれがこみ入ってまして、バッファがおかしいのか、
描画ライブラリの振る舞いなのか、フラグのつけ忘れか、初期化周りか…。
なので有名な「Releaseビルド時にのみ出るバグ」、みたいな常套チェック項目が
無いかなとお尋ねした次第。まぁ幾らぐぐっても無いみたいなので、総ざらいしてきます。
0318デフォルトの名無しさん
NGNG初期カレントディレクトリが違ったような気がした。
0319デフォルトの名無しさん
NGNGDebugモードは余分にメモリを確保する。
バッファ辺り調べてみるといいかも。
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNGF5なら設定でコマンドラインの指定ができる。そこは大丈夫?
0322デフォルトの名無しさん
NGNG皆さんレスありがとうございます
まだ取れてないのですが、その線で洗い直してみます。
なにせデバッガで追えないので、手がかりは本当に助かります
0323デフォルトの名無しさん
NGNGこれはどういう文なんでしょうか?
?なんていう命令は見たことないのでこの文の意味を教えてください
0324デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?hl=ja&q=%E4%B8%89%E9%A0%85%E6%BC%94%E7%AE%97%E5%AD%90&lr=lang_ja
0325デフォルトの名無しさん
NGNGそれは三項演算子というもので、もしそれがコンパイルできるとするなら、
if (g_diMouseState.rgbButton[0] & 0x80) {
MState.lButton = ture;
} else {
MState.lButton = false;
}
と等価。
が、普通は?の後ろに式なんか書かない(書けない?)し、下の書き方の方が普通。
MState.lButton = (g_diMouseState.rgbButton[0] & 0x80) != 0;
0327デフォルトの名無しさん
NGNGいや、そこは式だよ。
0328デフォルトの名無しさん
NGNG式じゃないよ
0329デフォルトの名無しさん
NGNGエクスプレッションだよ
0330328
NGNG0331デフォルトの名無しさん
NGNGエクスプレッションって式だよ。
0332デフォルトの名無しさん
NGNGしってるよ
>>330
なにもかもまちがっている
0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNGhttp://www-ccs.ucsd.edu/c/express.html
0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNGなにが省略だ。プッ
left value?プッ
0338デフォルトの名無しさん
NGNG0339328
NGNGいろいろ調べてみるよ。
0340デフォルトの名無しさん
NGNGカッコで囲めるものは全部文法上の「式」である
ってことでいいかい?
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG_tcscat( strNewText, TEXT("U ") );
これの条件式の意味を教えてください
&が2個続いてるのしか見たことないので…
0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNG0346345
NGNG0347デフォルトの名無しさん
NGNG環境は? 環境によってかなり異なるので明記されたし。
0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG早速しらべてみます
ありがとうございました
0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNG構造体変数を宣言するときにstructを付ける必要がなくなる。
0353デフォルトの名無しさん
NGNGなるほど、解決しました
ご返答ありがとうございました
0354デフォルトの名無しさん
NGNGtypedefの構造体なんて物はない。
構造体にtypedefで型名をつけることはできるが。
即ち、次はいずれも有効。
/* 無名の構造体 */
struct {
int foo;
double bar;
} st;
/* タグ名つき構造体 */
struct foo {
int foo;
double bar;
};
struct foo st;
/* 無名の構造体に型名を宣言 */
typedef struct {
int foo;
double bar;
} st_t;
st_t st;
>352は必ずしも正解ではないので注意。
0355デフォルトの名無しさん
NGNGC++ では付けても付けなくても違いは無い。
0356デフォルトの名無しさん
NGNGC99でも付けなくていいんじゃなかったっけ?
うろおぼえなので違うかもしんないけど
0357デフォルトの名無しさん
NGNGa=0;
a=0;
a=0;
a=0;
としてもエラーが出ます
aの座標を初期設定する方法を教えてください
0358Ruby!!!!!!
NGNG0359デフォルトの名無しさん
NGNGa.left=0;
a.top=0;
a.right=0;
a.bottom=0;
でした訂正します
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNGconst RECT a = {left, top, right, bottom};となる。constと指定して
いる以上は初期化以降変更できないことは分かっているんだろうな。
0362デフォルトの名無しさん
NGNGダメのようだ。
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNGconst RECT *a={0, 0, 0, 0};
これでも
error C2078: 初期化子の数が多すぎます。
と言われます
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNGそれではポインタに対して配列の初期化子で初期化しようと
しているのだから、文句を言われて当然だ。君はポインタに
ついて理解がない。勉強し直しなさい。
もしWindows APIにRECTへのポインタを渡したいという意図で
あるならば、const RECT a = {0, 0, 0, 0};の形式で初期化した後
&aを渡しなさい。とエスパーっぽく語ってみる。
0367デフォルトの名無しさん
NGNGCONST RECT *lpRect // 画面の座標
);
この関数に渡すための
CONST RECT *lpRect // 画面の座標
を設定したいのです
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNGできました
ありがとうございました
0370366
NGNG渡す側はconst指定しなくていいじゃん
0371デフォルトの名無しさん
NGNG挫折していった奴を何人も知ってる。
>>369もその一人になるだろう・・・
0372デフォルトの名無しさん
NGNGClipCursor(&rc);
あるいは
RECT rc;
rc.left = 1;
rc.top = 2;
rc.right = 3;
rc.bottom = 4;
ClipCursor(&rc);
BOOL ClipCursor(CONST RECT *lpRect);
この場合のCONSTは関数内で変数の中身を書き換えないことを意味するのでrcにconstはなくても良い
0373デフォルトの名無しさん
NGNG>>372
ご教授有り難うございました
とても参考になります
>>371
そうならないようにがんばりたいと思います
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNGそうならないためにも基礎を飛ばさずC言語からきちんと勉強しろ
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNGもうそうなってんだよ
0381デフォルトの名無しさん
NGNG朝田さんが来てる
0382デフォルトの名無しさん
NGNG{
int p : 10;
};
この「: 10」ってのはなんですか?
0383デフォルトの名無しさん
NGNGビットフィールド
pに10ビット割り当てられる。
0384デフォルトの名無しさん
NGNGarrayがメンバ変数の場合でも、上記の様な
要素数を省略した配列を初期化をする方法はあるのでしょうか
0385デフォルトの名無しさん
NGNGどうもありがとう御座います
0386デフォルトの名無しさん
NGNGarrayがstaticメンバ変数なら可能だけど
0387デフォルトの名無しさん
NGNGありがとうございます。やはり静的じゃないと駄目ですか。
大人しく別に用意してmemcpyでも使っておきます。
0388デフォルトの名無しさん
NGNG君にとってconstructは何?
0389デフォルトの名無しさん
NGNGchar *cpy[258];
char buff[256];//社員データ読み込みバッファ用
int =i;
i=0;
while(fgets(buff,sizeof(buff),fp)!=NULL)
{
cpy_buff[i]=strtok(buff,",");
strcpy(cpy[i], cpy_buff[i]);
i++;
}
カンマ区切りのデータを一行読み込み
最初のカンマで区切りまでの文字列を
配列に代入したいと思うのですが
上記ソースで行うと
コンパイルは通るのですが
以下の文字列のコピーでエラーとなります。
strcpy(cpy[i], cpy_buff[i]);
回避方法あります?
0390デフォルトの名無しさん
NGNGcpy[i]はちゃんとメモリ確保してある?
それから、strtok()が返すのは常にbuffの中だからcpy_buffに格納する意味がないよ。
文字列処理とポインタについて、勉強しなおすことをお勧めしておく。
0391デフォルトの名無しさん
NGNGcpyの中身はどこへ行った?
strcpyは謎アドレスには書けないと仰られております。
0392デフォルトの名無しさん
NGNG#include <windows.h>// WindowsAPIを使用可能にする
#include <windowsx.h>
struct c
{
int b;
}a,*d;
void e(struct d f);
int main()
{
struct c g[10];
g[1].b=0;
e(&g[1]);
printf("%d\n" ,g[1].b );
}
void e (struct d f)
{
f->b=777;
}
だと
error C2027: 認識できない型 'd' が使われています。
error C2227: '->b' : 左側がクラス、構造体、共用体へのポインタではありません。
error C2664: 'e' : 1 番目の引数を 'c *__w64 ' から 'd' に変換できません。
というエラーが出てきます
どうしたらいいのでしょうか
ポインターを勉強中なのでお手柔らかにお願いします
0393デフォルトの名無しさん
NGNG0394デフォルトの名無しさん
NGNG単純なtypo
0395デフォルトの名無しさん
NGNGdは型名じゃない。aも。ポインタの問題じゃない。
0396デフォルトの名無しさん
NGNG#include <windows.h>// WindowsAPIを使用可能にする
#include <windowsx.h>
typedef struct c
{
int b;
}a,*d;
void e(d f);
int main()
{
struct c g[10];
g[1].b=0;
e(&g[1]);
printf("%d\n" ,g[1].b );
}
void e (d f)
{
f->b=777;
}
これだとちゃんとできるんですが>>392からtypedef取ってstructを付け足したらエラーが出たので
不思議に思ってます
0397デフォルトの名無しさん
NGNGtypedef struct c {} a, *d;
は、struct cをa という型に、struct c * をdという型に定義している。
struct c {} a, *d;
では、struct c と言う型のaと、struct c *と言う型のdを定義しているだけだ。
0398デフォルトの名無しさん
NGNGなるほど!!
目から鱗が落ちました
これですっきり解決しました
ありがとうございました
0399デフォルトの名無しさん
NGNGttp://sourceforge.net/projects/dev-cpp/
0400デフォルトの名無しさん
NGNG現在の状態からswitch使って呼ぶ関数を決めるのではなくて
状態の変化があった時にその変数に関数ポインタを代入しておいて
それを呼ぶ形にしたいと思ったのですが
代入している所で
void (_cdecl クラス名::*)から(void) void (_cdecl *)(void)に変換することは〜
と言われてコンパイルが通りません
(呼び出し規約というのは調べたらすぐ出てきたので_cdeclにしました)
クラスのメンバ関数はポインタで扱えないんでしょうか?
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNGdouble x = 3.14; x>>3; と記述したところ
エラー c41.c 15: doubleの不正な使用(関数main) というエラーが出ました
シフト演算子は浮動小数には使用できないのですか?
0403デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG何をやりたいのかわからない。
0406デフォルトの名無しさん
NGNG「関数ポインタ用の変数」の型をメンバ関数へのポインタにするべし。
そのエラーメッセージから察するに、現状はメンバではない関数へのポインタになってる。
構文キモイから覚悟して。
0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNG単にswitchの代わりに使うのではあまり意味がなさそうですし、あとは引数として使うくらいしか知らないのですが
有効な使い方を教えていただけないでしょうか>
0410デフォルトの名無しさん
NGNGその class の member function を登録したいとき
call back function としてメンバ関数ポインタを使う
0411デフォルトの名無しさん
NGNGC++で仮想関数を使いたい場面をCでがんばって実装するのに使う。
0412デフォルトの名無しさん
NGNGと
struct s
{
int x;
int y;
}a;
は何が異なるんでしょうか?
0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNGPOINTは定義しないでも使えるんですけど
なんでですか?
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNGタスクシステム使うとき
0417デフォルトの名無しさん
NGNGつぎからつぎへと細かいバグが出てくる
同じような操作の繰り返しでつかれました
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG2,f打御,kもf,qjf朝
:
のように、半角全角が混じった適当なCSVファイルがあります。
それをfgetsで一行ずつ文字列配列に入れているつもりなのですが、
適当な行を取り出して中身をのぞいてみると「1,御kjの,女fだ,jk所・」
のように行末に余計な文字が出て来る場合があります。
どこがおかしいか教えてください。よろしくお願いします。
/////
char list[128][128];
int i;
for (i=0;i>128;i++)list[i][0]='\0';//初期化のつもり。正しい?
fp = fopen("test.csv","r");
i=0;
while (fgets(list[i],256,fp) != NULL){
printf("%s",list[i]);
i++;
}
fclose(fp);
0420デフォルトの名無しさん
NGNG○ i<128
0421デフォルトの名無しさん
NGNGすいません、それはここにUPするため体裁を整えた際のミスです。
ソースではi<128となっております。
0422デフォルトの名無しさん
NGNG改行コードじゃ?
0423デフォルトの名無しさん
NGNGありがとうございます。試してみたんですが、
そうかもしれません。
CSVを一行だけのファイルにして改行のない状態にしたら消えました。
そうだとしたら、本番で使うファイルは複数行あるものなので、
その改行コードというのを取り除きたいのですが
どうやって取り除けばよいのでしょうか…
0424デフォルトの名無しさん
NGNGstrlenとかで長さ計って改行コードを\0で上書きするとか?
それはそうと128バイトのバッファに
fgets(list[i],256,fp)
していいの?
0425409
NGNGそれにしても、意外と関数ポインタを使う状況って限られているみたいですね
0426419
NGNGありがとうございます。↓のような物をWhileの中に入れてみました。
ファイルの最後の行とかには改行がないかもしれないので、
改行がある場合のみ置き換えるようにしてみようと思ったのですが
上手く置き換わらず、そのままの状態で出力されます。
度々申し訳ないのですが、何が悪いのでしょうか。。。
if(list[i][strlen(list[i])] == '\r\n'){
list[i][strlen(list[i])-1]='\0';
}
0427デフォルトの名無しさん
NGNGchar * p = strchr(list[i], '\0');
if (p > list[i] && p[-1] == '\n') {
p[-1] = '\0';
}
/* 或いは */
size_t l = strlen(list[i]);
if (l > 0 && list[i][l - 1] == '\n') {
list[i][l - 1] = '\0';
}
/* 或いは */
char * p = strrchr(list[i], '\n');
if (p) {
*p = '\0';
}
いずれにしても、'\r\n'は間違い。
0428419
NGNGいろいろありがとうございます。わざわざすいません。
最後の奴が分かりやすかったので使ってみたら上手くいきました。
ところで
if(list[i][strlen(list[i])] == '\n'){
list[i][strlen(list[i])-1]='\0';
}
としてもダメだったんですが、これがいけない理由が分かりません。
理屈を言葉で理解したいのですが、これはどういったことなのでしょうか。
0429デフォルトの名無しさん
NGNGstrlenって何する関数か調べれば分かるよ
0431デフォルトの名無しさん
NGNG428は無視して
0432431
NGNG○430
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNGWM_LBUTTONUP
WM_MOUSEMOVE
WM_LBUTTONDOWN
上の3個のメッセージ使ってドラッグを表現できないでしょうか?
0435434
NGNG0436デフォルトの名無しさん
NGNG0437419
NGNGVC6++のプロジェクトごと入ってますのでそのままビルドできると思います。
超単純なダイアログベースアプリでの
ファイル読み込み→リストビューに表示、という簡単なテストプログラムです。
実はこういったものを作っていたのですが、もう何がなにやらわけが分からないです。
どなたか助けていただけると助かります、、分からない事はソースにコメントしてあります。。
ttp://gamdev.org/up/img/1835.zip
0438419
NGNGリソースエディタで作ってDialogBoxしてあるだけの超単純なやつです。
ですがなににしろAPIとかの間違いじゃなくて
初歩的なCの問題のような気がします…
0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG行を分解するのに自前でやるからバグに気付かない罠。
sscanf()でばらしてみ。strtok()でもいいけど。
#ヒント:行内最後のセルには','はつかない。
0441デフォルトの名無しさん
NGNGtypedef struct _tagStructB
{
CClassA::enumC en;
} StructB;
class CClassA
{
public:
enum enumC
{
ok,
err
};
StructB m_B;
};
と言う事をしたいのですが、どうしてもうまくいきません。
error C2027: 認識できない型 'CClassA' が使われています。
どうか、お慈悲を…
0442デフォルトの名無しさん
NGNGこれくらいがせいぜいか
struct CClassA_Base
{
enum enumC
{
ok,
err
};
};
struct StructB
{
CClassA_Base::enumC en;
};
class CClassA: public CClassA_Base
{
public:
StructB m_B;
};
0443デフォルトの名無しさん
NGNGあとは
class StructB;
class CClassA
{
public:
enum enumC
{
ok,
err
};
StructB *m_B;
};
struct StructB
{
CClassA::enumC en;
};
0444441
NGNGスマートな書き方はないんですね…
とりあえず、意味合いは変わってきますが、こんな感じで逃げようかと思います。
class CClassA
{
public:
enum enumC
{
ok,
err
};
typedef struct _tagStructB
{
CClassA::enumC en;
} StructB;
StructB m_B;
};
0445デフォルトの名無しさん
NGNGちなみにC++では構造体もクラス同様、変数宣言などのときにstructはなくても平気だからtypedefする必要はない。
0446444
NGNG0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGどうしたら良いでしょうか?
gccコンパイラ使ってます。
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNGbool function(int a, int b, ... );
この場合、va_startに渡す第2引数はbでいいの?
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGC言語で標準関数を使用してBASICの様にLine見たいな感じで描画する事は可能なんでしょうか?
線や円を色などを指定して描画したいんですが。
もし不可能であればそのような事を実現するのに適したライブラリ等、お勧めな物はありますか?
0455454
NGNGもしくは Linux(カーネル3.3.32.4)+gcc3.3.3
できるだけunix+gccで実現したいんですが、windowsのほうが手っ取り早いというならば
WindowsXP+VisualC++6.0辺りでも構いません。
0456デフォルトの名無しさん
NGNGVisual Studio .net なんですが、
それにDirectXを関連付けてインストールするにはどうしたらいいんでしょうか?
0457大原ゆき
NGNGよく学科の初級演習でちょっとしたシミュレーション結果などを学生に
表示させるのにSGL(Simple Graphics Library)というグラフィックス
ライブラリが使われたりすることがあるそうです。
その名の通りごく単純な機能しか持っていないので、習得が短時間でできます。
グラフィックスに重点を置かないようなプログラムの描画テストなどであれば、
ある程度使いものになるでしょう。
http://www.rzuser.uni-heidelberg.de/~demscher/public/sgl/
0459デフォルトの名無しさん
NGNG最近のIDEだと、iteratorやクラスメンバなんかでも
入力補助(インテリセンス、メンバ表示)が効くのでしょうか?
もう5年近くVC6を使っていて、未だ買い換える気にもならないので
ちょっと物欲を刺激してみようかと
0460デフォルトの名無しさん
NGNG普通に効きますよ
0461デフォルトの名無しさん
NGNGサンクスです!
あーやっぱりそろそろ買い換えよう…便利だろうなぁ
0462デフォルトの名無しさん
NGNG読み取りたいんですが全く方法がわかりません。
どなたかヒント頂けないでしょうか?
言語はC++を使おうと思っています。
よろしくお願いします。
0463デフォルトの名無しさん
NGNGクリップボード、プロクシもどき、クッキー、キャッシュ、メッセージ、ちょっと考えるだけでこんなに候補がある。
0464462
NGNGたとえばサーバにURL送る時は(おそらくURL情報、送信元IP、ブラウザ情報・・・)
IEにかかわらずたとえばアプリがやり取りしてるデータ(メッセージ?)に
アクセスしたいです。
0465デフォルトの名無しさん
NGNGアプリケーション間やOSとやりとりするメッセージと
IEからサーバーに送られるリクエストパケットは別物
アクセス方法も違う。
何をしたいか明確にしないと答えようがない
0466デフォルトの名無しさん
NGNGその前にWindowsがどういう仕組みになっているか勉強した方がいいと思います
0467462
NGNG勉強不足でうまく伝わらないようです・・・
アプリがやり取りしてるデータと言うのを具体的に明記すると
Windows上で動く一つのオンラインゲームがあり
そのオンラインゲームがサーバとやり取りしているデータを読み取りたいです。
オンラインゲームにかかわらずネットワーク経由でデータをやり取りしているアプリのデータを
横から読み取る方法は無いでしょうか?
>>466
お勧めの本あったら教えてください。
勉強不足のようです。。。
0468デフォルトの名無しさん
NGNG最初からそう言えば分かりやすいのに。
> アプリケーションがやり取りしているデータ
で分かる奴がいるか?
データの具体的な中身も種類も、やり取りしてる相手も書かれてない。
0469デフォルトの名無しさん
NGNGチートでもしたいのか?
自前でやるならwinsockのrecvをwrapするDLLを作るか、
外部のアプリからAPIHookをかけるのが手っ取り早いだろうけど、
ただデータを見て、ちょっとした書き換えをやりたいだけなら、WPEPro等を使うのが楽
0470デフォルトの名無しさん
NGNGいまファイル読み込みをやっていて
全角文字を0x80以上として、
0x80以上の値がきたら次の文字も読み込む
としているのですが、これだと半角カナの文字を判定することができないので
困っています。
何かてっとりばやい方法はないでしょうか?
0471462
NGNGキーワードいくつか頂いてありがとうございます。
ぐぐって勉強して来ます。
またお世話になるときはよろしくお願いします。
0472デフォルトの名無しさん
NGNGShift JISなら
http://homepage1.nifty.com/herumi/adv/adv40.html#003
他にもWindowsならIsDBCSLeadByte()とか
0473デフォルトの名無しさん
NGNG横取り丸をためしてみそ。オープンソース(VC)。検索すればすぐ見つかる。
動機が不純そうだが、俺も不純な動機でいじったから許す。
0474473
NGNGDLLサンプルがオープンソース。
httpの送受信書き換えはなんでも出来る。
0475デフォルトの名無しさん
NGNGhttp://winpcap.polito.it/
って、もうどっか行っちゃったのかよ・・・。
0477デフォルトの名無しさん
NGNGうおー。
ありがとうございます。
0478デフォルトの名無しさん
NGNGOpenGL
SDL
glut
あたりで検索されたし
0479デフォルトの名無しさん
NGNGGDIというしくみ。「猫でも」にあるよ。
ピクセル単位での計算結果の出力が主体なら、GDIはちょっと遅いかも。
WIN32SDK+DIBで検索してみては?
速度よりも汎用性なら、>>478さんの言うとうり、OpenGLがいいね。
0480デフォルトの名無しさん
NGNGパケットモニタでググレ
0481デフォルトの名無しさん
NGNGint hensu1, hensu2;
中略
hensu1 = ( hensu2 -40 ) * 0.5;
上記の計算式で hensu2 が 40 の時に途中でエラーが出ます。
この問題の条件として演算は整数とありましたので int を使いました。
自分で考えた限りでは式を二つに分けて零に乗算をしない事はできました。
ただ、もっとスマートに解決出来ないものでしょうか?
よろしくお願い致します。
0482デフォルトの名無しさん
NGNG40が全角だからです
0483デフォルトの名無しさん
NGNGお答えありがとうございます。
ただ、残念ながら変数の値はきちんと半角で受け取っております。
0484デフォルトの名無しさん
NGNGそれでは返答のしようが無いです。
ソースを省略してはいかんです。
省略しても大丈夫と思った所にバグが有るものです。
0485デフォルトの名無しさん
NGNGエラーの内容くらいちゃんと書け。
# あと、「希望する動作」と「現在の動作」もな。
0486454
NGNG>>478 さん
>>479 さん
ありがとうございます。
やっぱり標準関数では無理そうですね。
Windowsのシステムコールですか。
UnixのシステムコールはかじってるんですがWindowsは全く
わからないですね。ちょっと勉強してみますか。
OpenGLはなんとなく手をだしたことないですね。やはり使いやすいんでしょうか?
ちょっとみなさんからもらったヒントを元にいろいろ検討してみようと思います。
ありがとうございます。
0487デフォルトの名無しさん
NGNGあの部分のあとで hensu1 で割ってるんだろう。
0488デフォルトの名無しさん
NGNGFLY も試してみそ
0489479
NGNGがんばってね。おすすめは、
"猫でも" http://www.kumei.ne.jp/
"DIB" http://www.gen-ta.net/
どちらも、VisualC++が無いと厳しいかもです。
0490デフォルトの名無しさん
NGNGは?
0492デフォルトの名無しさん
NGNGほ?
0493デフォルトの名無しさん
NGNGプログラムのリソースにexeやdllなどのバイナリを保持させた場合、
それを取り出すとバイナリリソースへのポインタが取得できますが、
このメモリ上にデータとして展開されたバイナリリソースから
インスタンスを生成する(実行する)ことは出来るでしょうか?
一旦それをファイルに書き出して実行するという手段以外で
方法がありましたらご教授願います。
0494デフォルトの名無しさん
NGNG可能にしている特殊分野もありますが、お勧めいたしかねます。
0495デフォルトの名無しさん
NGNGメモリに展開して、先頭アドレスにjmpする…じゃだめなの?
0496デフォルトの名無しさん
NGNG0497493
NGNGやはりファイルに落とすしかないのでしょうか・・・
>>495
保持しているポインタはメモリに展開された実行ファイルそのものなので
jmpだけで実行できないと思うのです。
>>496
検索ヒット数が多すぎてわかりませんでした。
0498496
NGNG事実上きみがやりたいことをやっている
0499493
NGNGレスありがとうございます。
自己解凍系もしらべましたが、あくまでデータとして扱っているので
インスタンスを生成するという主旨からはずれてしまうのです。
CreateProcessやLoadLibraryの引数がメモリに展開された実行ファイルへの
ポインタだったら楽なんですけどね・・・・
0500デフォルトの名無しさん
NGNG0501493
NGNGこちらはMFCでかかれていましたが、Win32sdkでも記述できるはずですので
そちらを参照しました。
0502デフォルトの名無しさん
NGNG0503496
NGNGhttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_05/idnfw11_05_01.html
http://www.f-secure.co.jp/v-descs/v-descs2/sk-tech2.htm
0504デフォルトの名無しさん
NGNGありがとうございます。
目を通してきますm(_ _)m
0505デフォルトの名無しさん
NGNG(重複スレで質問しちゃってマルチごめんなさい)
数値計算をしていてパラメタは全てdoubleにしているんですがこの2式
z[ 4 ] = y[ 2 ] ^2 - 2.0e2 ;
z[ 5 ] = y[ 3 ] ^2 - 20.0 ;
で 浮動小数点の不正な使用 とエラーになってしまいます。
なにがいけないんでしょうか…?
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNG0508505
NGNGそれでもエラーが出たので
本見て変えてみただけです。。。
どうしたらいいんでしょうか?
0509505
NGNG0510デフォルトの名無しさん
NGNGz[4] = pow(y[2], 2) - 2.0e2;
z[5] = pow(y[3], 2) - 20.0;
0512デフォルトの名無しさん
NGNGいちいち関数呼び出しになるのが馬鹿馬鹿しいよね・・・。
0513デフォルトの名無しさん
NGNGDirectXでやってきたけれど仕様変更について行くのが嫌になってきて。
いまからでもopenGL覚えた方が良いんだろうか...
0514デフォルトの名無しさん
NGNG初心者を超えたら只の初級者だと思うのだが。
0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNG次の関数で0≦x≦2の範囲で、xの値の0,1ごとに
yの値を計算するプログラムを作成せよ。画面にはx、y両方の値を表示す
るようにすること。while文を使うこと。y=x*x−3x+5/4
0517デフォルトの名無しさん
NGNG入門者→初心者→初級者→中級者→上級者。
初心者を超えたら初級者になる。
0518デフォルトの名無しさん
NGNGマルチやめれ
0519516
NGNG0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNGこれってどういう意味ですか?
0522デフォルトの名無しさん
NGNGこれってどういう意味ですか?
0523デフォルトの名無しさん
NGNG0524にんどる
NGNGソートされたデータの配列を対象としたとき、その中に与えられた任意のキャラクタが含まれているか否か2分探索より効率的に判断できるようにするにはどのような方法を採用すればいいんですか?
教えてください。
0525デフォルトの名無しさん
NGNG回線気って首吊って氏んどけ
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNGソースを分割する際に構造体のメンバの順序変えて宣言したら
実行時にメンバが入れ替わってたんで
0528デフォルトの名無しさん
NGNGそりゃそうだ。
メンバはメモリ上でも宣言した順に並べられる。
0529デフォルトの名無しさん
NGNGどうしてでしょうか。
FILE* fp = fopen("test.txt", "w");
if (! setvbuf(fp, NULL, _IOFBF, 1024*1024)) {
printf("Failed to reserve buffer.");
}
このコードは 1MB のバッファを確保しようとしていますが、
64KB, 8KB でもだめでした。
0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNG> 戻り値
> 正常に終了した場合は 0 を返します。
0533デフォルトの名無しさん
NGNGどうしたらよいでしょうか。
Win32 では GetModuleFileNam() が使えるんだけど。。。
0534デフォルトの名無しさん
NGNG有効範囲は 2 < size < 32768
とも書いてある。MSDNよく読め。
0535デフォルトの名無しさん
NGNGすいません。。。よく読むようにします。
0536デフォルトの名無しさん
NGNG二分探索が使えるなら、それ以上に高速なものってあまり思いつかないな
むしろ二分探索が使えない時の速度の上げ方の方が悩むところだと思うけれど
>>526
memchr()は先頭から順番に探索してるだけじゃね?
0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNGソートされていないと2分探索は使えない
0539デフォルトの名無しさん
NGNGGetModuleFileNam()って機能を知らんので外してるかもしれんけど
#include <limits.h>
#include <stdlib.h>
char *realpath(const char *path, char *resolved_path);
このへんかなぁ? これにarg[0]渡せば行けそう
Linuxでproc fs使えるなら
/proc/self/cmdline
を読むのもいいかも
0540デフォルトの名無しさん
NGNG先頭の文字ならいざ知らず。
0541デフォルトの名無しさん
NGNGargv[0]にフルパスが入っている保証はない。
0542デフォルトの名無しさん
NGNGargv[0]にフルパスが入っているなら
char *realpath(const char *path, char *resolved_path);
なんて使わなくてもいいのでは?
0543デフォルトの名無しさん
NGNGargv[0]はコマンドラインから渡るから
入る場合もあれば入らない場合もあるということだろ
0544デフォルトの名無しさん
NGNG>>543
その入らない場合ってのはどんな場合を想定してる?
0545デフォルトの名無しさん
NGNGこんなの見付けた
ttp://www.freeml.com/ctrl/html/MessageForm/[email protected]/1076/
0546デフォルトの名無しさん
NGNGお前超初心者?
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNG構造体の本体置いてもいいんですか?
本体置けたら共通ヘッダ以外に書かなくていいから楽なんだけど
0549デフォルトの名無しさん
NGNG・そもそも argv[0] に自分のプログラムのパスが入っているとは限らない。
環境によっては設定されない場合もあるし、fake することも可能。
規格上も単に program name とされており空白の環境も許容されている。
・argv[0] に自分のプログラムのパスが設定されるとしてもフルパスとは限らない。
"./a.out" のように相対パスで設定されている可能性がある他、単にコマンド名だけで
環境変数 PATH の探索によってフルパスが得られる場合もある。
この場合は、realpath だけでは解決することができない。
参考:
ttp://www.nurs.or.jp/~asada/FAQ/UNIX/section4.4.html
こんなもんでどうでしょ?
>548
「構造体の本体」とは何かを述べよ。
0550デフォルトの名無しさん
NGNGextern付けてない構造体のことです
0551デフォルトの名無しさん
NGNG>本体置けたら共通ヘッダ以外に書かなくていいから楽なんだけど
その「本体」とやらは一個じゃないの?
それをも省略したいってこと?
0552デフォルトの名無しさん
NGNGstruct hoge{
int integer;
char character;
};
のことだよね
0553デフォルトの名無しさん
NGNG関数のプロトタイプ宣言と定義のこととごっちゃになってるんじゃない。
0554デフォルトの名無しさん
NGNG共通ヘッダにexternなしで構造体宣言書けばいいとおもったんだけど
実際やてみるとエラーがでました
共通ヘッダにexternなしの構造体書くと各ソースにexternなしの構造体書いたことになって
定義がダブることになるからエラー出たのかなと思いました
>>552
はいそのことです
ソースを分割するとソースごとに本体以外はexternを前につけて書かないといけないんで
>>553
552のことです
0555デフォルトの名無しさん
NGNGそれは何かがおかしい。君の言っていることが正しいことになると、例えば
C++の標準ライブラリはほとんどがエラーを発することになる。
0556デフォルトの名無しさん
NGNGエラーが再現する最小のコードを書いて貼ってみてよ
恐らくすぐ解決するよ
0557デフォルトの名無しさん
NGNG>>556
最小のコード書いてエラーを再現しようとしましたけど再現できませんでした
LNK2005: "struct a b" (?b@@3Ua@@A) は既に c.obj で定義されています。
というエラーがでます
c.cppファイルには定義は書いてないので定義がだぶることはないと思うのですが・・・
0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNGとりあえず再現してなくていいから
その今書いたのを貼ってみて
それにある間違いを指摘するから
その知識を元に当初のコードを修正すると
問題の一つは解決すると思うよ
0560デフォルトの名無しさん
NGNG#include <stdio.h>
#include "common.h"
int main()
{
struct x z;
z.c=10;
hoge(z);
}
//test.cpp
#include <stdio.h>
#include "common.h"
void hoge(struct x z)
{
printf("%d\n" , z.c);
}
//common.cpp
struct x
{
int c;
};
void hoge(struct x z);
です、これだとエラーが出ないのです
0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNGすいません
訂正します
×common.ccp→○common.h
0563デフォルトの名無しさん
NGNG>LNK2005: "struct a b" (?b@@3Ua@@A) は既に c.obj で定義されています。
このエラーは元のコードのか
>c.cppファイルには定義は書いてないので定義がだぶることはないと思うのですが・・・
c.cppになくてもinclude先に
struct a b;
ってない? 直接c.cppからincludeされてなくてもincludeの連鎖上に
c.cppってでかいの?
0564デフォルトの名無しさん
NGNGそれと関係ないけど560の
void hoge(struct x z)
は参照で受けた方が良い
structも省略して
void hoge(const x &z)
0565デフォルトの名無しさん
NGNG元のコードのです
c.cppは140行くらいで
#include <stdio.h>
#include "common.h"
しかインクルードしていません
あとc.cppはソルーションエクスプローラ中のソースファイルホルダの最上部に位置してます
>>564
ご忠告有り難うございます
0566デフォルトの名無しさん
NGNG//--- common.h
#ifndef common_h
#define common_h
struct a { int foo; } b;
#endif // common_h
//--- main.cpp
#include "common.h"
int main () {}
//--- common.cpp
#include "common.h"
これじゃ struct a 型変数 b の実体が main.obj にも common.obj にも
存在しちゃって、リンカの中の人も困る罠。
0567566
NGNG//--- common.h
#ifndef common_h
#define common_h
struct a {};
extern a b; // <- このプロジェクトのどこかに1つだけ b があるよ、と
// コンパイラ (やリンカ) に指導している
#endif // common_h
//--- main.cpp
#include "common.h"
int main () {} // <- ここで b を使う事は *もちろん* 可能
//--- common.cpp
#include "common.h"
a b; // <- b の実体はここにある
>566 も↑のコードも、ファイルをそれぞれ分けて保存すれば
きちんとコンパイルもリンクも通るから。試してみるべし。
0568デフォルトの名無しさん
NGNG>566 はリンクは通らない。
>557 のエラーが再現するコードな。
0569デフォルトの名無しさん
NGNG外からこの文字列配列を丸ごと取れるようにしたいんですが、
どうやって書いたらよいのでしょうか。
文字列を返す為のメンバ関数の型とか、
もらう方の側の書き方とかがどうすればよいのか分かりません。
(もらう方法があるとしたら)もらう方の文字列をstr2[128][128]として、
サンプルを書いていただけると大変助かります。よろしくお願いします。
0570デフォルトの名無しさん
NGNGchar const& str2[128][128] = moge.get_str();
0571デフォルトの名無しさん
NGNGまぁいいか。
0572デフォルトの名無しさん
NGNGありがとうございます。
関数の方が初めて見る書き方でどこが切れ目か分からないので
とりあえずクラス定義の中にそのままの形で書いてみたのですが、
・const char (' は不正です
・{' の前に予期しないトークンがありました。関数の本体は無視されます
と怒られました。
できたらクラス定義の外で「戻り値 クラス名::関数名()」みたいに書く
方式で教えていただけないでしょうか…
0573デフォルトの名無しさん
NGNG{
char str[128][128];
public:
const char (&get_str())[128][128] const;
};
const char (&Hoge::get_str())[128][128] const {return str;}
でもこれぐらいインライン展開した方がいいと思うけど。
0574デフォルトの名無しさん
NGNGchar const (&get_str() const)[128][128]{ return str; }
0575569
NGNGこっちは変更いらないんですよね?
ちなみに環境はVC++ですが、環境のせいとかありえますかね…
: 参照の配列は宣言できません。
: 'const char [128][128]' から 'const char *[128][128]' に変換することはできません。
(新しい動作 ; ヘルプを参照)この変換が可能なコンテキストはありません。
0576デフォルトの名無しさん
NGNGchar const (&str2)[128][128] = moge.get_str();
俺もそろそろぼけ始めたか・・・。
0577デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG試してみます
ありがとうございました
0582デフォルトの名無しさん
NGNGばっちりうまくいきました
本当にどうもありがとうございました
0583デフォルトの名無しさん
NGNGstrcspn関数についての質問なのですが、
文章の中で全角スペースがある場所までのバイト数を求めたいのですが、
int aNum = strcspn( "あいうえおーかきくけこ", " " );
とやると aNumに 10が入ってしまいます。
なぜか全角スペースの検査に"ー"が反応してしまうようなのですが、
これは何か使い方を間違っていますでしょうか?
0584デフォルトの名無しさん
NGNGstrcspnは0x81と0x5bからなる"ー"という文字列の文字0x81を検出した。それだけ。
0585デフォルトの名無しさん
NGNGSTL(standard template library)な。
class hoge{
std::vector<std::string> fuga;
public:
std::vector<std::string> get_fuga(){return fuga;};
};
0586デフォルトの名無しさん
NGNGint *ptr;
とせずに
pointer int ptr;
という表現で、設計すればよかったんでは?const int a; を見て思い付きました。
なんで int *ptr; という表現になっちゃったんでしょうか??
初期の学習者は、*演算子の意味と混同しそうだし、関数へのポインタの表現も少しややこしく見えます。
ただ自分が見慣れていないせいだとは思いますけど。
0587デフォルトの名無しさん
NGNG大丈夫だと思うんだが。
0588デフォルトの名無しさん
NGNGキーワードを増やしたくなかったんだろう。
0589デフォルトの名無しさん
NGNGtemplate <class T> class ptr;
でも作りなされ(w
0590デフォルトの名無しさん
NGNGint *ptr は、ptr 変数に * をつけて逆参照すると int 型だよー、っていう意味。
pointer キーワードを使うと、そういう意味がわからなくなるね。
0591デフォルトの名無しさん
NGNGint a;
int * ptr = & a;
* ptr = 0;
のかわりに、
int a;
pointer int ptr = enreference(a);
dereference(ptr) = 0;
とでもするかね。
0593デフォルトの名無しさん
NGNG&じゃだめだったのかな?
0594デフォルトの名無しさん
NGNG& をつかうんだったらさ、
int* &ptr;
は、ptr に & をつけたら int* 型だよ、となっていいけど、
int &ptr
は、ptr に & をつけたら int 型だよ、となって
これは逆参照を表す。
つまり、アドレスをとる & 演算子と、逆参照の & が混同しちゃうだろ。
0595デフォルトの名無しさん
NGNGint i;
int<-p = ->i;
int j = <-p;
いややっぱ分かりにくいわ。
&*は一文字で適度に目立つのがいいね。
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNGtypedef, template はまだ到達してません…
ポインタ宣言は>>590さんの書き込みでやっとはっきり理解できました。ありがとうございました。
0598デフォルトの名無しさん
NGNGでも、クラスの利点がイマイチ分からない。
サンプルを用いながら、「ほら、こんなに便利!わかったかゴルァ!!」
ってな感じにおしえて!
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNGね、便利でしょ?w
0602デフォルトの名無しさん
NGNGstd::stringとかstd::vectorとか便利。
面倒なメモリ管理から逃れられる。
0603デフォルトの名無しさん
NGNGそれクラスの利点じゃないし
0604デフォルトの名無しさん
NGNGC使いで構造化プログラミングに精通しているなら、「情報の隠蔽化」だけでも便利だと思う。
その方向でよければ具体例を挙げてみようか?
0605デフォルトの名無しさん
NGNGとりあえずクラスの意味を勉強しておいて、
クラスが使われているコードを数多く読むようになれば
その便利さやきれいさがわかる。
勉強してすぐによさが分かりにくいものって、よくあるよね。
そういうときはとにかく詰め込んでおけばいいと思うよ。私は。
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNGあなたか
その他人がクラスをあまり理解していないと思われます
0609デフォルトの名無しさん
NGNGだんだん汚くなってきて終いには訳が分からなくなるもの
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNG0612デフォルトの名無しさん
NGNG逆に聞こうか。
使わないでどうしてるんだ?
0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNG最近では継承を出来るだけ使用しないと考え方が広まってきたんでしょ。
無駄な継承はデバッグを困難にさせ、結局は開発効率を落とすとか。
0617デフォルトの名無しさん
NGNG0618617
NGNG0619デフォルトの名無しさん
NGNG0620デフォルトの名無しさん
NGNGint b=10000;
a=a+a;
b=b+b;
の計算はどちらが速いのでしょうか?
桁数が多いほど計算速度も遅くなるのでしょうか?
0621デフォルトの名無しさん
NGNGならない。
0622訂正
NGNG{
a=a+a;
b=b+b;
}
です
0623デフォルトの名無しさん
NGNGなんでですか?
桁数が多いほど遅くなりそうな感じがするのですが…
0624デフォルトの名無しさん
NGNG桁数の応じて遅くなったら困るだろ。
CPUの設計者がそこらへん気を使ってくれてるんだよ。
0625デフォルトの名無しさん
NGNG0626デフォルトの名無しさん
NGNG桁数が多いほど遅くなりそうに思うのはなぜだい?
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNGint型に入るならどんな計算も一緒
0629デフォルトの名無しさん
NGNGそんな保証はねーよ。
「自然な」とかいういいかげんな指定があるだけ。
0630デフォルトの名無しさん
NGNGint a = 10, b = 100000;
int c = 2, d = 997;
a = a / c;
b = b / d;
だと、どちらが速いですか?
0631デフォルトの名無しさん
NGNGどっちも最適化で消える(プ
0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNG一応マジレスしとくと、「同じ」
0635デフォルトの名無しさん
NGNGまあ一緒だろうな
0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNG起動時に設定ファイル(パラメータが入っています)を読み込みたいのですが、
作ったプログラムと同じディレクトリに置いてある設定ファイルを読むためにはどのよう
に記述すれば良いしょうか?
設定ファイルをソースの中に埋め込んでも良いのですが、
ほぼ一つしか使うことが無いとはいえ2種類あり、
一つが3000行ちかくありますので
外部に出したほうがよいと自分は考えております。
FAQでしたら申し訳ありません。
0638デフォルトの名無しさん
NGNG結論は「同じ」でいいんだよね?
0639デフォルトの名無しさん
NGNGどうしたらできます?
0640デフォルトの名無しさん
NGNGx86アーキテクチャではこっちの方が速い
unsigned int a = 10, b = 100000;
unsigned int c = 2, d = 997;
a = a / c;
b = b / d;
0641デフォルトの名無しさん
NGNGOracleJapanに問い合わせる。
#そしてoo4oを使う羽目になる。
>>638
そそ、シフトがどうとかではなく、単にどちらもイミディエイトな代入になることが予想される。
0642デフォルトの名無しさん
NGNG3969
29929
1999396
299739969
2909199969
19299599929
909995799969
???????????????
なんかC言語知ってる方なら?に入る数字がわかるらしいのですが・・・
わかる方がいたなら教えてください、お願いします・・・・
0643デフォルトの名無しさん
NGNGa,b代入されてるじゃん多分消えないよ
0644デフォルトの名無しさん
NGNGただし、最適化を一切行なわない、比較する意味のない条件においてのみ。
>>637
カレントワークディレクトリに置いていいならfopen("foo", "r")でいいだろう。
実行モジュールと同じディレクトリに置きたいなら、環境依存。
Unixなどのコマンドライン環境では、一般的には無理。
Windowsでは限定的には実行モジュールのあるディレクトリ=カレントワークディレクトリとなるが、
決定的ではない。
0645デフォルトの名無しさん
NGNG移植性を考慮しないならOSなどの環境を書いて再度相談すべし。
0646デフォルトの名無しさん
NGNG掛け算に直されるという意味ですか?
0647デフォルトの名無しさん
NGNG実験してから出直しておいで。
>>646
>>641
0648デフォルトの名無しさん
NGNG> Windowsでは限定的には実行モジュールのあるディレクトリ=カレントワークディレクトリとなる
Windowsでもそんなことは期待できない。
WindowsならGetModuleFilename()が使える。
0649デフォルトの名無しさん
NGNGあなたの頭にある、その白地に黒っぽい丸の描かれた球状の物体はガラス細工か何かですか?
0650デフォルトの名無しさん
NGNG>>645
お返事ありがとうございます。
将来的にはWINDOWSでも動かしたいなとは思っています。
現時点では、UNIXで動作すればよいです。
一応自分なりの考えをまとめました。
CFLAGSで、make installで入る予定のフォルダを指定してプログラム内に埋め込む。
プログラム内で、
実行モジュールと同じディレクトリと、カレントディレクトリ
の2箇所に設定ファイルがあるかどうかを確認する。
発見できればOK、無ければエラー終了。
と考えております。
0651デフォルトの名無しさん
NGNG「限定的には」「決定的ではない」なんてのはちゃんと読んだ上で言ってんだよ。
644の書き方だと、UnixとWindowsでOSレベルの差が有るように読めちゃうだろ。
0652デフォルトの名無しさん
NGNGおまえはアフォ
0653デフォルトの名無しさん
NGNGメンバとして
Hoge& operator+=(const Hoge& h)
と書くのと、グローバルに
Hoge& operator+=(Hoge& h1, const Hoge& h2)
と書くことの違いはなんですか?
特に違いは無く後者のほうはHogeと関係の無いところで演算子を定義できる便利機能ということでしょうか?
0654デフォルトの名無しさん
NGNG違いはメンバ関数か否か、としか言いようがないな。
大抵はprivateメンバを触る必要があるだろうからメンバになるけど、
friendにする必要がなければグローバルでも全然問題ないし。
0655デフォルトの名無しさん
NGNG0656デフォルトの名無しさん
NGNGthx
0657デフォルトの名無しさん
NGNGインタフェースが似てるからとかいう理由だけで継承するのは
間違い。
0658デフォルトの名無しさん
NGNGclass Complex
{
double r, i;
public :
Complex(double r= 0.0, double i = 0.0) : r(r), i(i) {}
double real() const{return r;}
double imag() const{return i;}
Complex & operator += (const Complex & rhs) throw ()
{
r += rhs.real();
i += rhs.imag();
return *this;
}
};
上で定義した複素数クラスで複素数同士の和を計算するオペレーター
operator += (const Complex & rhs)
では、引数が1つですが、
a+=b
を計算すると、どうしてa+bが計算されるのかわからないんす。
この場合、引数はbだと思いますが、aも引数にならない(なっているのかもしれない)
んでしょうか?
どう考えたらいいんすか?
とにかく、お聞きしたいのは、引数が一つでありながら、引数が2ついるような計算が
どうやって実現されているのか、っす。。
0659デフォルトの名無しさん
NGNGa+=b;
は
a.operator+=(b);
0660デフォルトの名無しさん
NGNGUNIXだと
インストール先のパスをPREFIXとすると
その手の設定ファイル(仮にhoge.confとする)は
$PREFIX/share/hoge/hoge.conf
こんな感じに置くのが一般的な気がする
PREFIXは
$ ./configure --prefix /usr/local
こんな感じで指定
0661デフォルトの名無しさん
NGNGC言語の標準命令でコンソールアプリケーションのカーソルを
移動させたり画面を消去したりする命令があれば教えてください。
printfでエスケープシーケンスを使う以外の方法が知りたいのですが‥
よろしくお願いします。
0662デフォルトの名無しさん
NGNGないよ。
コンソールのカーソルなんて想定されてないし。
0663デフォルトの名無しさん
NGNG環境依存だけど
UNIX
system("clear");
Windows
system("cls");
0664デフォルトの名無しさん
NGNG#include <windows.ini>
COORDp;
p.X = x;
p.Y = y;
SetConsoleCursorPosition(h, p);
0665デフォルトの名無しさん
NGNG即レスありがとうございました。
標準命令ではないんですね。
>>664さんの方法でも調べてやってみます。
この場合コンソール画面のハンドルを取ってこないと駄目なんですね。
画面消去だけなら>>663さんの方法でできそうなんでこちらも参考にさせていただきます。
どうもありがとうございました。
0666デフォルトの名無しさん
NGNG正しくないとは思いつつもbin/以下に設定ファイルを入れてました。
早速shareに変更します。
ありがとうございました。
0667デフォルトの名無しさん
NGNGfriend関数なら多態が効く。
メンバ関数は効かない。
0668デフォルトの名無しさん
NGNGデバッグは面倒になったような気がする。
0669デフォルトの名無しさん
NGNGそれは変だぞ。
0670デフォルトの名無しさん
NGNGというエラーが出て
黄色い矢印がこの行を指してました
if (abs(a)==abs(b))
どうすればいいのでしょうか?
考えられる原因や対策を教えてください
0671デフォルトの名無しさん
NGNG>どうすればいいのでしょうか?
ソースを晒す。あと環境も。
0672デフォルトの名無しさん
NGNGいろんな力量の人が係わってるプロジェクトでは現実そうなるのでは。
スーパーハカー集団が組んでるならどんなクラスを使ってもいいんだろうけど。
0673デフォルトの名無しさん
NGNGソースはサイズが大きいので無理です、すいません
環境はVC++.netです
0674デフォルトの名無しさん
NGNGいろんな力量の人が係わってるプロジェクトを純Cで遂行したら
その方が遥かにデバッグが面倒だと思うが?
0675デフォルトの名無しさん
NGNG初心者が何処で勘違いしてるかなぞソース見な誰もわからん。
ソース晒すのが嫌なら自力で解決しろ。
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG単純ミスだとおもうのですが、メンバとfriend指定が逆ですよね。
Base*に入れた派生型のオブジェクトに対して呼ばれて欲しいoperatorが呼ばれないと。
そういうことですね。
0678デフォルトの名無しさん
NGNG>a.operator+=(b);
レスどうもです。
それでも、やっぱり引数が一つ(b)なのにもう一つの「a」 との和が計算できる
理由がわからんのです。。
それとも「a」も引数と考えていいんですか。。。?
0679デフォルトの名無しさん
NGNGLPSTR型に変換するにはどうしたら良いでしょうか?
0680デフォルトの名無しさん
NGNG> それとも「a」も引数と考えていいんですか。。。?
それが正解。
「thisポインタ」を調べれ。
0681デフォルトの名無しさん
NGNGそんじゃ君は
a.operator+=(b);
~
↑このaが意味ないと思ってるワケ?
0682デフォルトの名無しさん
NGNGa->operator+=(this, b);
0683デフォルトの名無しさん
NGNG>CFLAGSで、make installで入る予定のフォルダを指定してプログラム内に埋め込む。
別の案としては今作っている実行ファイルは直接は呼び出さないようにして
$PREFIX/lib/hoge/hoge.real
みたいにパスの通ってないところに置いといて
hoge.realを呼び出す以下のようなhogeを$PREFIX/binに置いておくとか
$ cat hoge
#!/bin/sh
PREFIX=`which hoge | sed 's/\/bin\/hoge/ /g' | awk '{print $1}'`
$PREFIX/lib/hoge/hoge.real "$@"
exit
>>666
各ファイルの置場は
$ man hier
が参考になるよ
UNIXプログラミング質問すれの方が良いレスがつくかもね
0684683
NGNGhoge経由でhoge.real(当初のプログラム)を起動することで
arg[0]
からPREFIXが分かり設定ファイルの位置($PREFIX/share/hoge/hoge.conf)が特定出来ます
PREFIXの解析をダブらせたくなかったら
$ cat hoge
#!/bin/sh
PREFIX=`which hoge | sed 's/\/bin\/hoge/ /g' | awk '{print $1}'`
$PREFIX/lib/hoge/hoge.real $PREFIX "$@"
exit
みたいにしてhogeで得たPREFIXを引数に渡して起動してもいいかも
0685デフォルトの名無しさん
NGNGと
a=a+b;
は同値と形で覚えちゃえ!
0686デフォルトの名無しさん
NGNGを「aに足すのはb」と読むようになったら違和感なくなった。
0687デフォルトの名無しさん
NGNGどのようにすればいいのでしょうか、
0688デフォルトの名無しさん
NGNG読み込んだときにフラッシュする必要はないと思うのだが。
再度読ませたいならシークすればいいかと。
0689デフォルトの名無しさん
NGNGは
mov eax, a;
add eax, b;
mov a, eax;
と覚えたら違和感なくなった
0690デフォルトの名無しさん
NGNGむしろ
lea eax, a
mov ebx, b
add [eax], ebx
の方がイメージ近くないか?
0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNG>a->operator+=(this, b);
なるほど。。そう見るってことっすか。
ちょっと目から鱗が落ちた感じっす。
どうもありがとうっす!
0693デフォルトの名無しさん
NGNGmov ニューカマー、半島人
add 密入国者、ニューカマー
mov 在日、密入国者
0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNGMSDN に setvbuf で指定できるサイズの上限は 32768 未満
と書かれているのですが、1MB を指定してもエラーにならないのはどうしてでしょうか。
0696デフォルトの名無しさん
NGNG0697695
NGNG#ifdef _WIN32
if ( (type != _IONBF) && ((size < 2) || (size > INT_MAX) ||
#else /* _WIN32 */
#if defined (_M_MPPC) || defined (_M_M68K)
if ( (type != _IONBF) && ((size == 0) || (size > INT_MAX) ||
#endif /* defined (_M_MPPC) || defined (_M_M68K) */
#endif /* _WIN32 */
((type != _IOFBF) && (type != _IOLBF))) )
return(-1);
MSDN のドキュメントは 16 ビット コンパイラでも
動作するように書かれているわけかな。。。
0699デフォルトの名無しさん
NGNGこんなのありえねーってなバグ
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNGそうか、バグフィックス頑張れよ
0702デフォルトの名無しさん
NGNGいつまで粘着するつもりだ
とりあえず下げることを覚えろ、この池沼めが
0703r
NGNG+= 足し込む
-= 引き込む
*= 駆け込む
/= 割り込む
&= 且つ込む
|= 或は込む
<<= 論理左シフト込む
>>= 論理右シフト込む
足し込む以外はちょっと不自然かな。
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNGは、「aにfuncをどっとこむ」
0706デフォルトの名無しさん
NGNGこむってなに?
0707デフォルトの名無しさん
NGNGa-=b 「a」から「引く」の「は」「b」
a*=b 「a」に「掛ける」の「は」「b」
a/=b 「a」を「割る」の「は」「b」
a&=b 「a」に「andる」の「は」「b」
a|=b 「a」に「orる」の「は」「b」
a<<=b 「a」を「左シフトる」の「は」「b」
a>>=b 「a」を「右シフトる」の「は」「b」
後半の演算子を「〜る」にしたのはちょっと不自然かな。
0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNG関数内の途中でで処理を終了したいときはそこにreturnを書けばいいのでしょうか?
0710デフォルトの名無しさん
NGNGすごくやりたいです。
もうCodewarriorやProject builderから逃げ出したいんです。
でもMacからは離れたくないんです。
夜も眠れません。。
だれか助けて。。
0711デフォルトの名無しさん
NGNG>もうCodewarriorやProject builderから逃げ出したいんです。
その気持ちはわかる。
>でもMacからは離れたくないんです。
その気持ちがわからん。
0712!=710
NGNG0713デフォルトの名無しさん
NGNG何が?
0714!=710
NGNG0715デフォルトの名無しさん
NGNG0716デフォルトの名無しさん
NGNG出来るけど、returnは関数の最後にひとつだけが好ましいとされている。
これもgoto論争ほどではないにしても昔から言われている問題。
簡単に構成しなおせるなら最後にひとつだけになるようにするほうが無難だと思う。
とりあえず、喪前が書こうとしている関数をさらしてみれ
0717デフォルトの名無しさん
NGNGstruct a
{
int x;
int y;
};
int main()
{
struct a b[3];
b[0]={1,2};
}
としてbに値を代入しようとするとエラーが出ます
なぜでしょうか?
0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNG>b[0]={1,2};
これは何ですか?
0720デフォルトの名無しさん
NGNGb[0].xに1
b[0].yに2を代入しようとしたのです
0721デフォルトの名無しさん
NGNGもし既に読んでてその程度なんだったら人間やめろ
0722デフォルトの名無しさん
NGNG変数宣言時にこうやって初期化するしかない。
struct a b[3] = {{1,2}, {3, 4}, {5, 6}};
これは後に改良されていてC99対応コンパイラならb[0] = (struct a){1, 2};とできる。
C99非対応コンパイラでもこういう関数を作ることもできるがおすすめしない。
struct a create_a(int a, int b)
{
struct a new_a = {a, b};
return a
}
C++ならこういうのをコンストラクタに用意するのはたまに見かける。(これは良いと思う)
0723デフォルトの名無しさん
NGNGお返事ありがとうございます
早速試してみます
0724デフォルトの名無しさん
NGNGA2Tマクロ
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_atl_string_conversion_macros.asp?frame=true
0725デフォルトの名無しさん
NGNG書き忘れていたけど、当然こう書く方法もある。メンバ数が少ない物限定だが。
b[0].x = 1;
b[0].y = 2;
0726デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
FILE *pf;
pf = fopen("test.txt", "w");
if (pf == NULL)
{
printf("ファイルをオープンできませんでした。\n");
return 1;
}
else {
printf("ファイルをオープンしました。\n");
}
fclose(pf);
printf("ファイルをクローズしました。\n");
return 0;
}
なぜ return 1 と return 0 を使い分けているのですか?
0727デフォルトの名無しさん
NGNGそのプログラム単一では意味がないけど
別のプログラム(Aとしよう)からそのプログラム(Bとしよう)を呼んだ場合に
Bの返り値(returnで返す値)によってAのその後の処理を分岐するのに使用する
0728デフォルトの名無しさん
NGNG0が正常終了でそれ以外は異常終了ってことが多いから。
他のプログラムや関数で利用するときに便利でしょ。
0729デフォルトの名無しさん
NGNGなるほど、そういうことでしたか。
ありがとうございます。
0730デフォルトの名無しさん
NGNG重ね重ねありがとうございます
0731デフォルトの名無しさん
NGNGレスありがとうございます。
0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNG0734デフォルトの名無しさん
NGNGマイクロ秒待機させるってどんな用途なの?
0735デフォルトの名無しさん
NGNG制御系
0736デフォルトの名無しさん
NGNG割り込み使えよ
0737デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNGC++でネットワークのシミュレーションを行っているのですが、
その中で使いたいと考えているのです。
0740デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1098912550/891-899
ここのマルチじゃないよな?
0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNGCのファイルAPIとか(FILE*とか)使うには
どうするんですか?
String*はwchar_tに変換できるみたいですが、
デフォルトでwide characterを使用するんですかね?
0743デフォルトの名無しさん
NGNG違います。ms単位でのやり方はわかっていたのですが、
もっと精度の良い方法はないものかと思って質問しました。
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNGすみません。VC++です。。
0746デフォルトの名無しさん
NGNGあるにはあるけれど、マイクロ秒だと結果に誤差がありすぎて使いものになるかどうか
わからないよ
0747デフォルトの名無しさん
NGNGそうですか・・・
けど、一応教えていただけますか?
0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNGLinuxなら可能ですか?
0750デフォルトの名無しさん
NGNGリアルタイムリナックスについて
http://pc5.2ch.net/test/read.cgi/linux/988393952/
0751デフォルトの名無しさん
NGNG0752デフォルトの名無しさん
NGNGコピーコンストラクタを持たないGCのクラスにSTLは使えないらしい。
0753デフォルトの名無しさん
NGNG普通GCクラスはコンテナに入れるときもポインタ使うから
コピーコンストラクタは不要かと。
0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNGとあるので早速私もassert教にに入信しようと思ったのですが、
assert()ちゅうのはReleaseビルドだと完璧に無視されるのでしょうか?
ヘッダとやらを覗いてみてもプルプロセッサがゴチャゴチャしてて降参です。
0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNG便利なもんですなー、跡形もなくなりますか
使いまくります、レスありがとうございました
0759デフォルトの名無しさん
NGNG0760デフォルトの名無しさん
NGNGconst int Hoge::value = 0;
と書いて複数翻訳単位からincludeするとリンカで多重定義だとおこられますよね。
しかし以下のようなtemplateクラスの場合は問題ないようですがどうしてでしょうか?
template<typename T> const T Hoge<T>::value = 0;
複数の翻訳単位でそれぞれ例えばHoge<int>を実体化させれば
valueもそれぞれに定義されそうですが。。。
0761デフォルトの名無しさん
NGNGtemplate<> const int Hage<int>::v = 0;
VC6です。
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNGこれは規格どおりの動作。どのコンパイラでも同じだろう。
0764デフォルトの名無しさん
NGNGテンプレートってそういうものだから。
0765デフォルトの名無しさん
NGNG>static constなメンバ変数を初期化するのに、ヘッダにて
>const int Hoge::value = 0;
>と書いて複数翻訳単位からincludeするとリンカで多重定義だとおこられますよね。
これの理由も分かっていないと思われ
0766デフォルトの名無しさん
NGNGそれはそういうものだとしとくのが一番。
0767デフォルトの名無しさん
NGNGでも理由は面倒なので説明しない。
0768デフォルトの名無しさん
NGNG0769760
NGNGODRは>>765に対するキーワードですよね?
>>760ではtemplateにしたところで複数翻訳単位から実体化すれば
ODRに引っかかるのではないのですか?という質問です。
main.cppでHoge<int>使用 Hoge<int>::value = 0;
sub.cppでHoge<int>使用 Hoge<int>::value = 0;
↓
リンカであぽーん
とならないのは何故ですかという質問です。
0771デフォルトの名無しさん
NGNGアフォ?
0773デフォルトの名無しさん
NGNG1回しか生成されない罠。
でなきゃテンプレート使ってられないだろ。
0775デフォルトの名無しさん
NGNGソフトを作ってますが、CPU 使用率が 100% になってしまいます。
(あたりまえですが )
何か良い方法ってありませんでしょうか?
0776デフォルトの名無しさん
NGNG以上
0777デフォルトの名無しさん
NGNGどうすれば占有しないように出来ますか?やっぱり sleep ?
0778デフォルトの名無しさん
NGNG・自分で見に行くのではなく、通知して貰えないか検討する。
・自分で見に行くなら最低限、ほんの僅かでもsleepする。
#Unixならselect()で代用化、Win32APIならSleep(1)。
0779デフォルトの名無しさん
NGNGありがとうございます。
やっぱりそうですよね。Unix でネットワーク関連やったときは
select で行えたので問題なかったので、大丈夫と思ってましたが
Win では select が使えないでこういう問題になってしまいました。
通知というのは Unix でいうところの signal のようなものですね?
0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNG(関数に入って)戻ってくるという考え方の方がいいかと
ループ途中に一定条件で return で関数抜けるときとかによく使うしね
0782デフォルトの名無しさん
NGNGいや、Win32APIなら通知して貰う手段は色々あるよ。専用スレで聞いてみたら?
0783デフォルトの名無しさん
NGNGWin32API質問箱 Build24
http://pc5.2ch.net/test/read.cgi/tech/1098967135/
0784デフォルトの名無しさん
NGNGWindowsならある変数(boolだよな)の代わりにイベントオブジェクトを作り、待機にはWaitForSingleObject()などを使う。
0785デフォルトの名無しさん
NGNG次の3つの方法以外に何かスマートな方法はありますでしょうか。
・(Cの)コールバック関数を接続する
・連絡用のクラスを作り、未知のクラスにこのクラスを継承させる
・externで連絡先クラスのオブジェクトを取り込む
具体的には、Qtのsignal/slotのような手法を取りたいのですが、
標準のC++でこれに似た方法は何かないですか?
0786785
NGNGクラスのメンバ関数に行えるようにしたいわけです。
0787デフォルトの名無しさん
NGNGprintf(" %7.4f と %7.4f です。\n",x1,x2);
っていうのがあるんだけど、7.4って何?
0788デフォルトの名無しさん
NGNG整数部7桁 小数部4桁で揃え表示
0789デフォルトの名無しさん
NGNG0790788
NGNG全体で7桁揃えで、小数部の精度が4桁
0791デフォルトの名無しさん
NGNG0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNG解説ページにitocってあったので勘違いしてましたorz
0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNG0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNG0799デフォルトの名無しさん
NGNG0800デフォルトの名無しさん
NGNGように使いたい場合があります。
class A {
public:
int a;
int b;
};
のようなコンストラクタやデストラクタが明示的に定義されてないクラスの場合、
コンストラクタやデストラクタはデフォルトが使われるようなのですが
この場合のデフォルトコンストラクタ、デストラクタでは何が行われる
んでしょうか? a, bが0に初期化されたりするんでしょうか?
上記のような構造体代わりに使いたいクラスの例の場合、コンストラクタ
デストラクタは省略しちゃっていいんでしょうか?
0801デフォルトの名無しさん
NGNGデフォルトコンストラクタとデストラクタは何もしない
コピーコンストラクタは文字通りコピーする
0802デフォルトの名無しさん
NGNG違いはメンバのデフォルトがpublicかprivateかというだけな訳で。
0803デフォルトの名無しさん
NGNGむしろコンストラクタなしにしないと自由度が下がる。
A array[] = {
{ 10, 20, },
{ 30, 40, },
};
コンストラクタがあるとこんなことができなくなる。
0804デフォルトの名無しさん
NGNG違いはメンバのデフォルトがpublicかprivateかというだけな訳で。
たしか継承する時にもpublicかprivateの違いでてこなかったか?
0805デフォルトの名無しさん
NGNG引数を必要としないコンストラクタとしての「デフォルトコンストラクタ」と紛らわしいので、
その意味では「デフォルト」と言わないほうがいい。
規格中の言葉に従って、「暗黙の」と言うのがお勧め。
暗黙のデフォルトコンストラクタは A() {} と同じ。
暗黙のデストラクタは ~A() {} と同じ。
0806デフォルトの名無しさん
NGNG明示的にA()呼べば、暗黙のデフォルトコンストラクタはメンバを初期化してくれる。
0807デフォルトの名無しさん
NGNGと 'std::vector<T,Allocator>' の区別が曖昧 というエラーが
でてしまいます(bcc32 runge.cpp -lstdc++ -lm)。
Cygwinではコンパイルできます(gcc runge.cpp -lstdc++ -lm)。
bcc32でコンパイルするにはどうすればいいのですか?
お願いします。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1099536469&res=2
0808デフォルトの名無しさん
NGNG"butil.h"って何?これも晒してくれない事には何とも言えない。
0809デフォルトの名無しさん
NGNG添付についてたよ
0810デフォルトの名無しさん
NGNG#include <vector>
と
using namespace std;
されちゃってるんじゃないかな。
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>
この辺怪しそう。
つーか使うなこんなの。
どっちにしろvectorは紛らわしいから名前変えてみたら?
0811デフォルトの名無しさん
NGNGサンクス。
>>807
Number *vector(long nh);
こういう名前の関数は取りあえず名前替えれ。
0812デフォルトの名無しさん
NGNGPODに対しては特別にゼロ初期化がかかるというルール。
暗黙のデフォルトコンストラクタが初期化しているわけじゃない。
メンバに非PODを持ったり、デストラクタだけ定義したりすると
PODではなくなるのだが、その場合の動作については Defect Reports に載っている。
ttp://www.comeaucomputing.com/iso/cwg_defects.html#35
ttp://www.comeaucomputing.com/iso/cwg_defects.html#178
0813デフォルトの名無しさん
NGNG以下のようなソースを書きましたが、
'hoge' : 識別子がクラス名でも名前空間名でもありません
というエラーが出てコンパイルが通りません。
ポインタしか定義してないのでTestA.hはなるべく
includeしたくないのですがこういう場合どうするのが一般的なのでしょうか?
TestB.h の方に namespace hoge{ class TestA; }
というダミーの宣言(?)をつけておけば
一応コンパイルは通りますが何か気持ち悪いです。
======================
TestA.h
namespace hoge{
class TestA
{
};
}
======================
TestB.h
class TestA;
class TestB
{
hoge::TestA* ptrA;
};
0814デフォルトの名無しさん
NGNG======================
Test.A_fwd.h
namespace hoge{
class TestA;
}
======================
Test.A.h
#include "TestA_fwd.h"
namespace hoge{
class TestA
{
};
}
======================
TestB.h
#include "TestA_fwd.h"
class TestB
{
hoge::TestA* ptrA;
};
0815デフォルトの名無しさん
NGNGgetcharを無視して後のコードを処理してしまいます。
do {
printf("終了しますか(Y/N)?\n");
ch = getchar();
} while (ch == 'Y' || ch == 'y' || ch == 'N' || ch == 'n');
試しに以下のように変えてみてもやはりうまくいきません。
printfが2回でてしまいます。
while (1){
printf("終了しますか(Y/N)?\n");
ch = getchar();
if (ch == 'Y' || ch == 'y' || ch == 'N' || ch == 'n'){
break;
}
}
0816デフォルトの名無しさん
NGNGch == 'Y'とかは ch != 'Y'の
書き間違いです。
0817デフォルトの名無しさん
NGNGそれは多分、そのコード以前にscanf等の関数で処理されなかった
改行コード等のゴミが標準入力に残ってるからだと思われ。
面倒なら、do {の前にfflush(stdin);を入れてみるとか
0818デフォルトの名無しさん
NGNGレスありがとうございます。
fflush(stdin);を入れると、while(1)のほうではうまくいきました。
do の方はどうもうまくいきません。
0819デフォルトの名無しさん
NGNGif(p==NULL){
エラー処理
}else{
本処理
free(p);
}
Cでmallocに失敗したとき、エラー処理をしている人はいますか?
また、エラー処理にはどんなコードを書きますか?
実際に書いている人がいたら具体的に教えてください。
0820デフォルトの名無しさん
NGNG俺はこうしている。
if (p == NULL)
return エラー値;
失敗時に0を返す関数なら0を返すし、失敗時に1を返す関数なら1を返す。
0821デフォルトの名無しさん
NGNGdoの中にも
ch = getchar();
fflush(stdin);
とすることでprintfが2回処理されるのはなくなりました。
whileの条件式も
while (ch != 'Y' && ch != 'y' && ch != 'N' && ch != 'n');
でした。
初心者に付き合っていただいてありがとうございました。
0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG同一ブロック内でmalloc/freeが完結しているような処理で、
エラーを返すインターフェースのない場合のエラー処理について聞きたいのですが。
そういうのはよくない、内部でmallocしているすべての関数にエラーを返す
インターフェースを作れ。という方針でやるべきですか?
0824デフォルトの名無しさん
NGNGWindowsXP 上で、VC++ 6.0 SP5 を使っています。
ある MFC プロジェクトを新規作成し、
「プロジェクト」→「プロジェクトへ追加」→「ファイル」を用いて
外部から test.cpp と test.h を追加しました。
FileView にはこの2つのファイルが、
ClassView にはこのクラス内で定義されているクラスが表示されています。
プロジェクト名を Project とすると、CProjectView というクラスが最初から定義されていますが、
そのクラスの定義部分の // アトリビュート とあるところに、
(line:22) public:
(line:23) CClass test;
と追加したところ、
〜\projectview.h(23) : error C2146: 構文エラー : ';' が、識別子 'test' の前に必要です。
と言われました。
test.cpp、test.h は書籍の付録についていたもので、
22〜23 行目(上記)はサンプルを見てコピペしたものなので、エラーはないと思います。
プロジェクトへの追加方法が間違っているのかと思うのですが……。
よろしくお願いします。
0825824
NGNGCClass は、test.h で定義されているクラスです。
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNGdo{}while(failed);
を書いておく。
失敗を外部に伝える手段が無い=絶対に成功しなければいけない関数で、
万が一失敗してしまったら、その関数を終わることが出来ない。
成功するまでひたすら繰り返すしかない。
失敗したくせに何事も無かったかのように関数を抜けるのは最悪のパターン。
0828≠820
NGNG例えば関数内でのmalloc()で確保するメモリ量が関数内で見積もれる場合、
MBオーダーでもなければ私はエラー処理しないこともある。
#外部要因でサイズが変わる可能性がある場合、そのサイズに制限がなければエラーチェックすると。
0829デフォルトの名無しさん
NGNGif (p == NULL)
{
puts("スマソ\n");
abort();
}
0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNGtypedef struct foo {
int bar;
char *baz;
int x, y, z;
} foo_t;
foo->bar = 0;
foo->baz = NULL;
foo->x = 1;
foo->y = 1;
foo->z = 1;
...のように初期化してゆくのと、
foo_t foo_static_initializer = { NULL, 0, 1, 1, 1 };
foo_t *foo = malloc(sizeof(foo_t);
*foo = foo_static_initializer;
とどちらがいいですか?
0832デフォルトの名無しさん
NGNG初期化用関数を書くのがいい。
0833デフォルトの名無しさん
NGNG後者は冗長だし可読性も低いから嫌い。
前者は構造体が小さければ普通に代入。
大きければ初期化忘れ等を考慮してmemsetで0fillして0とNULLのセットを省略するとか。
0834831
NGNGありがとうございます。本当は、
/*ヘッダファイル内で*/
typedef struct foo foo_t;
foo_t *foo_new(/*some hints*/);
/*.cソース内で*/
struct foo {
/*メンバが10-*/
};
で、そのメンバ初期化関数foo_new()のなかで
foo->member = value_such_as_0_and_NULL;
がズラズラ20行近く並んだのを見て、なんかちょっとなぁと思いどちらが好ましいか聞いてみたくなったのです。
メンバが少ない時は前者でFAなのですすがすっt。
>後者は冗長だし可読性も低い
これはfoo_static_initializer = { ... }でどの初期値がどのメンバに対応するか一目で見て分かりにくい、ということですよね?
foo_t foo_static_initializer = {
0, /*bar*/
NULL, /*baz*/
とか値毎にコメントを付けるのもなんか面倒そうなので
アドバイス通りcalloc()して必要なメンバだけfoo->member = ...と書くことにします。
ちょっと積み込めすぎの気がしてきたので、グループ化して分けた方がいい気がしてきまったたt
0835デフォルトの名無しさん
NGNG教えてください!!!!!!!!!!!
0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNG普通のgccでメールを送受信したいんですが
プログラム例ってどんなもんでしょう?
0839デフォルトの名無しさん
NGNGRubyなら簡単だよ!!!!!!!!!!!!!!!1
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> gcc
0840デフォルトの名無しさん
NGNGじゃRubyでもおねがいします
0841デフォルトの名無しさん
NGNG0842デフォルトの名無しさん
NGNGそこでC99ですよ。
foo_t *foo = malloc(sizeof(foo_t);
*foo = (struct foo) {NULL, 0, 1, 1, 1};
0843デフォルトの名無しさん
NGNGBorland C++ Compilerとメモ帳を使って勉強しています
今までC言語の基礎をやっていたのですが
WINDOWSプログラミングの方に行こうとしたのですが
WINDOWSプログラミングをするとき
「Broland C++ Compilerの場合は-Wオプションをつけてください。」
と書いてあったのですが
Borlandのヘルプを色々検索したのですが
どこでその設定を変えるのか分からなく
解決できない状態になっています
どなたか解決方法わからないでしょうか?
宜しくお願いします
0844デフォルトの名無しさん
NGNGタダで使えるBorland C++ Part4
http://pc5.2ch.net/test/read.cgi/tech/1091066805/
0845デフォルトの名無しさん
NGNG今まで:bcc32 hoge.c
この先:bcc32 -W hoge.c
0846デフォルトの名無しさん
NGNGすみませんでした
向こうに書こうと思ったのですが
向こう16日ぐらいから書き込みが無いので
こっちに書いてしまいました
>>845
ありがとうございます
ーWをコンパイルするとき挟んであげれば良いんですね。
スレ汚し申し訳ありませんでした
0847デフォルトの名無しさん
NGNG試したところ
無事出来ましたありがとうございました
0848デフォルトの名無しさん
NGNGint x;
int y;
}:
↑の構造体で定義したpをstlのvectorに入れたい場合どうしたらよいでしょうか。
練習としてVCでコンソールアプリを作ってみているのですが、書き方が分かりません。
cout<<"xの値を入力"<<endl;
cin>>p.x;///←エラー
:
のような感じで10個ほど列(要素?)を追加していって
構造体配列の様にして、最後に表示してみたいのですが。。。
0849デフォルトの名無しさん
NGNG最低一冊は入門書を読みましょう
エラーメッセージは?
それとposの定義の最後のコロンはセミコロンが正解だよ
0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNGcin>>p.at(XX).x;
ではないのと、遠回しに言ってみるテスト
0852デフォルトの名無しさん
NGNG全角な上に綴り違いなのはネタ?
まぁ、漏れもRubyは使うけど、
C/C++とは比較対象にはならんな。
0853デフォルトの名無しさん
NGNG0854Ruby >>>>>>>>>>>>> C++
NGNG--------------------------------------------------------------------------
C++
いろいろと有名なオブジェクト指向言語であるC++とRubyを比較すると:
C++なぞ問題外.^^;;;
--------------------------------------------------------------------------
0855デフォルトの名無しさん
NGNGPerl 「Perlユーザは臭い」 by るびきち
Java 「Javaなんてうんこ」 by kitaj
C++ 「C++なぞ問題外.^^;;;」 by オフィシャルサイト
Ruby 「Rubyこそ最高言語」 by Rubyユーザ一同
0856デフォルトの名無しさん
NGNGそれはジョークだよ。馬鹿?
0857デフォルトの名無しさん
NGNGLet's compare other languages with Ruby.
We take up Perl, Python, Tcl, Java, Eiffel and C++.
This is based on our own judgment and biased view, however, it does not intend to spread fibs.
----snip--
C++
C++ is famous OOPL in many places. Now, let's compare C++ with Ruby:
Ruby is too good to compare ;-)
ジョークですか。そうですか。
0859デフォルトの名無しさん
NGNGstd::vector<pos> vec;
for(…){…
vec.push_back(p);
}
for(i=0…){…
cout<<vec[i].x;
}
を求めてるのかな?ふつーに参考書に載ってると思われ
ってゆうか載ってなかったらその本捨てておしまい。
0860デフォルトの名無しさん
NGNGint main (){
p = new int[1000]
for(int i=0; i<1000; i++) p[i]++;
}
とするより
int main (){
int* p = new int[1000];
for(int i=0; i<1000; i++) p[i]++;
}
としたほうが処理速度が速くなる理由はなぜでしょうか?
VCでリリースビルドした結果
mov ecx,dword ptr ds:[418C34h]
inc dword ptr [eax+ecx]
と
inc dword ptr [eax]
のようになっていましたが全然わかりません
0861デフォルトの名無しさん
NGNGat(n)はn番目の要素のある位置、つまりそこへの参照を返す。
>>860
pが後者ではレジスタ変数になっているように見える。
0862デフォルトの名無しさん
NGNGtypedf struct ABC{ char a; int b; double c; };
ABC abc;
ifstream fin;
fin.open(filename, ios::binary);
// ここでabcにfinでopenしたファイルからABC型のバイナリデータを読み込みたい
fin.close();
// どうすりゃいいんでしょうか…
// Cだとfread(&abc, sizeof(ABC), 1, fp);ですよね…
// 環境はVC++.NETです
0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNGついでで申し訳ないんですが、そいつに渡す引数はどうすればいいでしょうか、、
0865838
NGNGサンプルソースありませんか...
0866デフォルトの名無しさん
NGNG0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNGメールの送信にはSMTP、
受信にはPOPというプロトコルを使う。
とりあえずPOPについて分かりやすいページとしては
↓これなんかオススメ
http://x68000.q-e-d.net/~68user/net/
これはアプリケーション層の説明しかないみたいだけど、
下位層のプロトコルはWininetとかのライブラリを使って解決するだけだから説明は略。
0869デフォルトの名無しさん
NGNGレジスタ変数をよく理解していませんが確かにレジスタ1個でアドレッシングしているようです
一方グローバル変数のほうはp+オフセットという形で行っているようです
たまたまVCがそう最適化しただけで、C++一般の常識的な問題ではないのなら気にしないでおきます
0870デフォルトの名無しさん
NGNG// ここでabcにfinでopenしたファイルからABC型のバイナリデータを読み込みたい
には結局何を打ち込めばいいんでしょうか・・・
msdn開いても理解できませんでしたorz
0871デフォルトの名無しさん
NGNGsylpheed
kmail
辺りのソースをあたるとか
0872デフォルトの名無しさん
NGNGグローバル変数にすると、マルチスレッドの場合を考慮して
pを参照しようとするたびにメモリからpの値をReadするようになってる。
別のスレッドが、いつpの値を書き換えてしまうか分からないから。
関数のローカル変数ならそういう心配はないので
レジスタに割り当てることができ、処理速度が速くなる。
0873デフォルトの名無しさん
NGNGキーを押し "続けて" いるにも関わらず、OnKeyDown() が何度も呼び出されます。
エディタ上などでの、文字入力中の処理を考えると自然な気もしますが、
これをやめ、キーを押し続けても、最初の1度のみ OnKeyDown() を呼び出させる方法はないでしょうか?
0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNGキーを押し続けている間、WM_KEYUP は起きないと思うのですが……。
0876デフォルトの名無しさん
NGNG駄目ですか?
0877デフォルトの名無しさん
NGNG初回のOnKeyDownでフラグを立て
フラグが立ってる間、OnKeyDownは無視
OnKeyUpでフラグをおろせばいいんじゃない?
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNGああ、全くその通りです(゚Д゚;)
ありがとうございます。
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNGvoid foo( ) {
char *p;
p = (char*)malloc(100);
}
関数 foo を抜けたとき、
p は消えるけど p が指していたメモリは消えない。
free しなきゃだめ。
0883デフォルトの名無しさん
NGNGAPIなどいくつか用意されていると思いますが
どういう関数があるのとかどこで調べればいいのでしょうか?
0884デフォルトの名無しさん
NGNGMSDN
0886デフォルトの名無しさん
NGNGレスありがとうございます。宣言した変数は消えるんですね。こういうメモリの動きを見るソフト・機能とかあるんでしょうか?
0887デフォルトの名無しさん
NGNG見なくて済むようにするためのGC
0888デフォルトの名無しさん
NGNG列挙型で、
enum Hoge{
Hoge1 = 0,
Hoge2,
Hoge3,
};
・・・の時、{Hoge1,Hoge2,Hoge3}を{0,1,2}という整数に変換する事はできるんですが、
その逆に{0,1,2}から{"Hoge1","Hoge2","Hoge3"}というふうに列挙子を
文字列として取得する方法はないのでしょうか?よろしくお願いします。
0889デフォルトの名無しさん
NGNG自分で関数作るなりすれ。
0890デフォルトの名無しさん
NGNGローカル変数はスタック上に作られて関数を抜けた時点でなくなる
0891デフォルトの名無しさん
NGNGstd::mapにでもかちこんどけ。
0892デフォルトの名無しさん
NGNG#include <iostream>
#include <string>
int main(void){
std::string str("abcde");
const char* p=str.c_str();
int len=0;
while(p!='\0'){
p++;
len++;
}
std::cout<<len<<std::endl;
return 0;
}
このコードで、whileループが終わらないのですがどうしてなんですか?
str.c_str()は¥0で終わる文字列を返すので、ループが終わらないのは
おかしいと思ったんですが。。
コンパイラはBorland C++ compilerを使いました。
0893デフォルトの名無しさん
NGNG0895892
NGNG恥ずかしい限りですorz
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNGp++;
len++;
}
…どうでもいいことだが格好が…
while (*p++) ++len;
0898デフォルトの名無しさん
NGNG質問です。
8bitの2進数を左右反転させたいのですが手法が分かりません。
11111101→10111111
シフトレジスタ>>,<<
論理積&
論理和|
排他的論理和^
等を使えばいいのでしょうか?
0899デフォルトの名無しさん
NGNG皆さんはどうしてますか?
多用していますか?
なるべく排除しようとしていますか?
0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNG意味不明
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNGhoge = function();
while (hoge != 0)
を
while ((hoge = function()) != 0)
と書くこと
0904デフォルトの名無しさん
NGNG補足
hoge = function();
while (hoge != 0) {
doSomething();
hoge = function();
}
を
while ((hoge = function()) != 0)
doSomething();
と書くこと
0905デフォルトの名無しさん
NGNGとか?簡潔で分かりやすいじゃん
0906デフォルトの名無しさん
NGNG>904
どー考えても 下の方が理解しやすいと思うんだが違うのか、お気の毒.
あえて上の書き方してるとしたら氏ね
0907デフォルトの名無しさん
NGNGdoSomething();
0908デフォルトの名無しさん
NGNGif (xxx)
{
}
else
{
}
while (1)
{
}
この形のインデントが増えてないか?
俺はK&Rスタイルを貫いているが。
if (1) {
} else {
}
while (1) {
}
どっちでもいいといえば、どっちでもいいが、ちょっと疑問に思ったので。
0909デフォルトの名無しさん
NGNG別に
0910デフォルトの名無しさん
NGNG俺は最初前者から入って、今は後者
0911デフォルトの名無しさん
NGNG明示しやすいから。
正直読めれば他人の書くコードはどうでもいいが。
0912デフォルトの名無しさん
NGNGvoid hoge(int *a);
int main()
{
int a;
hoge(&a);
printf("%d\n" , a);
}
void hoge(int *b)
{
b++;
if (b>5)
{
return;
}
hoge(b);
}
上のプログラムだと
error C2040: '>' : 'int *' は 'int' と間接操作のレベルが異なります。
error C2446: '>' : 'int' 型から 'int *' 型への変換ができません。
というエラーがでます
aの値が6になったか確認したいのですけどどうしたらいいのでしょうか?
0913デフォルトの名無しさん
NGNGif (b>5) → if(*b > 5)
そもそも未初期化の変数を使うなと
int a = 0; とでもしとき
0914913
NGNG0915デフォルトの名無しさん
NGNG{
(*b)++;
if (*b > 5) return;
hoge(b);
}
0916915
NGNG0917デフォルトの名無しさん
NGNGご返答ありがとうございます
エラーはでなくなったのですけど
aの値が6になってないのですが
hoge内のbの変化がaにも適応されるようにしたいんですけど
どうしたらいいのでしょうか?
0918デフォルトの名無しさん
NGNG>>915
ありがとうございます
ちゃんとaが6になるようになりました
0919デフォルトの名無しさん
NGNGvoid hoge(POINT *b );
int main()
{
POINT a;
a.x=0;
a.y=0
hoge(&a);
printf("%d\n" , a.x);
}
void hoge(POINT *b)
{
(*b->x)++;
if (*b->x>5) return;
hoge(b);
}
でerror C2065: 'b' : 定義されていない識別子です。
と: error C2065: 'POINT' : 定義されていない識別子です。
とerror C2182: 'hoge' : 'void' 型が不適切に使用されています。
というエラーがでました
なぜでしょうか?
VC++.netです
0920デフォルトの名無しさん
NGNG(゚Д゚)…
一度入門書を読んで来た方がいいんじゃないか?
0921デフォルトの名無しさん
NGNGネットの入門HPで勉強中なんです
0922デフォルトの名無しさん
NGNG(*b).x は b->x と同義であることを理解してるか?
0923デフォルトの名無しさん
NGNG>>919でa.まで書くと自動的にxとyの候補が表示されるので
すでにどこかでPOINTが定義されてるのかなと思ってました
>(*b).x は b->x と同義であることを理解してるか?
知りませんでした
0924デフォルトの名無しさん
NGNGどこかで定義されているのは正しい(windef.hだったかな?)が、
その定義をincludeしていないでしょう。
VC++は直接includeしていなくてもインテリセンスが働く悪い癖がある。
0925デフォルトの名無しさん
NGNG#include <stdio.h>以外インクルードしてません
>VC++は直接includeしていなくてもインテリセンスが働く悪い癖がある。
初心者にとっては便利な機能みたいですねw
0926デフォルトの名無しさん
NGNG初心者にとってはよくない機能だと思われ
0927デフォルトの名無しさん
NGNGsrc = 0xfd;
dst = (src & 0x80) >> 7 +
(src & 0x40) >> 5 +
(src & 0x20) >> 3 +
(src & 0x10) >> 1 +
(src & 0x08) << 1 +
(src & 0x04) << 3 +
(src & 0x02) << 5 +
(src & 0x01) << 7;
これでどうだw
0928デフォルトの名無しさん
NGNG{
x = (0xF0 & x << 4) | (0x0F & x >> 4);
x = (0xCC & x << 2) | (0x33 & x >> 2);
x = (0xAA & x << 1) | (0x55 & x >> 1);
return x;
}
だっけ。まぁ、8bit程度だとあんま意味ないが。
0929デフォルトの名無しさん
NGNGたとえばa[0]〜a[9]のうちの最大のものがa[3]とするとmax=3としたいとか。
0930デフォルトの名無しさん
NGNG>>898
unsigned char a = 0xF2; //反転させたいビット列 (入力)
unsigned char HANTEN(unsigned char a){
unsigned char b = 0x01;
unsigned char work =0, out =0;
for(int i=0; i<=7; i++){
work = a & b;
work << (7 - i);
out = out | work;
b << 1;
}
return out;
}
下位から1bitずつ取り出してその分シフト、orで足し算、と。
取り出したビットがゼロだったら飛ばしてもいいかも。
>>987-928と比べたらメリットは、他の変数型への移植性くらいしかないけど
0931デフォルトの名無しさん
NGNGb << 1;を削除して
a >> 1;で
0932デフォルトの名無しさん
NGNGtemplate<typename T>
inline T tinvert(T t){
T x = T();
for (T m = 1; m; m <<= 1)
x = (x << 1) + (t & m ? 1 : 0);
return x;
}
のほうがよくないか。
0933デフォルトの名無しさん
NGNGmax=&(a[3])-a;
0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNG>>934
どーもです。
0936デフォルトの名無しさん
NGNGDebug モードではコンパイルが通ったのですが、Release モードにすると、
〜\hogehoge.h(12) : fatal error C1083: インクルード ファイルがオープンできません。'aaaa.h': No such file or directory
とエラーがでました。
aaaa.h は外部から追加したヘッダファイルのため、パスが通ってないと考えたのですが、
Debug と Release でなぜ違いがでるのかが分かりませんでした。
よろしくお願いします。
0937デフォルトの名無しさん
NGNGプロジェクトの設定は、Debug と Release モードで別々なんだよ。
Release モードの C/C++ コンパイラ オプションでも
/I オプションを追加するといい。
0938デフォルトの名無しさん
NGNG(中略)
(゚∀゚) ruby!!
0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNG君らの行為がRubyの評価を下げている
Rubyのためにも逝ってくれ
0941デフォルトの名無しさん
NGNG|と+の違いって、キャリーがあるかないかだよな?
1+1は2で、1|1は1?
それを利用したら、配列に入った全ての値が同じか否か検出出来る?
0942941
NGNG配列の[0]に入ってた値を保存して、各値とのorをとって同一かどうかで検出出来る?
0943デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNGthx、よく考えたら無理ですた。
ループで同等比較するしかないのか、めんどいナァ………。
0946デフォルトの名無しさん
NGNGその半分の更に半分同士をstrcmpで同等比較
…の2段階じゃダメかなぁ。
どこかに違う値入ってたら引っかかると思うんだけど
思いつきなんで間違ってたら「こいつアホだ」とでも何とでも…
0947デフォルトの名無しさん
NGNG12121212みたいに入ってると通ってしまうことに気づいた
やっぱ俺はアホだ!
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG普通にループで書いた方が賢明な気がする。
ループを書くのはカッコワルイ、とかいう理由なら別だけど
0950デフォルトの名無しさん
NGNG0951リズムに乗って
NGNG♪ / \ ランタ タン
ヽ(´Д`;)ノ ランタ タン
( へ) ランタ ランタ
く タン
♪ Å
♪ / \ ランタ ランタ
ヽ(;´Д`)ノ ランタ タン
(へ ) ランタ タンタ
> タン
と思ったけど、rhythm でもないじゃないか…
0952デフォルトの名無しさん
NGNG○| ̄|_
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNGこっちはコレ系に強い、とかありませんか?それともたいていどっちもやるとか、片方やればどっちもわかったりするんですか?
0956デフォルトの名無しさん
NGNG両方やれ。
0957デフォルトの名無しさん
NGNGstdio.hもしくはcstdioで定義されているものはレガシー関数といわれています。
あまり使うべきではありません。
0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNGiostream -> 拡張性有り、型安全、stdio より遅いことがほとんど
0961デフォルトの名無しさん
NGNGprintf()はとても重いし遅いけれど。
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNGそれ以外はどっちも同じようなものなのがなぁ・・・
0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNG確かにそうだね。
昔の話だけれど、実際使うときはprintfを自作していたよ。
0966デフォルトの名無しさん
NGNGsprintfとかCString::Formatとか書式の方をよく使うから
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNGまた、開発環境はどれが扱いやすいですか?
0972デフォルトの名無しさん
NGNG禿も推奨
0973デフォルトの名無しさん
NGNGいきなり開発環境はいらんからフリーのコンパイラつかって
とりあえずCでもC++でもいいから入門書を一冊仕上げろ。
入門書は安いのは役に立たんから値は張っても定評のあるのにしろ。
C++ならダイテルかPrimerか。Cは俺は知らん。
0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG0976971
NGNG>>973
ありがとうございます。
アマゾンで調べたところ、いろいろ種類がありました。
基本的に、ダイテルの本を買っていって順に学んでいくのかPrimerの本を買っていって順に学んでいくかは好みで選んでも問題ないでしょうか?
0977デフォルトの名無しさん
NGNGないクラスを作成することができるのでしょうか?
0978デフォルトの名無しさん
NGNGclass A : public TemplateClass<ほげ>
{};
0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNG動かないんすか?
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG最低限の本ぐらい買って読めよ、と思う
0983デフォルトの名無しさん
NGNG0984デフォルトの名無しさん
NGNGバッファに残ってしまったデータのクリアのやり方がわかりません。
おしえてください。
0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNGファイルから読み込んでるならクローズすればいい。
標準入力から読み込んでるなら読み捨てるロジックを書けばいい。
0987デフォルトの名無しさん
NGNG画面見ながら勉強するのは21インチモニターなどで画面分割しながら
やらないと苦しい。それかページを印刷してしまうかだね。
俺は本を買った方が絶対に良いと思う。
0988デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1101100031/
0989デフォルトの名無しさん
NGNG>バッファに残ってしまったデータのクリアのやり方がわかりません。
読みきれなかったデータはバッファではなくファイル側にある。
0990984
NGNG即レスありがとうございます。
標準入力の場合はgetcharで空読みをしてできたのですが
ファイル入力の場合でも同じような事は出来ませんか?
次の行も読み込まなくてはいけないので。
0991デフォルトの名無しさん
NGNGfgetc()で読み捨てるか、fgets()で読み捨てる。
0992984
NGNGfgetsで読み捨てるとしたら具体的にはどうしたらいいんでしょうか。
0993デフォルトの名無しさん
NGNG/* fgetc()を使った読み捨て関数。 */
void readAndThrow(FILE * fp)
{
int rtn;
do {
rtn = fgetc(fp);
} while (rtn != '\n' && rtn != EOF);
}
#if 0 /* 使用例 */
while (fgets(buf, sizeof(buf), fp)) {
if (strchr(buf, strchr('\n') == NULL) {
readAndThrow(fp);
}
/* ... */
}
#endif
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。