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


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

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



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

577 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:19:04 ]
C言語って1から覚えるとなると難しいでしょうか?

プログラム関係の職(未経験可)どうしてもやってみたくて
就こうと思ってるんだけど理系学校出てないから無謀かな…

スレ違いだったら凄くすいません…

578 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:21:27 ]
まぁアレだ。プログラマ板で聞けばいいんじゃね

579 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:22:16 ]
>>577
どんな人も1から覚えるわけだが。

580 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:26:36 ]
パソコンとインターネット環境持ってるなら、ただでプログラミングの
勉強できるから、やってみればいいんじゃないか。

難しいかどうかは、人によるからなんとも言えない。

また、理系かどうかは思ったより関係ない。

ただし、数字アレルギーとか英語まったく読む気ないですぅとか言うなら、
やめた方がいいと思う。

581 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:00:31 ]
でも、ひでーアルゴリズムのコードを見ると、
理系ってのも大事だなあと思う。

582 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:06:11 ]
>>578
プログラマ板か…、予備知識無くここにカキコんじゃったからな…
次からそっちで聞いてみます

>>579
まぁそうなんですよね…<どんな人も1から
それを承知で聞いてみたんで

>>580
色々サイト巡りして知識付けようとはしてます
数字アレルギーは全く無いけど、英語が学校成績で常に2付近だったから
それが不安材料でヤバイってのは承知済み…orz

今度からプログラマ板でも行ってカキコしてみます

レスどうもでしたm(__)m



583 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:12:35 ]
プログラミング関係の英語ドキュメントなんて複雑な文法とか表現使ってないから学校の成績はほとんど関係ない

584 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:14:29 ]
俺も数学と英語は毎回赤点だったが今では必要なだけは出来るようになったぞ。
まあ相性と経験次第。

585 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:44:01 ]
>>581
理系でもひでー奴はいくらでもいる。

>>582
> 英語が学校成績で常に2付近だったから

>>580 をよく読んでくれ、英語ができないんじゃなくて、
「英語をまったく読む気がない」ならって書いてあるだろ。

君が必要に迫られたら何とかするタイプなら、心配はない。

>>583-584 が言うように、そんなに高レベルの英語が出て
くるわけじゃないし、しかもラッキーなことにここ数年で
機械翻訳がそれなりに進化して、技術文書ならなんとなく
意味が理解できるぐらいなってきたから、あまり心配しな
くても大丈夫だよ。



586 名前:デフォルトの名無しさん [2008/01/29(火) 23:44:45 ]
質問させてください。以下のソースをコンパイルしたところ、エラーが吐かれたのですが、その理由が良く分かりません。

#include <fstream>
#include <TCHAR.h>
#include <string>
#include <sstream>

using namespace std;
class zantei{
private:
  // 行動データ構造体
  class Action
  {
  public:
   int No; // 行動番号 (無しなら0)
   LPTSTR Type; // 行動種類 (無しなら0)
   LPTSTR Detail; // 行動詳細 (無しなら0)
   int Damage; // ダメージ(無しなら100)
   LPTSTR Color; // 色 (無しなら0)
   int X; // マルチプレイ用の遠距離行動(無しなら0)
  };
  Action action[32];
public:
  BOOL LoadAction();
};

587 名前:デフォルトの名無しさん [2008/01/29(火) 23:45:15 ]
エラー:
・error C2146: 構文エラー : ';' が、識別子 'Type' の前に必要です。
・以下、変数Typeが認識されないためと思われるエラー他たくさん(24個)

全角スペースや、Typeが実は予約語だったんじゃないかとも疑いましたが、
空白はすべて半角スペースとタブ入力でしたし、TypeをiやNumに変えても同じエラーが出ました。
…ということは、完全に知らないことか、思い至っていないことによるエラーだと思われる、ということまでは考えることはできました。
どなたかご教授いただけないでしょうか。

588 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:45:50 ]
ほほう
何というコンパイラで、何というメッセージが吐かれたのだい?

589 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:50:01 ]
コンパイラは、Visual Studio 2005 Academic Editionです。
エラーは、>>587以外もかくとすると…、ちょっと多いので、少々お待ちください。

590 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:51:06 ]
>>586
そのコピペは全角だらけやな

591 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:51:32 ]
このエラーだと、通常は Type の直前にある物がおかしいんだが、
tchar.h はインクルードしてあるしな・・・。
TCHAR が大文字でも何か起きると思えないし。

592 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:54:24 ]
もしかすると、
#include <windows.h>
が無かったりだったりとか?


593 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:54:26 ]
>>587
全角が入ってる。間違いない。絶対だ。

