スレを勃てるまでもないC/C++の質問はここで 6at TECH
スレを勃てるまでもないC/C++の質問はここで 6 - 暇つぶし2ch1: ◆wJkgNpeM0Y
09/01/10 14:21:43
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
スレリンク(tech板)
スレを勃てるまでもないC/C++の質問はここで 2
スレリンク(tech板)
スレを勃てるまでもないC/C++の質問はここで 3
スレリンク(tech板)
スレを勃てるまでもないC/C++の質問はここで 4
スレリンク(tech板)
スレを勃てるまでもないC/C++の質問はここで 5
スレリンク(tech板)


2:デフォルトの名無しさん
09/01/10 15:07:21
いちおつ

3:デフォルトの名無しさん
09/01/10 15:11:30
カコログってなんか意味あるの?

4:デフォルトの名無しさん
09/01/10 15:40:33
意味があるかという問いかけをする者には何の意味もない
意味を見出す者だけがその存在を享受できる

5:デフォルトの名無しさん
09/01/10 15:54:39
レスの最後に # をつけるのって何か意味あるの?

6:デフォルトの名無しさん
09/01/10 15:56:52
# 別に最後とは限らないが……
意味を見出せない人には意味がない。

7:デフォルトの名無しさん
09/01/10 16:21:32
レスの中に # をつけるのって何か意味あるの?

8:デフォルトの名無しさん
09/01/10 16:29:09
あるよ。気取れる。

9:デフォルトの名無しさん
09/01/10 16:30:30
今までVSでコンソールのプログラムを作っていたのですが、GUIアプリを作りたくなりました。
どういった環境でつくればいいでしょうか?

10:デフォルトの名無しさん
09/01/10 16:32:08
> 意味を見出せない
勝手に自分基準の意味を付けられても、他人には通じないんだが・・・
ナンバーサインはナンバーサイン。何でつけたの?意味もなく
気分でつけるのはどうかと。んじゃ俺は・・・

♣でも付けようかしらん♪

11:デフォルトの名無しさん
09/01/10 16:39:24
>>9
VSで作れば良いんじゃないの?

12:デフォルトの名無しさん
09/01/10 16:39:34
まさか、わざわざ「ナンバーサイン」と言う御仁が本来の意味を知らないとも思えないのだが。
# 知らないならぐぐれとしか。

13:デフォルトの名無しさん
09/01/10 16:41:04
>>11
expresseditionですが、できますか?.netってやつをつかうんですか?

14:デフォルトの名無しさん
09/01/10 16:43:10
>>12
しかし、#ひとつであぼーんで切るわけでもなし、やくたいないことこのうえない。

15:デフォルトの名無しさん
09/01/10 16:43:28
>>13
ちゃんとしたの買えば?

16:デフォルトの名無しさん
09/01/10 16:46:20
>>15
買わないとできないのですか?

17:デフォルトの名無しさん
09/01/10 16:49:47
>>9
VC++、VSでも導入しておくがよろし
€ スレタイからして、スレ違いかもしれないが

18:デフォルトの名無しさん
09/01/10 16:50:19
>>16
いちおうできるよ

19:デフォルトの名無しさん
09/01/10 16:51:02
>>16
expressはwindows.hとか入ってないんじゃね?
gccやg++でも出来るけど、ここで聞いているくらいの人物だとどうだろ。

20:デフォルトの名無しさん
09/01/10 16:51:53
ATLとかMFCが使えないんですよね?
何か不都合がありますか?

21:デフォルトの名無しさん
09/01/10 16:52:34
>>20
ATLとかMFCを使おうと思わなければ問題は無い

22:デフォルトの名無しさん
09/01/10 16:52:35
>>19
入ってるぞ

23:デフォルトの名無しさん
09/01/10 16:53:06
>>19
2005は入ってなかったけど2008で最初からはいるようになったよ

