[過去ログ] スレを勃てるまでもないC/C++の質問はここで 21 (1001レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(1): 2012/07/15(日)02:05 AAS
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
01 2chスレ:tech
02 2chスレ:tech
03 2chスレ:tech
04 2chスレ:tech
05 2chスレ:tech
06 2chスレ:tech
07 2chスレ:tech
08 2chスレ:tech
09 2chスレ:tech
10 2chスレ:tech
11 2chスレ:tech
12 2chスレ:tech
13 2chスレ:tech
14 2chスレ:tech
15 2chスレ:tech
16 2chスレ:tech
17 2chスレ:tech
18 2chスレ:tech
19 2chスレ:tech
20 2chスレ:tech
875
(1): 2014/02/17(月)22:45 AAS
>>872
山登り(または谷下り)するときに、頂上(谷底)でその斜面からより高い(低い)場所に向かって歩いて別の頂上(谷底)に到達できるの?君。
876: 2014/02/17(月)22:49 AAS
複数解を持つ方程式をニュートン法で解く場合、与える初期値によって求める解が決まるそうです。
リンク先に「どの解を求めるかによって初期値を人間が適切に判断しなければならない」とありますから
この部分はプログラムで自動化することは困難なのでは…
外部リンク[html]:ryuiki.agbi.tsukuba.ac.jp
877
(1): 2014/02/17(月)22:57 AAS
初期値よりも微分が手作業なのをなんとかしろよ
初期値はランダムでもいい
878: 2014/02/17(月)23:06 AAS
よく知らんがMathematicaやMapleをつかえば微分もプログラムでやれるんじゃね?
879: ◆QZaw55cn4c 2014/02/17(月)23:15 AAS
>>877
数値微分
880: 2014/02/17(月)23:17 AAS
どんな関数を入力しても、微分も初期値も全自動でないと。
881: 2014/02/17(月)23:27 AAS
>>875
局所最適解山乙
882
(1): 2014/02/18(火)20:58 AAS
昨日ソース貼った者だけど
あれからソース変えてみました。
ここから解を3つ出力できるようにできますでしょうか?

int count = 0;
double x = 0.0;
double h, h2;
for (int n = 1; n < 100; n++)
{
h = (i[0] * x * x * x) + (i[1] * x * x) + (i[2] * x) + i[3];
h2 = (3.0 * i[0] * x * x) + (2.0 * i[1] * x) + i[2];
h = h / h2;
x = x - h;
if (Math.Abs(h) < 0.000000000000001)
{
kaitou[count] = x;
count++;
n = 1;
x++;
}
if (count > 2.0)
{
break;
}
}
883: 2014/02/18(火)21:33 AAS
自分で試してみないの?
884: 2014/02/18(火)21:43 AAS
試したけどできなかったので
何かアドバイスが欲しいのです。
885
(1): 2014/02/18(火)22:49 AAS
・何を試したのか
・試した結果、どう上手く行かなかったのか

のリストをまとめてからどうぞ
886: 2014/02/19(水)11:27 AAS
試したのなら
>>885
> ・試した結果、どう上手く行かなかったのか
これを添えて質問するのは当たり前だろう
887: 2014/02/19(水)17:50 AAS
>>882
コード読んでないけど、x++;をx=ldexp((rand()+(rand()*1.0/RAND_MAX))/RAND_MAX , (rand()%1024)-512);
とかにでもすれば?
888
(2): 2014/02/22(土)01:24 AAS
.outっていうファイルを解析して一部書き変えて動作を変更したいのですが
調べてみると.outはC言語の実行ファイルらしいというとこまでしかわかりませんでした
.outのファイルを開くとほとんど文字化けで見れないんですが
.outファイルを逆コンパイルして人間が読めるようなソースを作ることは可能なのでしょうか?
たすけてください
889
(1): 2014/02/22(土)01:57 AAS
テキストファイルとして開く時点でお前には能力がない
あきらめろ
890
(1): 2014/02/22(土)04:29 AAS
「逆コンパイルして人間可読にする」って思考してる時点で
「テキストファイルとして文字化けしてる」って認識になるはず無いんだが・・・釣りかね?
891
(1): 2014/02/22(土)07:01 AAS
テキストとして開いてみた
→文字化けしてるからリコンパイルかな
って流れくらいわかるだろ
892
(1): 2014/02/22(土)08:26 AAS
そもそもリバースエンジニアリングには注意が必要なわけで
流石に自分で全部調べられるレベルにないとやって欲しくないな
893
(1): 2014/02/22(土)12:43 AAS
>>888
ム板の天災 片山MZに師事しろ
2chスレ:tech
894
(1): 2014/02/22(土)14:18 AAS
最近javaばっかりしてて
久々、C++でデスクトップアプリを作ろうと
思ってるんですが(何を作ろうとは考えて無いけど)
自分の持ってるVSって2005なんだけど
VSってmfc以外の利点は無いし
2005だからだからVC++も中途半端な作りだし
やっばVC++の新しいバージョンのEE入れたほうが良い?
それともマルチプラットフォームのQtが良い?
どなたか教えて!
895: 2014/02/22(土)14:28 AAS
作りたいものでてから考えろや
896
(1): 2014/02/22(土)15:13 AAS
っgcc
897: 2014/02/22(土)15:52 AAS
>>894
VS2005に、最新のEEのコンパイラ組み合わせてはどうか

>>896
gcc, clang もたしなみ
898
(1): 2014/02/22(土)17:12 AAS
>>888
無理
スキルがあるなら逆アセンブルしてパッチをあてるくらいだが
それすら現実的でない

助けてくださいということはクラックされて何か仕込まれた?
899
(1): 2014/02/23(日)05:50 AAS
初心者ですが、文字列の比較について教えて下さい

class A {
static const char * sprit(const char* chr);
}
const char * sprit(const char* chr){
std::string str(chr);
const char subChr = substr(0,3).c_str();
return subChr;
};

という文字列を半分にするクラスを作成し、

const char * chr = A::sprit("123456");
if (!strcmp(chr,"123")){ }

という比較を行うと、真になって欲しいのですが
毎回結果が違ってしまいます。
chrの中を見ると「123」となってはいるのですが。
これは何を勘違いしているのでしょうか

環境はAndroid NDKです。
よろしくお願いします。
900: 2014/02/23(日)06:36 AAS
アドレスが異なるから違うよと言われる
値の比較をするならそうしよう
901: 2014/02/23(日)07:16 AAS
そもそも、ポインタを返す関数で整数を無理やり返してコンパイルできてるのかね。
つーか、AndroidNDKでC++なのか?
902: 2014/02/23(日)08:04 AAS
>>899
ローカル変数のポインタを返してるからじゃないの?
903: 2014/02/23(日)17:33 AAS
そこら中誤字まみれでどうしようもねぇな
文字(Chr)と文字列(Str)すらごっちゃになってるし、spritはsplitだろうし、4行目A::が抜けてるし…

static const std::string A::split(const char* str){return std::string(str).substr(0,3);};
でよくね
904: 2014/02/23(日)20:23 AAS
>>889-893
>>898
ありがとう、あきらめたよ
905
(1): 2014/02/23(日)22:55 AAS
C++のSTLのstd::vectorのコードを見ていたら、
コンテナに格納可能な最大数を返してくれるメソッドmax_sizeが以下のようになってたんですけど、

size_t max_size() const
{ return size_t(-1) / sizeof(_Tp); }

どうしてこれで求められるかが理解できません。
教えてください。お願いします。
906
(1): 2014/02/24(月)00:20 AAS
>>905
・size_tはunsignedだから、-1をキャストすると最大値が出る
・sizeof(_Tp)で要素1つ辺りのサイズが算出できる

そこから、vectorの実装に明るくない俺でも

・使えるのは最大で「size_tの最大値」バイトまでなんだろう
・それを要素1つ辺りのサイズごとに区切って使うのだろう

というくらいは推測するよ
まあ、区切るも何も、C/C++の仕様考えたら
ポインタに演算や添字与えりゃ済むんだろうが…

それ以上はもっかい自分できちんと。
処理系や実装者によって多少の差異があるかも?知らんけどw
907: 2014/02/24(月)00:36 AAS
でも、どう考えてもmax_size()個行く前に仮想メモリ空間が足んなくなるよねコレ
スパコン用とかどうにかそれが出来るC++実装がどこかに存在するのかな…
908: 2014/02/24(月)07:39 AAS
メモリーをnewして失敗しなくても、実際にアクセスするまで
メモリー確保できたかどうかわからないアーキテクチャなOSがあるんでな
最大サイズも「あれば使える」程度でいいんよ
909: 2014/02/24(月)08:21 AAS
>>906
なるほど!
よくわかりました!
ありがとうございます。
910: 2014/02/24(月)17:01 AAS
あの罠仕様は実メモリ・実スワップが割り当てられないだけで仮想メモリ空間自体は割り当てされるんじゃないのか
911: 2014/02/25(火)20:59 AAS
三次方程式のプログラムを作っています。

複数解を出力する場合の処理についてです。
ニュートン法で一つ目の実数解を出力した後に
次に二つの複数解の実数解を出しました。
次に虚数部を出したいと思うんですが
どう処理すればいいのかわかりません。
その処理をしているソースを載せます。
どう処理すればいいでしょうか?
912: 2014/02/25(火)21:01 AAS
最後のelse if (hanbetu < 0.0)のところが
複素数解を出力する処理です。
変数imに虚数部を入れます。

for (int n = 1; n < 100; n++)
{
if (Math.Abs(h) < 0.000000000000001)
{
kai[count] = Math.Round(x, 13);
if (hanbetu > 0.0)
{
count++;
x = 10.0;
if (count == 2 && kai[0] == kai[1])
{
count--;
x = -10.0;
}
}
if (count > 1)
{
kai[2] = Math.Round((-(i[1] / i[0])) - (kai[0] + kai[1]), 13);
break;
}
else if (hanbetu < 0.0)
{
kai[1] = kai[2] = Math.Round((-i[1] / i[0] - kai[0]) / 2.0, 13);
im = (Math.Sqrt(3.0));
}
913: 2014/02/28(金)17:15 AAS
age
914
(2): 2014/02/28(金)19:09 AAS
マルチプラットフォーム的なコードにしたいんだが
OS依存のライブラリ等に自作ラッパ噛ますのってアリ?

本当はSDLって奴使いたかったんだけど
Windows8でXAudio2のバージョンが変わったとかでビルドできない…
915: 2014/02/28(金)22:51 AAS
>>914
OS依存部分を直接自前ライブラリに実装して、プラットフォームごとに自前ライブラリ作りなおしてもええんやで

まぁあれだ、どうせ移植するときは自分でやるのが大半だろうし、自分で移植しやすいように書けばいい
916: 2014/03/02(日)23:13 AAS
>>914
車輪の再設計になってもいいなら。GPLとかでよければ誰かがやってることが多い
それだけみんなおんなじことを考える

そのへんを度外視すれば、悪いことではない
917: 2014/03/12(水)15:44 ID:Z46QAlOd(1) AAS
ちんこまんこにいれれば
ハッピー
918: 2014/03/12(水)16:28 ID:AZrAiCEG(1) AAS
ワロタ
919: 2014/03/12(水)16:42 ID:4AbABLKQ(1) AAS
【Z46QAlOd】の検索

PC等 [プログラム] C++相談室 part111
320 322-323
PC等 [プログラム] スレを勃てるまでもないC/C++の質問はここで 21
917
920: 2014/03/18(火)06:51 ID:B0h8c5Jx(1) AAS
スレ勃てずに肉棒勃てろ
921
(2): [age] 2014/04/21(月)10:53 ID:CQ39bA+0(1) AAS
.cpp は .h を #include で認識してるけど
.h は .cpp をどうやって認識してるの?

地味にこれが分らないから詳しく教えて下さい
922: 2014/04/21(月)11:03 ID:lfASPZAR(1) AAS
認識する必要なんてないだろ
923: 2014/04/21(月)11:13 ID:LiZ+Dtbr(1) AAS
プリプロセッサがウンタラカンタラ
924: 2014/04/21(月)12:03 ID:nKQE7Rc+(1/2) AAS
>>921
.hには.cppの場所記入しないだろ?
.cppが.hを呼んでるだけだから
925: 2014/04/21(月)22:38 ID:juP562jX(1) AAS
Visual Studio2008で作ったlibをVisual Studio2012で使うとエラーが出ます。
これをなんとかできませんか?
926: 2014/04/21(月)23:37 ID:nKQE7Rc+(2/2) AAS
エラーコピペ
927: 2014/04/22(火)18:46 ID:f8JeFUsV(1/3) AAS
error LNK1120: 3 件の未解決の外部参照
error LNK2001: 外部シンボル ""public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)" は未解決です。
error LNK2001: 外部シンボル ""public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)" は未解決です。
error LNK2001: 外部シンボル ""public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)" は未解決です。
error LNK2001: 外部シンボル ""public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)" は未解決です。
error LNK2001: 外部シンボル ""public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)" は未解決です。
error LNK2001: 外部シンボル ""public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)" は未解決です。
928: 2014/04/22(火)18:50 ID:f8JeFUsV(2/3) AAS
error LNK2019: 未解決の外部シンボル "__declspec(dllimport) public: struct std::_Iterator_base12 * * __thiscall std::_Container_base12::
_Getpfirst(void)const " (__imp_?_Getpfirst@_Container_base12@std@@QBEPAPAU_Iterator_base12@2@XZ) が関数
"protected: void __thiscall std::deque<short *,class std::allocator<short *> >::_Orphan_off(unsigned int)const "
(?_Orphan_off@?$deque@PAFV?$allocator@PAF@std@@@std@@IBEXI@Z) で参照されました。
error LNK2019: 未解決の外部シンボル "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)
が関数 "protected: bool __thiscall std::basic_string<char,struct std::char_traits<charclass std::allocator<char> >::_Grow(unsigned int,bool)"
(?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAE_NI_N@Z) で参照されました。
error LNK2019: 未解決の外部シンボル "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)
が関数 "public: class std::basic_string<char,struct std::char_traits<charclass std::allocator<char> >
& __thiscall std::basic_string<char,struct std::char_traits<charclass std::allocator<char> >::
assign(class std::basic_string<char,struct std::char_traits<charclass std::allocator<char> >
const &,unsigned int,unsigned int)" (?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z) で参照されました
929: 2014/04/22(火)18:50 ID:f8JeFUsV(3/3) AAS
error LNK2038: 'RuntimeLibrary' の不一致が検出されました。値 'MTd_StaticDebug' が MDd_DynamicDebug の値 'main.obj' と一致しません。
error LNK2038: 'RuntimeLibrary' の不一致が検出されました。値 'MTd_StaticDebug' が MDd_DynamicDebug の値 'main.obj' と一致しません。
error LNK2038: 'RuntimeLibrary' の不一致が検出されました。値 'MTd_StaticDebug' が MDd_DynamicDebug の値 'main.obj' と一致しません。
error LNK2038: 'RuntimeLibrary' の不一致が検出されました。値 'MTd_StaticDebug' が MDd_DynamicDebug の値 'main.obj' と一致しません。
error LNK2038: 'RuntimeLibrary' の不一致が検出されました。値 'MTd_StaticDebug' が MDd_DynamicDebug の値 'main.obj' と一致しません。
930: 2014/04/22(火)19:05 ID:yUACokf4(1) AAS
ライブラリとリンクするライブラリは、ライブラリのコンパイル時に使ったヘッダファイルと互換が有る奴使え。
最低でもMTとMDのオプションぐらい合わせろ。
ていうか(恐らく)バージョンの違うテンプレートライブラリでリンクしようとすんな。
931
(2): 921 [age] 2014/04/23(水)22:39 ID:qwt0uHqN(1) AAS
そもそも、なんで .h は必要なの?
.cpp だけじゃどんな問題があるの?
932: 2014/04/23(水)22:43 ID:U/+ppQ2B(1) AAS
他のcppに公開する必要ないなら必要ないけど
933: 2014/04/23(水)22:45 ID:V34cTVQA(1/2) AAS
>>931
多数の.cppを別々にコンパイルできます。
各.cppで、共通部分を.hで宣言しておけばコンパイルできます。

