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


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

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



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

792 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:51:42 ]
>>787
ファイルはあります。

>>789
"d:\\test.txt"ではsuccessとなります。

793 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:52:33 ]
だったらロケール設定して見るんだ。

794 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:53:40 ]
>>791
ソースコードに
// あいうえお
と入力して、テキストエディタでエンコードを確認しましたがシフトJISでした。


795 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:57:55 ]
>>793
setlocale(LC_ALL, "");

で出来ました!
ありがとうございました!

796 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 22:36:43 ]
向こうで速攻でロケールについて指摘されているのを無視するからだ・・・

797 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:16:36 ]
なんで無知の身でもらった回答を勝手に「選別」するんだろうな。

798 名前:デフォルトの名無しさん [2008/03/11(火) 23:17:43 ]
自分クラスのアドレス(実際はthis)をstatic_castで上位クラスにキャストしなおして、上位クラスのメソッドを呼ぼうと思ったのですが
segmentation faultになります。
baseclass::method();
と書いて目的は達成できたのですが、segmentation faultになる理由が分かりません。

#あと、このスレのタイトルが
#【初心者歓迎】C/C++室 Ver.50【環境依存OK】
# ってなってるけど、なんか何度かVer.50がくりかえされているような気がするのは自分だけ?


799 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:39:18 ]
だからコードを晒せと。スラッシングが起きてるんじゃねーだろーなー

800 名前:デフォルトの名無しさん [2008/03/11(火) 23:51:29 ]
どこで聞けば良いのかわからなかったので、
環境依存OKということでここでお伺いします。

linuxThreadsでは、あるスレッドでsetpriority()を呼ぶと
親スレッドの優先度は変化しないと思いますが、
NPTLでは同一のPIDならすべて変化するのでしょうか?




801 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:52:56 ]
>linuxThreadsでは、あるスレッドでsetpriority()を呼ぶと
>親スレッドの優先度は変化しないと思いますが、
そうは思えないが。

802 名前:778 mailto:sage [2008/03/11(火) 23:54:27 ]
レスくださった方々ありがとうございます。
noteはなんとなく分かったのですが、candidatesは調べてもわかりませんでした。
candidatesは何のことなんでしょうか・・。
どなたかご教示頂けると幸いです。

803 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:57:01 ]
ヒント:複数形

804 名前:デフォルトの名無しさん [2008/03/11(火) 23:57:11 ]
>>799
すいません。

class base {
public:
virtual void resize(){}
};
class deri : public base {
public:
virtual void resize() {
#if 1
base* tmp = this;
tmp->resize(); // ここでseg fault
#else
base::resize(); // 問題なし
#endif
}
};
です。

805 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:58:21 ]
>>804
無限再帰でスタックオーバーフローだな。

806 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 23:59:48 ]
・base::resize() 静的に呼ぶ
・tmp->resize() 結局virtualたどってderi::resize()にくるから無限再帰

807 名前:デフォルトの名無しさん [2008/03/12(水) 00:00:30 ]
>>801
即レスどうもです!!
そうなんですか?
manにはプロセスの優先度を設定すると書かれてありました。
linuxThreadsはPIDを共有しないので変化しないと思ってたのですが。
PIDは違うけどプロセスは同一ということでしょうか?


808 名前:デフォルトの名無しさん [2008/03/12(水) 00:07:58 ]
>>805-806
ありがとうございます。tmp->resize()の前にログをいれて再帰していることを確認しました。
再帰というのは全然考えてなかったです。
助かりました。

809 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 00:21:21 ]
>>802
../source/memo.h:15: note: candidates are: MyFrame::MyFrame()
../source/memo.h:15: note: MyFrame::MyFrame(const MyFrame&)

俺も英語は苦手だがせっかくネット使えるんだから有効活用しようぜ。
「MyFrameが複数の候補がある」という内容。
コード上でどちらの処理を使うかがコンパイラに判断できないからだ。


810 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 00:23:45 ]
エスパーすると、直前に
no matching function for call to 〜
とか云われたはず。コードで書いてある引数に
マッチする関数の宣言がなかったって話。



811 名前:778 mailto:sage [2008/03/12(水) 01:14:43 ]
>>803さん 809さん 810さん

レスありがとうございます。
なるほど、普通に「候補」でよかったんですね。
なんかプログラミングの専門用語でcandidatってのがあるのかと勘違いしてました。