594 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:54:56 ]
エラー 2 error C2146: 構文エラー : ';' が、識別子 'Type' の前に必要です。
エラー 3 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
エラー 4 error C4430: 型指定子がありません - int と仮定しました。
エラー 5 error C2146: 構文エラー : ';' が、識別子 'Detail' の前に必要です。
エラー 6 error C4430: 型指定子がありません - int と仮定しました。
エラー 7 error C4430: 型指定子がありません - int と仮定しました。
エラー 8 error C2146: 構文エラー : ';' が、識別子 'Color' の前に必要です。
エラー 9 error C4430: 型指定子がありません - int と仮定しました。
エラー 10 error C4430: 型指定子がありません - int と仮定しました。
エラー 11 error C2146: 構文エラー : ';' が、識別子 'LoadAction' の前に必要です。
エラー 12 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
エラー 13 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
警告 14 warning C4183: 'LoadAction': 戻り値の型がありません。'int' を返すメンバ関数とみなします。

これよりしたのエラーは、LoadAction()の実装部分で吐かれているエラーです。

595 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:55:00 ]
>>592
そうか。撤回する。



596 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:55:42 ]
>>594
全角入りのソースでそれと同じエラーを見たぞ。

597 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:56:36 ]
全角はチェックしてるって書いてあるだろw

598 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:57:21 ]
まず、LPTSTR を char* にしてコンパイルは通るか?
それをチェックしてみようぜ。

599 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:57:31 ]
うーん、それじゃ、ちょっとソースをあっぷしてみますね

全角半角スペースを表示させても全角はは行っているようにみえないですが…
見落としかもしれないですし

600 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:57:43 ]
あ、いや、wchar_t* か。

601 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:58:03 ]
>>598
あ、はい、分かりました

602 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:01:02 ]
マルチバイト文字セットに変えてchar*型、一応w_char*型にしてみても、
同じエラーが吐かれました(確認したのは大体のエラーの見た目と数だけですが)

ソースをアップする作業に入りますね

603 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:01:27 ]
w_char じゃなくて wchar_t だぜ

604 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:17:01 ]
お待たせしました。
www.youlost.mine.nu/html999/upload.php
の、2968.zipです。

うp用に、配置しなおしたら、エラーが増えて涙目になってました(汗
他のアプリケーション用に書いてたものを、エラーはかれていたソースファイルを別プロジェクトでテストしながらなおそうとしたため、
プロジェクト別フォルダから読み込む方式になっています。
ヘッダがプロジェクトに入っていないのは、…えー、ごめんなさい、忘れました、試行錯誤の過程です。
いずれヘッダも戻すつもりではいました。
…ごめんなさい。

605 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:28:00 ]
zantei の最後にセミコロンがない。



606 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:29:01 ]
game.h の方のやつね。

607 名前:デフォルトの名無しさん [2008/01/30(水) 00:31:11 ]
「最大50文字で自然数を2つ入力し、その大小を求めるプログラムを作成せよ」
って問題なんですが、プログラム作ってみたけどわかりません
文字数が同じときの結果がめちゃくちゃになりました
誰かこのおしえてください(><)
cout << "文字数a:" << a_count << endl ;
cout << "文字数b:" << b_count << endl ;
if(a_count > b_count){
cout << "a>b" << endl ;
}else if(a_count < b_count){
cout << "a<b" << endl ;
}else if(a_count == b_count){
cout << "文字数が一緒なので一桁ずつ判断します" << endl ;
for(int i=0 ; i < a_count ; i++){
if(a[a_count-i] == b[a_count-i]){
cout << a[a_count-i] << "=" << b[a_count-i] << endl ;
}else if(a[Max_Length-i] != b[Max_Length-i]){
break ;
}
}
if(a[a_count-i] > b[a_count-i]){
cout << "a>b" << endl ;
}else if(a[a_count-i] < b[a_count-i]){
cout << "a<b" << endl ;
}
}
}

608 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:32:38 ]
a[a_count-i-1]

609 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:33:17 ]
(><)