リンクするとき、まだコンパイルしていない.cppがあれば、エラーになります。
934: 2014/04/23(水)22:48 ID:V34cTVQA(2/2) AAS
Cだけならわかりやすいかも
C++は、いろいろ勉強しないとなぁ
935
(3): 2014/04/23(水)23:57 ID:8aJ+1hBq(1) AAS
C++はCより難しいですか?
936: 2014/04/24(木)01:49 ID:9wgxQ0KX(1) AAS
>>931
ここで、他のファイルのヘッダをインクルードすると、
返り値の型 f(引数の型);
というようにヘッダの内容が展開されて、
他のファイルにある、関数の型が事前にわかる(前方宣言)

よってここで、f()の実装を知らないのに、正しい型で使える

複数のファイルによる、並行・分散、開発・コンパイル時に、
ひとまず宣言だけあれば、実装がなくてもコンパイルできる
と同時に他人が、f()の中身を作る
937: 2014/04/24(木)02:34 ID:V/BmNssB(1) AAS
>>935
難しさの基準による
ちょっとしたことで低水準に踏み込まざるを得なくなるCと、ひたすら機能が多く複雑な言語であるC++
938: 2014/04/24(木)09:58 ID:mnsZs1hI(1/3) AAS
>>935
難しい
実際にC++を使ってる人間の間ですら
極端にイメージするものが違うのも一因
939
(1): 2014/04/24(木)11:22 ID:5ftIJb20(1) AAS
C++でプログラミング学んだ人は偏見に染まってる感があるね
C++こそ正当なオブジェクト指向言語だと思い込んでたり・・
940: 2014/04/24(木)15:55 ID:29x10p2Y(1) AAS
>>935
本物のプログラマたちが使う唯一のプログラム言語だよ
941: 2014/04/24(木)16:08 ID:mnsZs1hI(2/3) AAS
本物のプログラマは複数使い分ける
942
(1): 2014/04/24(木)18:53 ID:fAk9I7UT(1/2) AAS
>>939
その見解も偏見だと思うけどな
Cから入って、C++のクラスは特定の使い方を想定して砂糖まぶした構造体だと理解する人も結構居るだろ
だからと言ってオブジェクト指向の源流を辿りに行くかどうかは別問題だが…
あれだ、関数型言語を食わず嫌いしてる手続き型言語ユーザだって、そういう概念があることは知ってる的な
943: 2014/04/24(木)19:58 ID:AklGWvZ+(1) AAS
構造体に関数も入れれるのがクラスって感じだったな
944: 2014/04/24(木)20:06 ID:mnsZs1hI(3/3) AAS
モダンC++どころじゃないってか
945
(1): 2014/04/24(木)20:16 ID:E/S2XTBi(1) AAS
むしろ例外の実現が困難ではないか
946
(1): 2014/04/24(木)21:03 ID:tXCIarBm(1/2) AAS
>>942
その理解だと virtual の存在意義にしばらく悩むことになる