ありがとうございましたm(_ _)m

812 名前:デフォルトの名無しさん [2008/03/12(水) 01:16:15 ]
正常なSJISならば出現しない番号0-255ってありますか?

813 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 01:24:27 ]
>>812
日本語でおkと言いたいが、
windowsなら スタート → すべてのプログラム → アクセサリ → システムツール → 文字コード表
を見てみては?

814 名前:デフォルトの名無しさん [2008/03/12(水) 02:02:04 ]
すみません 番号を教えてください

815 名前:デフォルトの名無しさん [2008/03/12(水) 02:10:10 ]
新聞、2ちゃんなどを1ギガほど計測したところ次の通りでした
下位のものは間違ったSJISの番号でしょうか?

26番15475回
30番17423回
22番18440回
127番18931回
25番19273回

上位
32番45338056回
130番93045087回

816 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 02:11:38 ]
スレ違い

817 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 02:51:43 ]
一度定義したクラスのデータメンバやメンバ関数をあとで追加することってできないのでしょうか?

例えば、40行目で
clsss aaa {
public:
void sample1 ();
}

と定義したクラスのデータメンバとメンバ関数を、
80行目で

class aaa {
public:
int xxx;
void sample2();
}

みたいな感じで、追加する感じです。

上のように書いたのをコンパイルしようとしたらエラーが出たのですが、
すでに定義したクラスの機能を拡張するにはやはり継承しなければいけないのでしょうか??


818 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 02:52:26 ]
はい、そうです

819 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 05:03:16 ]
>>817
40行目の定義を削除すればいいじゃん。

820 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 05:44:14 ]
環境はLinux/Windowsの両方です
HDD残量を取得したいのですがどのようにすればよいのでしょうか?

環境に関係なくとる方法はあるのでしょうか?
もしなければ,どのようにして取得すればよいか教えていただきたいです.



821 名前:デフォルトの名無しさん [2008/03/12(水) 06:16:19 ]
環境別に分ける

822 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:48:11 ]
>>811
だから、英単語の意味を調べたら単に「候補」って出てくると思うのだが……

823 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:49:31 ]
>>820
そもそも、どのディスクの残量を知りたいのかね。

824 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 07:55:39 ]
Amazonを使ってる方へ

Amazonのほしい物リストで、個人情報(氏名等)がもれる場合があります。
ほしい物リスト(ウィッシュリスト)が未登録ならば、問題ありません。
しかし、自分のアカウントを調べた方が良いです。
1505953.blog76.fc2.com/blog-entry-340.html

祭り中?
【祭】Amazonウィッシュリストで個人情報ダダ漏れ中★6
namidame.2ch.net/test/read.cgi/news/1205262805/



825 名前:817 mailto:sage [2008/03/12(水) 11:28:26 ]
>>818 さん >>819さん
レスありがとうございます。

40行目のやつは、実際今作ってるプログラムだとincludeで読み込んでるライブラリで定義していまして、
消して下で書き直すのもライブラリ自体をいじるのもなんか好ましくないような気がしまして。

やはり継承するしかなさそうですね。というかむしろライブラリのクラスは継承してから使うものなんですかね。
ありがとうございましたm(_ _)m


826 名前:デフォルトの名無しさん [2008/03/12(水) 13:36:09 ]
すれ違いといううことでここに移ってきたんですが、
stlの使い方について質問です。今リストの中に1,2,4,8,16,32,64
と入っているんですが、"erase" を使って5番目の数字を削除して中身を表示し、
その後に3番目の数字を削除して表示。 そして、"insert"を使って3番目と4番目の
数字の間に7を入れて表示という感じにするにはどうしたらいいんですか?
osはubuntuでg++を使っています。 
#include <iostream>
#include <iterator>
#include <list>
using namespace std;
int main(){
list<int> mylist;
for(int i=1; i<=64; i *= 2)
mylist.push_back(i);
cout<<endl;

list<int>::const_iterator itr1;
for(itr1 = mylist.begin(); itr1 != mylist.end(); itr1++)
cout<< *(itr1)<<" ";
return 0;
}

827 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 13:47:08 ]
質問です
引数つきコンストラクタから、デフォルトのコンストラクタを呼ぶことはできないでしょうか?
Javaではできたので、C++でもできないものかと思っているのですが

CHoge::CHoge()
{
// 共通の初期化がだらだらと
}

CHoge::CHoge(int type)
{
// CHoge()で共通の初期化を呼び出したあと、色々やりたい
}

CHoge::CHoge(const char *psz)
{
// CHoge()で共通の初期化を呼び出したあと、色々やりたい
}

828 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 13:56:34 ]
初期化処理をまとめたプライベート関数を作ればよろし

829 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 13:58:35 ]
>>827
ないよ。
そんなことできたら初期化子が重複するから。

830 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 13:59:16 ]
>>828-829
ありがとうございます
初期化プライベート関数つくるとします




831 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 14:01:57 ]
>>826
>"erase" を使って5番目の数字を削除して中身を表示し
削除したら表示できないだろ。
削除するだけでいいなら、文字通りerase()を使えばいい。
# erase(), insert()は引き数にiteratorを必要とするが、
# advance()を使えば何番目を指すiteratorを作れる。

832 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 14:02:09 ]
>>827
C++でもコンストラクタからコンストラクタを呼び出すことは文法違反ではない。

CHoge::CHoge()
{
// 共通の初期化がだらだらと
}

CHoge::CHoge(int type)
{
  CHoge(); //一時オブジェクトの生成!!!!!
  
  //いろいろな固有の処理
}

しかし、こんなコードを書いたならば想像してるとおりにはならないだろう。
こういう場合C++では、共通化したい処理をまとめた
(恐らくはprivateな)メンバー関数を別に用意する。

void CHoge::init();

CHoge::CHoge(int type)
{
  init(); //共通の処理
  
  //いろいろな固有の処理
}

833 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 14:10:49 ]
勇気を出して変えてごらん
HogeをMoeに変えてごらん
そうすれば世界も変わって見えるんだ


834 名前:デフォルトの名無しさん [2008/03/12(水) 14:20:50 ]
>>831
"erase" を使って5番目の数字を削除して中身を表示
1,2,8,32,64
その後に3番目の数字を削除して表示
1,2,32,64
そして、"insert"を使って3番目と4番目の数字の間に7を入れて表示
1,2,32,7,64
というう感じにしたかったんです。


835 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 14:29:04 ]
>>834
その通りに書けばいいだろ。

www.wakhok.ac.jp/~sumi/stl/header/vector.html

836 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 15:13:26 ]
>>834
>831に書いた内容の何が気に入らないんだ?(:;
つーか、4はどこに消えたんだ?

837 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 15:27:12 ]
マクロでクラス生成をしたいのですが、任意のクラス名を受け取る方法はないですか?
#define GENERATE_CLASS class X {...} // マクロを呼び出す側からXの部分を任意に指定できるようにしたい

838 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 15:30:49 ]
#define GENERATE_CLASS(x) class x{hogehoge

ではないの?

839 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 15:48:28 ]
template使えば?

840 名前:837 mailto:sage [2008/03/12(水) 15:58:32 ]
>>838
その方法はGENERATE_CLASS(Hoge)と使った時、Hogeの部分でエラーが出た気がしたのですが、
今もう一度試してみたらできました。(別の部分で間違いがあったようです)
簡単すぎること聞いて申し訳ないです。

>>839
template引数のバインドができない関係で、マクロでクラスを書くことになってので、templateでは無理なのです。



841 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 16:04:21 ]
>>840
まさかとは思うが、業務上のプログラムを2ちゃんで質問しながら書くなよ。

842 名前:837 mailto:sage [2008/03/12(水) 16:06:27 ]
>>841
趣味グラマです。

843 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 17:21:29 ]
Visual C++ 6.0の課題で分からないところがあるので助言お願いします。

「main関数において、返却値の値によって表示の方法を変えよ」
とあるのですが“表示の方法を変える”とはどのようなことをすれば良いのでしょうか?
返却値は1、2、3の三つです。

844 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 17:32:05 ]
printf("%dがきたー\n", henkyakuchi)

845 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 17:33:57 ]
変化球がきたに見えた

846 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 17:43:04 ]
>>844
ありがとうございます
とりあえずその方向でやってみます

847 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:06:09 ]
>>843
もし問題文が
「main関数において、返却値の値によって表示の方法を変えよ」
だけなら、回答はこうだ
「日本語でおk」

848 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:12:25 ]
うむ、出題の意味がわからん。
そして宿題は宿題スレへ。


849 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:12:32 ]
こういうことか!

switch(henkyakuchi) {
case 1: printf("きたー"); break;
case 2: puts("きたー"); break;
case 3: cout << "きたー"; break;
}

850 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:18:14 ]
>>843
switch (henkyakuti) {
case 1:
printf("0"); break;
case 2:
fputs("0", stdout); break;
case 3:
putchar('0'); break;
}




851 名前:850 mailto:sage [2008/03/12(水) 18:18:48 ]
ネタかぶったorz

852 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:35:01 ]
>>847
まあ全文じゃないけどな

>>848
スマン、ヒントが欲しかったんだ

>>849,850
そういうことなのか?

853 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:40:31 ]
全文載せないでまともなヒントあげれると思ってんの?
載せるなら宿題スレ池だが

854 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:45:01 ]
>>853
お前>>843読んでないだろ

855 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:11:36 ]
>>843 の文章だけでは題意が読み取れない
これが分かっただけでもいいんじゃないか?

っつーか問題の意図は出題者に聞けよ

856 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:24:25 ]
>>852
問題文を他人に意味が伝わるように要約できない=テメーが問題文の意味を理解していない


857 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:00:24 ]
>>856
理解できてないから質問してるんじゃないか?

858 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:04:09 ]
理解できてないなら要約すべきではないわけで
>>852 みてイラっときた俺はたぶん短気なんだろう

859 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:04:20 ]
まとめると、質問するなら要約するなってことだな

860 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:19:52 ]
ある変数の値に応じて特定の処理をさせたいのですが、
値のパターンがかなり多い場合、
switch〜case文とif〜elseif文ではどっちのほうが処理が早いでしょうか
ひとつの値に対しひとつの処理なので、どちらの文を使っても同じように処理できます
(switch〜caseの場合はbreakで抜けるので)

あんまり多い場合、関数の配列でも用いた方がいいのかもしれませんが……



861 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:23:18 ]
試せるなら実測しろ
試せないならどっちを使っても一緒。気にするだけ無駄。

862 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:27:22 ]
switch 文にはジャンプテーブル最適化というのがあってだな、
その最適化が効けば
case ラベルの位置のアドレスの表を使ってジャンプするようになる。

863 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:33:39 ]
しかし分岐予測の効き方を考えるとジャンプテーブルの方が遅い場合もある
実測して比べるしかない

864 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:37:03 ]
多くの場合においてある1つの条件に集中するような場合は
それだけ if して、その他を switch にするとか?

865 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:37:40 ]
>>860
一般的にはswtichが効率的。
なぜならswitchはジャンプテーブルなり、各個比較なり、
コンパイラが最適なものを選択すると期待できるから。

866 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:13:05 ]
>>857
問題が理解できないのなら、問題の意味を教えてくれと問うべきだし、
問題が理解できているのなら、その解決策に関して問うべきだし、
解決策があるていど目星が付いてるが、ひっかかる所があるならば、その点を問うべきだろ。

自分が理解できない問題を一部だけ示して教えろなんて、どんなバカだ。

867 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:14:30 ]
処理を後々追加する羽目になる可能性があればswitchの一択でしょ。


868 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:23:08 ]
顔真っ赤なやつがいるな
いいかげんその話題は終われ

869 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:26:07 ]
上と似たようなどうでもいい質問なんだけど

bool z = a() && b() && c() && d() && e();

みたいな文があったとき、a()から順に、最悪e()まで調べていくと思う。(&&演算子は必ず左から調べるよね
ということは、e()が最も高確率でfalseを返す場合、e()を一番左に持って行った方が効率よくなりますよね?

あと↑が正しいとして、コードの見栄や保守を考えて順番を変えたくないって場合、どうしますか?

870 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:30:01 ]
あ、でも関数だから、ショートサーキットな評価は行われないのか…
書いた後に気づいた…



871 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:39:01 ]
>>868
「その話題」がどの話題かわからないけど、「顔真っ赤」とか刺激してる時点で
たぶん君も「終わらせない気満々」なんだよね。
終わらせようとしているのに同時に刺激してるなら、馬鹿丸出しだし。

872 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:39:13 ]
>>870
> 関数だから

なんでそう思うんだ?

873 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:39:48 ]
>>870