610 名前:607 [2008/01/30(水) 00:34:08 ]
#include <iostream.h>
#include <iomanip.h>
const int Max_Length = 50 ; // 入力できる文字数の最大値
main()
{
char a[Max_Length] ; // 最初に入力する文字列
char b[Max_Length] ; // あとに入力する文字列
cout << "2つの自然数(最大50桁)を入力し、" << endl ;
cout << "その2数の大小を判定するプログラムです" << endl ;
cout << "数値を入力してください(最大50桁)" << endl ;
cout << "a>>" ;
cin.getline( a , Max_Length ) ;
cout << "b>>" ;
cin.getline( b , Max_Length ) ;
int a_count , b_count ; // 文字カウンタ
int i , j ;
a_count = 0 ;
b_count = 0 ;
i = 0 ;
j = 0 ;
// 文字数をカウントする
while(a[i] != '\n' && a[i] != '\0'){
a_count++ ;
i++ ;
}
while(b[j] != '\n' && b[j] != '\0'){
b_count++ ;
j++ ;
}

611 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:34:14 ]
iostreamマジ見にくい

612 名前:607 [2008/01/30(水) 00:35:02 ]
610が先で、607が続きです(><)

613 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:35:21 ]
入力できる文字数の最大値が 50 なら、バッファは 51 以上必要だね。

614 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:40:17 ]
std::lexical_compare使え

615 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:44:48 ]
すみません、元からこんなに早くリアクションがくれると思っていなかったので、
質問してすぐ風呂に入る予定だったため、
アップロードしてしばらく返事がなかったので、急いでお風呂に入っていたため、反応が遅れました。
申し訳ありません。

>>605-606
ありがとうございます!

セミコロンを直し、game.hをプロジェクトを追加し、gamemain.cppにgame.hをインクルードし、
gamemain.cppのクラス宣言部分をコメントアウトしてコンパイルしましたが、
結局
error C2146: 構文エラー : ';' が、識別子 'Type' の前に必要です。
がヘッダで吐かれてしまっています…
ここの部分を改善する、考えられるミスはありませんでしょうか…



616 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:50:24 ]
>>607
ヘッダファイルは <iostream.h> や <iomanip.h> ではなく
<iostream> や <iomanip> を使用する事が推奨されている。
cout とかが std::cout とかになっちゃうのが嫌なら、
この程度のプログラムなら using namespace std; と書いておけば std:: を略せる。
古いコンパイラなら知らんがね。

最大 50 文字なら、a のサイズは Max_Length + 1 にする。

cout の後 cin をする際には、cout を flush した方がいい。
cout << "a>>" << flush;
でないと、表示されない事もある。

getline は改行文字を格納しない。改行との比較は無駄。
50 文字以上入力したら次の cin.getline が失敗するのは無視してもいいのかな。宿題程度なら。
cin.clear(); して、改行まで読み飛ばすか構わず cin.getline するか・・・。

文字数カウントは strlen で可能だが、まだ習ってないのかな。
i と j という変数を作らなくても、直接 a_count と b_count 使えばいい。
while 文より for 文使った方がすっきりする。

i が 0 〜 a_count - 1 のループでは、
a_count - i は a_count 〜 1 になる。
これは意図する所ではないはず。
そして、a[Max_Length-i] != b[Max_Length-i] で何をやろうとしているのか分からないし、
このあたり全体的にちとおかしいと思う。
もうちょっとよく考えよう。

617 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:51:00 ]
>>615
TCHAR.h → tchar.h

618 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:51:46 ]
全角だろ。間違いない。全角なんだ。

619 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:53:17 ]
>>615
風呂の予定なんかどうでもいい。
しかも二回も風呂って書きやがって。
風呂はゆっくり入れ。


620 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:54:03 ]
インクルードガードがないのもすげー気になるが、
これだけのヘッダファイルだと BOOL は定義されてなくね?

621 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:54:56 ]
#include <cstddef>
#include <tchar.h>

622 名前:デフォルトの名無しさん [2008/01/30(水) 00:55:17 ]
>>616
たくさんありがとうございます!
考え直してもういっかい来ます

623 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:58:12 ]
>>615
とりあえず windows.h をインクルードしとけ。

624 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:58:29 ]
#include <iostream>

int main(void)
{
    const int max_str = 50 + 1;
    char str1[max_str], str2[max_str];    
    std::cout << "数値a入力>";
    std::cin >> str1;
    std::cout << "数値b入力>";
    std::cin >> str2;

    int len1, len2;
    for( len1 = 0; len1 < max_str; ++len1 ){
        if( str1[len1] == '\0' )
            break;
    }
    for( len2 = 0; len2 < max_str; ++len2 ){
        if( str2[len2] == '\0' )
            break;
    }


625 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:59:29 ]
    std::cout << "数値a 文字数:" << len1 << std::endl;
    std::cout << "数値b 文字数:" << len2 << std::endl;
    if( len1 == len2 ){
        std::cout << "文字数が一緒なので一桁ずつ判断します" << std::endl;        
        for( int i = 0; i < max_str; ++i ){
            if( str1[i] == str2[i] )
                continue;
            else if( str1[i] > str2[i] )
                std::cout << "a > b" << std::endl;
            else
                std::cout << "a < b" << std::endl;                
            break;
        }
    }else if( len1 > len2 )
        std::cout << "a > b" << std::endl;
    else
        std::cout << "a < b" << std::endl;

}