24:デフォルトの名無しさん
09/01/10 17:38:43
えへ、乙

25:デフォルトの名無しさん
09/01/10 18:01:46
stdio.h は standard ioの略ですよね
そういった省略前のものが載ってる書籍、或いはサイトってありませんか?

26:デフォルトの名無しさん
09/01/10 18:22:31
略語には違いないけど、あまり気にするものじゃないと思うが・・・

Solarisならこういうのがあるよ
URLリンク(docs.sun.com)



27:デフォルトの名無しさん
09/01/10 18:48:17
C++を始めたいです、お勧めの環境を教えて下さい。
マニュアル本についても知りたいです。

28:デフォルトの名無しさん
09/01/10 20:47:34
auto_ptr や shared_ptr を使うためのヘッダって<memory>でOK?

29:デフォルトの名無しさん
09/01/10 21:18:58
関数のデフォルト値って宣言のところに書いておかないと駄目なの?
定義のところに書いて使おうとすると。「関数に 1 個の引数を指定できません」
ってエラーが出てきてコンパイルできません。
いつも宣言ではfunc(int,int)みたいな感じで書いてるから変数書かないといけないの不便に感じる

30:デフォルトの名無しさん
09/01/10 21:30:47
>>14
ム板にいながら。。

31:デフォルトの名無しさん
09/01/11 03:06:29
>>28
いや違う
shared_ptrはboostだから


32:デフォルトの名無しさん
09/01/11 03:18:07
>>28
あっているよ。

>>31
今はstd::tr1::shared_ptrという存在があって、それが<memory>に入っている(ことがある)。
ただし、ものによっては<tr1/memory>ということがある。

なお、<boost/tr1/memory.hpp>なら環境を識別して正しいヘッダをインクルードしてくれるほか、
持っていない処理系ではboost::shared_ptrのtypedefで対応という親切設計。
だったら、Boostを入れたならboost::shared_ptrを使えばいいという気もしてくるけど。

33:デフォルトの名無しさん
09/01/11 07:41:12
>>31-32
サンクス
boost入れてなくてVC++2008だと<memory>で宣言、定義されていたです

34:デフォルトの名無しさん
09/01/11 09:57:35
>>29
定義の方に書いたって、他のコンパイル単位には伝わらない。
だからこそ宣言を別ファイルにしてるわけで。

35:デフォルトの名無しさん
09/01/11 11:07:23
>>34
それは、「関数呼び出しの仕組み」がある程度わかっている人にはわかるけど
初心者はそこまで考えが回らないのよ。
デフォルト引数の仕組みが「呼び出し側で不足する引数を補うものだ」とね。

つまり、わからないから
呼び出される側で「引数がない時には補う処理」をしている、と思いがちなわけ。
なにしろデフォルト引数を含む関数は呼び出される側だから。

そういう発想を持っているということを前提にすると
>>34の内容では意図が伝わらないし理解が深まるわけでもないのよ。

36:デフォルトの名無しさん
09/01/11 11:15:48
あ、そうそう。

>>29
宣言で
void func(int, int = 100);
と宣言できるよ。

37:デフォルトの名無しさん
09/01/11 13:51:47
はじめまして、今Cを色々勉強してるんですけど。
実行すると以下の文章がでてくるんですが
何を言われているのか意味が分からないので
良ければ教えてください・・・

7 [main] kak 2444 _cygtls::handle_exceptions: Error while dumping state (p
robably corrupted stack)
Segmentation fault (core dumped)

と出てくるんですが、コンパイルではエラーがでずに、実行するとコレが出る状況です
ググっても、参考書で調べても全く分からないのでよければ教えてください。

38:デフォルトの名無しさん
09/01/11 13:58:00
スタック食いつぶしてる。でかい配列とってるとか?

39:デフォルトの名無しさん
09/01/11 13:58:25
>>37
ソース挙げろ

40:37
09/01/11 14:17:33
#include<stdio.h>