874 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:45:30 ]
>>872
関数が実行されるかされないかによって、プログラムの挙動が変わることがあるから、って思った。
よく考えてみれば、 if (ptr && ptr->func()) とか書きますね・・・

875 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:49:23 ]
> if (ptr && ptr->func())

これptrがNULLでも安全なの?

876 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:51:53 ]
871
これでも舐めておちつけ(´・ω・`)つ〔きゃらめる〕

877 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:55:45 ]
>>875
ptrがNULLなら&&を通らないから大丈夫じゃない?

878 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:56:26 ]
>>875
ptrがNULLの場合でも問題ない。
でも、ptrがNULLじゃなくても変なとこ指してる可能性は忘れるな。
それだけ見て本当の意味で安全かどうかはなんともいえない。


879 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:57:29 ]
&&の評価順は左からと決まっている。

880 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:02:46 ]
>>869
前半部分が正しい。
効率が良くなるが順番を変えたくない場合は個人的にケースバイケース。
効率が求められる部分ならば変更かける。(実測して効果があるかも試して)
とはいえ、関数内に副作用があったり、今後そうなる可能性だってあるから
基本的に短絡評価をあてにした効率は求めないようにしている。

>>875
NULLなら短絡評価でptr->func()は評価されないため問題なし。



881 名前:デフォルトの名無しさん [2008/03/13(木) 00:49:53 ]
make && make installみたいなものだよな。

882 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 02:25:29 ]
>>869
割と適当に答えるけど、通常見かける && や || は短絡評価をあてにして

 cond && (cond が非ゼロの時のみ可能な処理)

 (非ぜロの確率が低い式) && (非ゼロの確率が高い式)
あるいは
 (軽い処理) && (重い処理)
または
 (先に必要な副作用のある式) && (その後にのみ評価されるべき式)
等、

すでに正しい順序で記述されているので、並べ替えは不可ということが多いように思う。
もしそうでない場合はコードの質を疑っちゃうから、もしちゃんと動いているならなるべく
触らない⇒やはり並べ替えないだろうなあ。

883 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 03:13:39 ]
#include <studio.h>

int main(void)
{
  puts("ローゼン「ローザmstcを入れて」");
  puts("「次に、目玉を入れて」");
  puts("真紅「ぎゃあああああああ」");
  puts("ローゼン「あ、順番間違えた」");
  return 0;
}

コンパイル通りません><

884 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 03:21:04 ]
>>883
そうですね。ではおやすみ。

885 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 03:39:10 ]
>>883
studio

886 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 05:08:18 ]
質問です。現在猫でもわかるC言語プログラミングというので勉強しているのですが、
関数の再帰呼び出しというところで
#include<stdio.h>
int main()
{
static int i = 1;
if (i <= 10) {
printf("i = %d\n", i);
    i++;
main();
}
return 0;
}
というのがあり、これを実行すると
i = 1
i = 2
・・・
i = 10
になるとなっていて、試してみたところ確かにそうなるのですが、
main内でmainをもう一度呼び出した際に
static int i = 1;
の部分でなぜ再度 i に1が代入されないのでしょうか?

初心者過ぎてバカかと思われるかと思いますが
ご教授願えるとありがたいです。

887 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 05:17:07 ]
static i = 1; //宣言かつ初期化

static i; //宣言のみ
i=1; // 代入

初期化と代入は違うのです。
下のように書き換えてみるとどうなります?

888 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 05:20:28 ]
ごめん、書き込んですぐだけど、そんなプログラムまわすべきじゃないね。
延々回り続けちゃう。

static int i=1;
static int j;
j=1;
if(i<10){
printf("%d %d",i,j);
i++;
j++
main();
}
return 0;
}

まわすならこっち。

889 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 05:23:47 ]
>>886
>main内でmainを
ml.tietew.jp/cppll/cppll_novice/article/1584

>static int i = 1; の部分でなぜ再度
ttp://d.hatena.ne.jp/unageanu/20070826

890 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 05:27:30 ]
>>885
わかった!ありがとう!



891 名前:886 mailto:sage [2008/03/13(木) 05:59:43 ]
なるほど、初期化というのが代入とごっちゃになって、
ちゃんと理解できてなかったことがよく分かりました。

887さん、889さん、ありがとうございました。

892 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 16:35:10 ]
vector型で
push_backの反対で、先頭に要素を追加するには
どのようにすればいいのでしょうか






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

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

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