>>612
総書き直しすれば簡単



626 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:59:38 ]
>>617
提案ありがとうございます。すみません、でもとおりませんでした
>>618
エディタでトリプルチェックしましたが、やはり全角はありませんでした…
>>619
う…(苦笑)。すみません、お気遣いありがとうです。
>>620
windows.hをインクルードすれば定義されるでしょうか?
>>621
これは、BOOLのヘッダでしょうか。すみません、レスを先にして、試してきます。

627 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:00:18 ]
>>624
std::cin >> str1;

バッファオーバーフロー一直線!!!

628 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:02:38 ]
>>625
無茶苦茶やな・・・。

629 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:04:36 ]
>>621
試してみたら、エラーが13に減りました!
でも、
>>623
windos.hをインクルードしたら、もっと減りました(10)!

あとは、game.hに、using namespace std;をかけば、通りそうな雰囲気です。
ありがとうございました。
一応、最後に通るか確認してきますね。 

630 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:05:22 ]
>>629
ヘッダファイルで決して using しないと俺と約束してくれ。

631 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:08:29 ]
>>630
ごめんなさい。
gamemain.cppの方でした。
そして、通りました!皆さん本当にありがとうございました。そして、お騒がせしました!

ちなみに、ヘッダファイルでusingすると、どんな弊害がおきるのでしょう?
ちょっと考えれば分かるかもしれない気はするので、失礼な質問でしたらすみません。

あと、<TCHAR.h>より、<tchar.h>をお勧めになった理由もお教えいただけないでしょうか?

632 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:10:41 ]
本来 tchar.h という名前のファイルだから気になっただけ。

ヘッダで using して、色々インクルードしまくってると、
どこで using されているかさっぱり分からない状態になる。
using されては困る状況が現れた時、どの using が原因で困ってるか分からない。

633 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:12:45 ]
触っちゃダメよと言われてるヘッダファイルで using されてると泣くしかない。

634 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:16:32 ]
usingされているヘッダファイルをインクルードすると、
その名前空間がインクルードしたファイルにもusingされてしまう、ということでしょうか?

それとも、usingされてると、呼び出すときに、どの名前空間に所属しているのが分かりにくくなり、
数が膨大になったときに、エラーからたどりにくくなる、ということでしょうか?

…後者ですよね?

635 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:17:47 ]
両方。



636 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:21:19 ]
おあ、両方ですか。
前者も、ということになると、確かに本当にヘッダファイルでusingしてしまう(されてしまう)と、困ってしまいますね。
絶対にヘッダファイルでusingしないと、>>630さんと指きりしてお約束します。

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

637 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:24:53 ]
namespace isolate { // isolate using directives and declarations
#include "hoge.h" // has using directives or declarations
}
using isolate::Hoge; // declared in hoge.h, and want to use in this source

と無理矢理隔離してみたり。

638 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:28:40 ]
なるほど

639 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:46:32 ]
STLとATLではどちらを覚えたほうがいいですか?

640 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:50:28 ]
STL: どの環境でも使える
ATL: Windows でしか使えない

641 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:54:30 ]
STL: 誰も使ってない
ATL: 90%くらいの環境で使える

642 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:57:43 ]
両方覚えろよ

643 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 03:04:22 ]
Windowsでプログラミングするなら両方。
そうじゃないならSTL。

644 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 03:39:23 ]
>>642に一票

645 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 05:46:40 ]
てゆーか二者択一するようなもんじゃないだろwwwww



646 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 07:02:37 ]
関数内でnewでchar型の動的確保をしたいんだけど、他の全ての関数でもその宣言した
char型のを使えるようにするにはどうすればいい?

647 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 07:06:10 ]
ごめん文章が変だったので追記
要するに関数内でnewで宣言したcharをグローバル変数みたいな感じで使いたい

648 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 07:07:01 ]
外部変数にchar*型のポインタ用意してそこに代入すれば?

649 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 07:16:06 ]
>>648
ああそうか。それでいけたw
staticみたいなので全範囲で使えるようになるのないかなって探してたよ
ありがとう

650 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 07:31:28 ]
C++で開発をする際、他言語以上にいつもクラス設計で悩まされます

何かそこらへんを専門的に取り扱ったおすすめの本はないでしょうか?