>>945
SjLj 以外の実装を知りたいものだ
947: 2014/04/24(木)22:04 ID:fAk9I7UT(2/2) AAS
>>946
え?関数ポインタの入った構造体へのポインタを砂糖振って使いやすくした奴でしょ、あれ。
やっぱ、C++流オブジェクト指向って使い方を想定して砂糖まぶした構造体じゃないですか。
// この理屈で行くと様々なプログラミング言語の機能が〜に毛が生えただけになりますが。
948
(2): 2014/04/24(木)22:43 ID:7Hb7UgBC(1) AAS
ある基底クラスを元に派生クラスを定義し
その派生クラスを別のクラスのメンバーとすることを継承って言うの?
949: 2014/04/24(木)22:56 ID:tXCIarBm(2/2) AAS
>>948
どちらかというと委譲という気が
950: 2014/04/25(金)08:28 ID:cnGbwKBG(1) AAS
>>948
派生クラスを定義する所までか派生じゃね?
951
(1): [948] 2014/04/25(金)14:12 ID:kZbj9xjz(1) AAS
ごめん
継承と委譲の違いを教えて
952: 2014/04/25(金)14:22 ID:zjeu9d2L(1) AAS
自分がパワーアップするか他人の力を借りるかの違い
953: 2014/04/25(金)15:25 ID:jPmvuOB6(1) AAS
社員を増やすかアウトソースするかの違い
954
(1): 2014/04/25(金)16:03 ID:uPsm+e3e(1) AAS
>>951
継承は例えば親クラスの ret_type func(Nanka* arg) を使いたかったら
以下のようにする
class Foo : public vritual OtherClass
{//以下省略

委譲は例えば他のクラスの ret_type func(Nanka* arg) を使いたかったら
以下のようにする
class Goo
{
private:
 OtherClass* m_pDelegator;
public:
 ret_type func(Nanka* arg){
  return m_pDelegator->func( arg );
 }
};
955: 2014/05/06(火)19:03 ID:2s3fltSJ(1) AAS
変数や関数の名前ってどうやって決めてる?
いちいち辞書を引いて、誰も読めない正しい英語を書くのはもううんざり
956: 2014/05/06(火)19:36 ID:wMsmsiA/(1) AAS
しばらくやってたら、ある程度使う単語は決まってくると思う
957: 2014/05/06(火)20:42 ID:Jq5zOSvx(1) AAS
そういうもんかな
返答ありがとう
958: ◆QZaw55cn4c 2014/05/06(火)23:06 ID:R4LFdeTL(1) AAS
>>954
委譲の方、Goo のコンストラクタにも何かしら要るんじゃないの
959
(1): 2014/05/06(火)23:18 ID:i07kpOvT(1/4) AAS
質問させてください。
以下のプログラムをグローバル変数を使わず同じ処理をさせるにはどうすればいいのでしょうか?
グローバル変数を使うのはあまり良くないと聞いたのですが、どうにもそのやり方が思い浮かびません。
簡単にでもいいので、よろしくお願いします。

#include<stdio.h>

int life=1000;
int Atk(int damageSatan){ // (勇者のライフ−被ダメ) を処理する関数
printf("魔王の攻撃。勇者は%dのダメージを受けた\n",damageSatan);
return life - damageSatan;
}
int Recover(int kaifuku){ // (勇者のライフ+回復) を処理する関数
printf("勇者は薬草を使った。%d回復した。\n",kaifuku);
return life + kaifuku;
}
void gennzai(void){ //現在のライフを書き出すだけの関数
printf("現在のライフ%d\n",life);
}

int main(void){
gennzai();
life=Atk(400);
gennzai();
life=Recover(50);
gennzai();
life=Atk(200);
gennzai();

while(1){};
}
960
(1): 2014/05/06(火)23:25 ID:XedF2XR6(1) AAS
本題と関係ないけど命名規則とコメントがクソい
961: 2014/05/06(火)23:31 ID:i07kpOvT(2/4) AAS
>>960
その辺は初心者ということで目を瞑っていただきたいです。
コメントはつけていなかったのですが、他人が見る時に有ったほうがいいと聞いていたので
適当ではありますが急遽付け足しました。
命名規則もおいおい勉強していきたいと思います。
962
(1): 2014/05/06(火)23:32 ID:WjTWSVZo(1/2) AAS
>>959
これじゃあかんの?
外部リンク:ideone.com
963
(1): 2014/05/06(火)23:43 ID:i07kpOvT(3/4) AAS
>>962
おお!わざわざこんなサイトまで使って直していただいてありがとうございます。
コピペしてビルドしてみたら全く同じ結果になりました。

各関数の引数にそれぞれlifeを入れたら良かったんですね!
書いていただいたソースをよく見て勉強してきます
どうもありがとうございました!
964
(1): 2014/05/06(火)23:47 ID:WjTWSVZo(2/2) AAS
>>963
結果が全てならいいけど
スマートかどうかは別問題だからね
965: 2014/05/06(火)23:51 ID:i07kpOvT(4/4) AAS
>>964
今のところはスマートさとか考えている余裕はありませんが、スマートな方が当然良いですよね
頑張ります
966
(1): 2014/05/10(土)15:00 ID:xgj3yjgV(1/2) AAS
プログラム初心者です。

ある数(scanfのやつ使って文字適当に決める)の100の位を出す問題なんだけどわからないです。例えば実行ファイルで12345の数を打ったら百のくらいは"3"ですみたいなのを出したい
967: 2014/05/10(土)15:01 ID:xgj3yjgV(2/2) AAS
>>966
書き忘れました。c言語です
968: 2014/05/10(土)16:43 ID:O2yhZ3ex(1/2) AAS
sprintfで10進文字列に変換して右から3文字目を出力する
だけじゃないの?
969: 2014/05/10(土)16:52 ID:O2yhZ3ex(2/2) AAS
外部リンク:codepad.org

やっつけテストプログラム
970: 2014/05/10(土)18:04 ID:ZLXGU8kN(1) AAS
ありがとうございます!そんなやり方があるとは…
色々な方法で求めることができるんですね
971: 2014/05/10(土)18:16 ID:8M00MQ+Z(1/2) AAS
1000で割った余りから100で割った余りを引いて100で割るとか
972: 2014/05/10(土)18:22 ID:nO3jje8t(1) AAS
(12345 / 100) % 10
973: 2014/05/10(土)18:55 ID:8M00MQ+Z(2/2) AAS
すげーあほなこと書いたわ
974: 2014/05/10(土)19:17 ID:DcycXvUU(1) AAS
コンソールアプリでカレントディレクトリを取得して、表示するってのをやりたいんだけど
どうしたらできる?
975: 2014/05/10(土)19:23 ID:vWx61Bp4(1) AAS
win32apiを呼べばできるよ
976: 2014/05/10(土)20:17 ID:KdDOFXms(1) AAS
POSIX準拠なら、getcwd()だろ。
977
(1): 2014/05/10(土)23:34 ID:SFO++ycj(1) AAS
こういうスレってGoogleの使い方分かってない奴が質問しに来るよな

ダブルクオーテーションでくくるのと
- マイナス記号でのフィルタくらい覚えろよ
978: 2014/05/11(日)08:17 ID:HBJbY+fy(1/2) AAS
>>977
そういう奴はどうやってこのスレに到達してんだろうな…
979: 2014/05/11(日)09:34 ID:NXvs+Rfo(1/2) AAS
外部リンク[aspx]:msdn.microsoft.com
> 現在のプロセスのカレントディレクトリを取得します。

外部リンク[aspx]:msdn.microsoft.com
> getcwd
> この POSIX 関数は使用されなくなりました。 代わりに、ISO C++ に準拠する _getcwd を使用します。
980
(3): 2014/05/11(日)16:45 ID:bK9D/oLg(1/2) AAS
FAQかもしれませんが、ググっても良く分りませんでした。
二次元配列を引数に持つ関数を作りたい場合、
以下のような感じにしたいのですが、これではエラーします。
最もお勧めの書き方を教えてください。
int func1(int **array, int rows, int cols)
{
int sum = 0;
for (int r = 0; r<rows; r++){
for (int c = 0; c<cols; c++){
sum += array[r][c];
}
}
return sum;
}

int _tmain(int argc, _TCHAR* argv[])
{
const int rows = 5;
const int cols = 3;
int array[rows][cols];
for (int r = 0; r<rows; r++){
for (int c = 0; c<cols; c++){
array[r][c] = r * 10 + c;
}
}
sum = func1(array, rows, cols);
printf("sum=%d\n", sum);
return 0;
}
981
(1): 2014/05/11(日)17:10 ID:5s3TJsCS(1) AAS
int func1(int**& array, int rows, int cols)
これでおk
982
(1): 2014/05/11(日)17:29 ID:NXvs+Rfo(2/2) AAS
>>980
外部リンク:ideone.com
983
(2): 2014/05/11(日)18:04 ID:HBJbY+fy(2/2) AAS
>>980
2次元配列はポインタのポインタではない。
1次元配列で長さをcols*rowsにしてrow*rows+colまたはcol*cols+rowでアクセスするとかが定番、かな。
984: 2014/05/11(日)18:51 ID:bK9D/oLg(2/2) AAS
みなさんコメントありがとうございました。
>>981
int**& に変更してもビルドできませんでした。もう少し解説お願いします。
>>982
良いアイディアですね。参考にさせてもらいます。
>>983
やはりそういう作戦しか無いのでしょうか?
985
(3): ◆QZaw55cn4c 2014/05/11(日)22:27 ID:VWJDXhYj(1) AAS
>>980
可変長な二次元の配列をそのまま渡すことはできない、C99 でも。
malloc() か alloca() を使うのが定番だと思う
alloca() 版:外部リンク:ideone.com
986: 2014/05/11(日)22:42 ID:i3EWh+tv(1) AAS
C++なんだから多次元配列クラスを作って参照渡しすればいいんじゃねえの?
987
(1): 2014/05/11(日)23:09 ID:oDuibFuc(1) AAS
文字列を数値に変換したいです

文字コードの意味をよく理解していないですが
例えば
char str[80];
int num;
scanf("%s",str)
num = str - '0';
aを入力した場合
97ー48で49がnumに入り
%dで出力したら49がでるのでしょうか。
ならばこれを%cで出力したら1?
今実行環境がありません;;
988
(1): 2014/05/11(日)23:13 ID:dGFiGG7Z(1) AAS
全角文字列を見せられ続けて死ぬ
989
(1): 2014/05/12(月)00:20 ID:4z9QgUFm(1/2) AAS
>>985
結果が違う…と思ったら、rowsとcolsの値が逆なのか
990: 2014/05/12(月)00:24 ID:DwqGETIp(1/2) AAS
>>989
ごめん間違えた‥
991: 2014/05/12(月)00:44 ID:DwqGETIp(2/2) AAS
>>987
外部リンク:ideone.com
992
(1): 2014/05/12(月)02:04 ID:8m8uDaT+(1) AAS
>>985
サンプルありがとうございます。参考になりました。
>>可変長な二次元の配列をそのまま渡すことはできない、C99 でも。
なるほど、そういう事なんですね。二次元配列は諦めて、
allocaで行きます。
993: 2014/05/12(月)11:53 ID:4z9QgUFm(2/2) AAS
>>992
外部リンク:d.hatena.ne.jp
に多次元配列の実装方法の例があるので参考にしてみるといい。

>>985 は「各行のデータを保持する配列と各行へのポインタを保持する配列に分けて確保」の方法
>>983 は「1次元配列として確保」の方法
俺は「各行のデータを保持する配列を連続した領域で確保」の方法が好き。
994: 2014/05/13(火)00:33 ID:1g/5f/R+(1) AAS
>>988
マジでそれアスペの手前だよ
何とかするのオススメ
995: 2014/05/13(火)00:39 ID:VL3miRAM(1) AAS
C/C++における関数呼出関係の把握をしたいので、
gnuglobalを使ってみたのですが、
callee( )がsrc.cppの100行目から呼ばれるという情報は取得できるのですが、
私が欲しいcallee( )がsrc.cppのcaller( )から呼ばれる、という情報は取得できません。
OSはLinuxです。

gnuglobalで私の欲しい情報を得る方法、もしくは
別のツールがあれば教えて下さい。
996
(2): 2014/05/13(火)00:43 ID:BZ1B9xOm(1/2) AAS
listやvectorなどにおいて

LIST.begin() <= LIST.end()
LIST.rbegin() <= LIST.rend()

これらがtrueであることは保障されてますか?
997: 2014/05/13(火)00:47 ID:wwrEnEuU(1) AAS
されません
必ず != を使いましょう
998: 2014/05/13(火)00:51 ID:LTUGkVaD(1/2) AAS
>>996
vectorは保証されていると考えて問題無いと思う。
listは保証されていない。
999: 2014/05/13(火)00:54 ID:BZ1B9xOm(2/2) AAS
レスありがとうございます
!= を使うようにします
1000: 2014/05/13(火)00:54 ID:LTUGkVaD(2/2) AAS
>>996
すまん、見間違えた。
rbeginとrendだったとは。
1001: 1001 Over 1000 Thread AAS
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s