typedef unsigned long int ulint;

typedef struct{
ulint TANS[10];//*p//下の足し算して返す結果
ulint AA[10];//*s
ulint BB[10];//*t
}FANS;

void tas(FANS* ,FANS* ,FANS*);

int main(void){
ulint a = 0xf6736fd6; //a=4134760406
ulint b = 0xdb6db6db; //b=3681400539
ulint c = 0;
ulint A[1]={0},B[1]={0},C[4]={0};
int i,j,k,l;
i=j=k=l=0;
int *p,*s,*t;
FANS F={{0},{0},{0}};

for(;;){
A[i] = a & 0xffff;
B[i] = b & 0xffff;
a = a >> 16;
b = b >> 16;
if(i==1)break;
i = i + 1;
}

41:37
09/01/11 14:18:37
i = 0;

for(;;){
for(;;){
*s = k;
c = A[i] * B[j];
*s = c & 0xffff;
printf("AA[%d]>%x\n",k,*s);
c = c >> 16;
k = k + 1;
*s = c & 0xffff;
printf("AA[%d]>%x\n",k,*s);
tas(&F,&F,&F);
*t = *p;
for(l=0;l>5;l++){
*s = l;
*s = C[l];
}
i = i + 1;
if(i==2)break;
}
i = 0;
k = k - 1;
j = j + 1;
if(j==2)break;
}

42:37
09/01/11 14:19:44
i=8;
*p = i;
for(;;){
printf("%x",*p);
if(i==0)break;
i = i - 1;
}
return 0;
}

//足し算:関数
void tas(FANS *s, FANS *t, FANS *p){

ulint SUM[10]={0},KETA[10]={0};
int m;
m=0;

for(;;){
SUM[m] = s -> AA[m] + t -> BB[m] + KETA[m];
p -> TANS[m] = SUM[m] & 0xffff;
KETA[m+1] = SUM[m] >> 16;
if(m==4)
break;
m = m + 1;
}

}

こんな感じです。
知識が乏しいのですが今ある知識で32bit×32bitをやろうとしてます

43:デフォルトの名無しさん
09/01/11 14:21:58
>>40
アップローダつかうとか、考えられないだろうか・・・

44:37
09/01/11 14:22:51
>>43
すみません・・・次からそうします。

45:デフォルトの名無しさん
09/01/11 14:27:10
>>40
ポインタのsが初期化されてないのに、*sに代入されてないか?