651 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:11:37 ]
ATLにSTLのコンテナ使う仕掛けが合ったよな。

652 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:12:25 ]
有った

653 名前:デフォルトの名無しさん [2008/01/30(水) 15:30:11 ]
C言語の質問です。コンパイラはgccです。

while(fgets(buffer,filesize,fp)){
flug=strstr(buffer,str);
if(flug!=NULL)puts(flug);
}

これでなぜ出力文字列が検索できないのでしょうか。
教えてくださいませんか?

私の頭の中ではまず改行までのファイルの一行をbufferに読み込む。
その後、bufferに格納されている文字列とstr(検索したい文字列)を比較して検索。
その返り値がflugに入るので、NULLポインタ以外(失敗)のflugは出力。
これで検索した値からの文字列が出力されると思っておりました。

654 名前:デフォルトの名無しさん [2008/01/30(水) 15:40:40 ]
cin.getline
って文字列を入力させるときに使うの?
普通に50桁の配列に数字を入れたいときって
cin >> a[50]
でいいのかな??

655 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:43:25 ]
きもい



656 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:49:42 ]
>>653
その部分だけじゃわからん。
つーか、その部分に問題は無い。

657 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:50:58 ]
>>653
・flugという変数名がキモい
・filesizeは本当にbufferが指すバッファのサイズ?

buffer, filesize, str の宣言や初期化などを詳しく開示しましょう。


658 名前:デフォルトの名無しさん [2008/01/30(水) 17:03:00 ]
>> 654
getlineの使い方(ファイルからの一行単位の読み込み)
string line;
ifstream ifs(filename);
while (getline(ifs, line)) {
lineには一行がはいってる。
}

> cin >> a[50];
これでは配列aの51番目の要素に代入してるだけでは?



659 名前:デフォルトの名無しさん [2008/01/30(水) 18:54:56 ]
>>658
やっぱりだめなんですね・・
cin>>a[50]
だと50桁も入力できないんです
ありがとうございました

660 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:19:46 ]
例外がcatch{}の中では生存していると仮定して
関数でnew | malloc した文字列を返して
デストラクタでdelete[] | freeするのはありですか?

661 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:29:05 ]
言っている意味が分からん。
コードで書いてくれ。

662 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:47:17 ]
エスパーな俺が翻訳すると、

catch内で作ったインスタンスでもデストラクタは呼ばれるのか?

ではないかと。

663 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 19:59:41 ]
ふつうにわかるだろ

664 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 20:03:22 ]
>>660
文字列クラス返せば?

665 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:42:46 ]
>>659
「桁」が何のことか分からん
配列のサイズのことならfor引数足してまわせばいいだけ
50桁の数値(10の50乗とか)を扱いたいなら普通には無理



666 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:43:28 ]
引数じゃなかった添え字だ

667 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:27:02 ]
自作クラス内に、CreateWindowというメソッドを作りたいんですが、エラーが出てしまいます。
エラーメッセージを見るとどこかで定義されてるようなんですが、
クラス内は独立した名前領域で、同じ関数名を使えるのではないのですか?
どなたか、回答をお願いします。

668 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:29:10 ]
>>667
windows.h から同名のマクロが include されているのかも知れない

669 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:32:01 ]
回答ありがとうございます。
windows.hは確かにインクルードしていました。
windows.hをインクルードしないわけにはいかないし、
CreateWindowという名称を使うのはあきらめたほうがよさそうですね。

670 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:10:41 ]
すみません、質問です.
C++言語のソースを読んでいて、疑問に感じた所があります。
struct Hoge{
unsigned Wakeup(void) const { return wakeup_time; }
Hoge(Container& container);
~Hoge();
private:
unsigned int hoge_time;
Container& fuga;
};

これ構造体ですよね?クラスみたいですけど・・・。
本を読んだりしてクラスと構造体はまったく別物と認識していたんですが。
混乱しています。

671 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:12:12 ]
C++では同じ
違いはデフォルトのアクセスがpublicな事

672 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:19:54 ]
>>670
実装は同じだけど、考え方としては区別したほうが良いんじゃないかな、

673 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:21:02 ]
>>671
もうちょい違うっしょ。

674 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:21:53 ]
メンバ変数を public にした方が何かと便利そうなのは構造体に、
そうでないのものはクラスに。
そう考えると、自然と構造体を使う状況は限定される。

675 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:23:22 ]
>>673
デフォルトで public 継承になる、というやつのことか?



676 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:30:12 ]
テンプレート絡み。

677 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:32:36 ]
最近どこかで目にした流れだな






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

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

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