あと、
for(l=0;l>5;l++){
これは、一回も回らないよな。

46:デフォルトの名無しさん
09/01/11 14:29:07
int *p,*s,*t;
の実態がない?

47:デフォルトの名無しさん
09/01/11 14:31:45
>>45さん
int *p,*s,*t;
FANS F={{0},{0},{0}};
これじゃポインタの中身pstを初期化できてないんですか???

>>46
int *p,*s,*t;
コレを構造体でmainとしたの関数で使いたかったんですが。
配列に入れて配列の足し算をしたくて、こう書いてみたんですが・・・

48:デフォルトの名無しさん
09/01/11 14:32:11
>*t = *p;
これ?


49:デフォルトの名無しさん
09/01/11 14:34:32
>>48さん
*t=*pで下のTANSの中身をAAに入れようと思ってそうやったんですが・・・

50:デフォルトの名無しさん
09/01/11 14:36:33
>>47
ulint *p,*s,*t;
FANS F={{0},{0},{0}};
p = F.TANS;
s = F.AA;
t = F.BB;

とかしとけばいいかな?


51:デフォルトの名無しさん
09/01/11 14:40:26
>>50さん
それでやってみると、エラーでなくワーニングで
assignment from incompatible pointer type
assignment from incompatible pointer type
assignment from incompatible pointer type
とでて、ポインタのタイプがおかしいって言われちゃいました・・・

52:デフォルトの名無しさん
09/01/11 14:41:02
ウォーニング

53:デフォルトの名無しさん
09/01/11 14:45:29
>>49
こんなかね
>int *p,*s,*t;

int pe,*p=&pe,se,*s=&se,te,*t=&te;


54:デフォルトの名無しさん
09/01/11 14:47:06
そもそも、ポインタである必要があるのか・・・

55:デフォルトの名無しさん
09/01/11 14:47:45
>>51
URLリンク(codepad.org)

とくに警告とかでないけど?

56:デフォルトの名無しさん
09/01/11 14:50:34
>>53さん
これで、tasの関数に飛ばすときはpe,se,teを飛ばせばいいってことですか??

>>54さん
最終的に無限桁にしたのでポインタと構造体がいいと進められたんです。

>>55さん
Cygwinだからでしょうか・・・

57:デフォルトの名無しさん
09/01/11 14:50:44
>>55
>ulint *p,*s,*t;
こっちの型を差し替えてないんだろ

58:デフォルトの名無しさん
09/01/11 14:51:55
>>56
ポインタの型をint*からulint*に直した?

59:デフォルトの名無しさん
09/01/11 14:53:01
そもそも、tasに引数が3つもあるのが意味不明。
tas(&F,&F,&F);としてしか呼び出してないし。

60:デフォルトの名無しさん
09/01/11 14:56:29
>>58さん
大分回るようになりました!!
けどやはりAA[2]まで進んだ後でとまりました・・・

>>59さん
tas(&F,&F,&F)でTANS、AA、BBをtasの関数に飛ばすってイメージだったんですが・・・

61:デフォルトの名無しさん
09/01/11 14:58:21
>>56
> >>53さん
> これで、tasの関数に飛ばすときはpe,se,teを飛ばせばいいってことですか??
tasとp,s,tは関係ないじゃん

62:デフォルトの名無しさん
09/01/11 15:01:03
ユーザがfor文と配列使って異なる数字を標準入力して出来た数列が出来たとき
奇数番目の合計をAに、偶数番目の合計をBに入れるっていうプログラム作りたいのですがどうすればいいのでしょうか…

とりあえず、
#include<stdio.h>
main()
{
int n,i,a[i]=100000;
scanf("%d",&n);
for(i=0;i<=n;i=i++)
{
printf("i番目");scanf("%d",&a[i]);
puts("\n")
} まで出来たのですが、同じ数字があったときにやり直しさせるのと、iが奇数番号の数の合計とiが偶数番号の時の合計を代入させるのがわからないです。
だれか、そこを教えてくれないでしょうか。

63:デフォルトの名無しさん
09/01/11 15:06:50
>>62
int n,i,a[i]=100000;

怖ぇ・・・たぶん
int n,i,a[100000];
って書きたかったに違いない

64:デフォルトの名無しさん
09/01/11 15:12:51
>>61さん
*p,*s,*t=TANS,AA,BBってリンクしてるイメージだったんですが違うんですか?
ポインタと構造体の関係が本当に分からなくて・・・すみません・・・

65:デフォルトの名無しさん
09/01/11 15:12:55
#include <stdio.h>

#define TBL_SIZE 100000

int main()
{
  int tbl[TBL_SIZE];
  int i, n;
  
  printf("入力する回数>");
  scanf("%d", &n);
  
  for (i = 0; i < n; i++) {
    printf("%d番目", i);
    scanf("%d", &tbl[i]);
  }
  
  return 0;
}

こんな感じだろ?

66:デフォルトの名無しさん
09/01/11 15:16:37
>>64
ちがうな。
そもそも、何をしてるプログラムだかさっぱりわからないが。

67:デフォルトの名無しさん
09/01/11 15:19:36
>>66さん
プログラムは32bit×32bit=64bitをするために
配列をつかって筆算みたいなやり方で答えを出そうとしてます。

AA+BB=TANSにしてBB=TNASでまたAA+BB=TNASを繰り返そうという考えです。

68:デフォルトの名無しさん
09/01/11 15:35:04
>>67
URLリンク(www5.airnet.ne.jp)

69:デフォルトの名無しさん
09/01/11 15:41:07
>>68さん
ちょwwwもろ回答がwwwww
参考にしながら頑張ってみます、一応今ある知識だけで組んでみたいんで。
ありがとうございます!

70:デフォルトの名無しさん
09/01/11 15:43:07
>>65
  for (i = 0; i < n; i++) {
    printf("%d番目", i);
    scanf("%d", &tbl[i]);
  }
の部分を
int jを定義しておいて
  for (i = 0; i < n; i++) {
    printf("%d番目", i);
    scanf("%d", &tbl[i]);
    for(j=0; j < i; j++ ){
      if( tbl[i] == tbl[j] ){
        printf("重複させんな氏ね\n");
        i--;break;
      }
    }
  }
にすればいいか


71:sage
09/01/11 16:29:32
>>70
ありがとうございます
あとはiが奇数時に配列に入れた数の和と、iが偶数の時に入れた数の和を比べて、多い方をAに入れ、Bに小さい方を入れるってしたいのですが
for文使っても、iが偶数の時と奇数の時に分けられないので困ってます。
なんか最初から間違いがあったみたいですがw
本題これでして…

72:デフォルトの名無しさん
09/01/11 16:41:05
>>71
・宿題ならこちらへ
C/C++の宿題を片付けます 121代目
スレリンク(tech板)
・sageはメール欄に
・i%2でiを2で割った余りという意味。0と1で場合分けすれば偶奇判定できる

73:デフォルトの名無しさん
09/01/11 16:51:39
Cの規格書が高いからpdfを手書きで写しているのですが、「写本」という文字をシードにして乱数を生成する高速な方法を教えてください。

74:デフォルトの名無しさん
09/01/11 16:53:02
pdfを見ている状況なら、保存すればいいじゃん。
# pdfとしてが無理ならキャプチャしてもいいし。

75:デフォルトの名無しさん
09/01/11 17:19:16
>>73
char s[] = "写本";
とかやって、s[0]からs[3]までの値をシードにして、ってこと?

76:デフォルトの名無しさん
09/01/11 22:42:12
>>72
むしろそこの自然数が書かれたカードがうんたらゲームを自分で作ろうとしてて
部分的な質問を投げるようになったんだと思う。
宿題スレは丸投げ用だと思うからこっちでもいいんじゃないのかな

77:デフォルトの名無しさん
09/01/11 22:44:15
誰か>>73をお願いします。

78:デフォルトの名無しさん
09/01/11 23:17:25
>>77
75以上の答えはないだろ

79:デフォルトの名無しさん
09/01/11 23:27:12
ありがとうございました。
何とか間に合いそうです。

80:デフォルトの名無しさん
09/01/12 02:24:40
まだナンバーサイン野郎は意味も無く、不適切なナンバーサインの使い方をしているの?
♠はトランプのスーツの中で最強ですけど

81:71
09/01/12 02:37:44
本当すいません…ここしか頼るとこなくて…
とりあえず71さんのヒント使って作ってみたのですが

とりあえずint gを定義して
for(g=0;g<0;g++){
if(g%2=0){
x=x+a[g];
else{
y=y+a[g];
}
}

if(x<y){
printf("先手の点数=%d\n",x);
printf("後手の点数=%d\n",y);
else{
printf("先手の点数=%d\n",y);
printf("後手の点数=%d\n",x);
}
}
printf("先手の勝ち");

てなったんですけど、でもこれじゃあ、勝ち負けと先手が勝ちって表示されるのが連動してなくてなんか不安なんですよね…
あとは引き分けの時に、数列の端と端を比べて大きい方をとるってやつが今模索中でございまして、ヒントくれればいいなと


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch