aris-wiz の回答履歴

全480件中241~260件表示
  • 起動後直に実行するコードはどこに?

    初心者です。 VC++6.0でAppWizardを使って単純なダイアログベースのスケルトンが出来ます。 通常はこの中にボタンなどを配置しイベント処理するのですが イベントではなくプログラムが起動しフォームが表示されたら直ちに実行させる様なコードはどこの位置から書き込めば良いのでしょうか。 たとえばタイマーをスタートさせデジタル時計を1秒毎に連続で表示させる様な事をしたいのですが今一書き込む位置がわかりません。 よろしくお願いします。

    • yzm250
    • 回答数5
  • C言語プログラムの品質をチェックする方法

    アバウトな質問で恐縮なのですが。 ソフトウェアの品質をチェックする良い方法を模索しています。 ツールは基本的に無償のものを探しています。 例えば、プログラムのコードをチェックしてカバレッジや複雑度の測定が出来るものや、プログラムを検証する為のテストデータを自動生成するものや、コードからドキュメントを自動生成してコードを見える化してくれるものなど。 バグ密度から品質を判断する方法もあると思います。 いろんな面から見て、ソフトの品質をチェックするツールを探しています。 どういう観点でも構わないのですが、良いツールがあればご教示頂きたいと思います。

  • ファイルからの読み込み

    fscanfを使ってファイルの中身を読み込みたいのですが、ファイルの中身の長さが統一されていない場合どうしたらよいでしょうか? 読み込むファイルの中身 A d 1 B 3 2 G 5 1 2 B 6 G H 5 2 5 今まではファイルの中身の各行の文字数が全部3つだったので fp=fopen(A.txt,"r"); while(fscanf(fp,"%s %s %s",data,data+1,data+2)!=EOF) { printf("%s?n",data); }としていました。わかりにくい文章ですいません。

    • grapher
    • 回答数2
  • 特定の文字が入力されるまで・・・

    プログラムで、 A~Cの記号が選ばれるまで、 (つまり他の文字が入力されたらもう一度入力しなすようにしたい) 入力コマンドを繰り返す制御文を作りたいのですが 自分で作ってもうまくいきません。 char c; while((c=getchar())!='A'||'B'||'C'){ } 以下はA,B,Cのいずれかが入力されたら実行される制御文が続く しかし、実際はA~Cを入力しても、 次の制御文に移りません。 どこがおかしいでしょうか? また、正しく動かすにはどうすればよいでしょうか?

    • tkb_ht5
    • 回答数5
  • 何を使っているのでしょうか?

    簡単なゲームを作ろうとC言語を勉強し始めたのですが、一つ疑問があります。 C++でゲームを作る場合、win32APIかMFCを使うと思うのですが 市販の家庭用ゲームはそれに代わる何かを使って開発されているのでしょうか?

    • flicker
    • 回答数4
  • C言語のファイル入出力について教えて下さい

    C言語初めて1ヶ月の超初心者です。 本を読んでもネットで調べても、ファイル入出力の意味がいまいちよく分かりません。 プログラムはCPadで書いています。 書き終わったプログラムを.cのファイル名で保存し、それをコンパイル。 読み込みたいファイルを.csvで作る。書いたプログラムの実行ボタンを押し、 .exe .csv .c の3つのファイルを打ち込んだ後、また.cを打ち込む。 これで一応実行はできるのですが、csvファイルで作ったもの (例をだして言うと ------------------------------------------------------------------ 名前     番号      給与   残業代    所得税 ○○  0001     200000   20000     10000 ------------------------------------------------------------------ というものをcsvで作るとします)  は、プログラムでも、名前 番号 給与 残業代 所得税 と書いてある部分はまったく同じように作らないと csvファイルから読むことはできないのでしょうか? csvファイルとプログラムを実行した結果の役割が、理解出来なくて困っています。ずっとプログラムの文法(?)ばかり勉強してきて、いざファイル入出力をしたら、どういう意味があるのかどう役立つのか分かりません。 後、上のような表で20人分をまとめて出力したいのですが、ファイル入出力するにあたって、条件式はfprintfなどを書く前に書くのでしょうか? お勧めの分かりやすい本などの情報も、教えて頂けると嬉しいです。   長々申し訳ありませんが、宿題の納期が近いので困っています。 よろしくお願いします。

  • グローバル変数とメモリについて

    質問させてもらいます。 #include <stdio.h> #include <math.h> #include M 1000 double a[M][M]; のようにプログラム冒頭にグローバル変数として配列aを宣言しているのですが、windowsXPではMを4096以上にして保存し、コンパイル(BCC)すると Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland beki4.c: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Fatal: Error detected (LME1514) Fatal: Error detected (LME1514) Fatal: Error detected (LME1514) Fatal: Error detected (LME1514) と出て、コンパイルができません。4095では可能でした。 最初はメモリの不足かと思ったのですが、単純に計算すると4096*4096*8 byteで、この配列には約134MB程度しかかかりません。メインメモリが1GBでその他OSなどが消費しているメモリは500MB程度なのでメモリ不足では無いような気がします。 同じプログラムをfedora8でメインメモリ1GBのPCでやらせてみた所、M=16383まではコンパイル(gcc)でき、16384以上では「too large」と言われてコンパイルできませんでした。 それぞれのOSでのMの設定値の限界が4095(=2^12-1),16383(=2^14-1)となっていまして、これはそれぞれのOSで一つの変数が占有できるメモリの限界を定めているということを意味しているのでしょうか? またこのような限度がOSにあった場合、その設定を変更する方法はありますか? よろしくお願いします。 実際のプログラム→http://cocofox.konjiki.jp/beki.html(文字数制限の関係上ここにすべてのcodeを記載できないため)

  • グローバル変数とメモリについて

    質問させてもらいます。 #include <stdio.h> #include <math.h> #include M 1000 double a[M][M]; のようにプログラム冒頭にグローバル変数として配列aを宣言しているのですが、windowsXPではMを4096以上にして保存し、コンパイル(BCC)すると Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland beki4.c: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Fatal: Error detected (LME1514) Fatal: Error detected (LME1514) Fatal: Error detected (LME1514) Fatal: Error detected (LME1514) と出て、コンパイルができません。4095では可能でした。 最初はメモリの不足かと思ったのですが、単純に計算すると4096*4096*8 byteで、この配列には約134MB程度しかかかりません。メインメモリが1GBでその他OSなどが消費しているメモリは500MB程度なのでメモリ不足では無いような気がします。 同じプログラムをfedora8でメインメモリ1GBのPCでやらせてみた所、M=16383まではコンパイル(gcc)でき、16384以上では「too large」と言われてコンパイルできませんでした。 それぞれのOSでのMの設定値の限界が4095(=2^12-1),16383(=2^14-1)となっていまして、これはそれぞれのOSで一つの変数が占有できるメモリの限界を定めているということを意味しているのでしょうか? またこのような限度がOSにあった場合、その設定を変更する方法はありますか? よろしくお願いします。 実際のプログラム→http://cocofox.konjiki.jp/beki.html(文字数制限の関係上ここにすべてのcodeを記載できないため)

  • ボタンを押したら記号文字(α, ☆)等を、表示させたい

    現在、VC++.NET2005で、スクリーンキーボードならぬ、仮想キーボードを作成しています。 その中で、ASCIIコード表にある一般的なキーボードのキーは、各ボタン(アルファベット,ファンクションキー,テンキー等)を押したら、アクティブなエディタへ表示、動作させるように実装できました。 しかし、今回はWindows標準のスクリーンキーボードにはないようなキー(α, ★, (6))等の記号文字を表示させなくてはいけなくなり、ASCIIコード表にないようなこの文字たちをどうやって表示させたらいいのかがわかりません。 どなたか、「これらの記号もASCIIコードに変換して表示できる」等、ご存知の方いらっしゃいましたら、ご教授の程宜しくお願い致します。

  • C言語の配列をC++のvectorに高速に変換したい

    質問は表題のとおりです。 単純な方法では以下の通りになると思いますが、 (C言語文字列から string への変換のように) 一括変換の仕組みは vector にないのでしょうか? static const int n=5; int a[n]={0,1,2,3,4}; std::vector<int> v(n); std::vector<int>::iterator vit=v.begin(); for(int i=0; i<n; i++){ *vit++ = a[i]; } 上記の例では n=5 ですが、nがとても大きな場合に適用したいと考えています。 ちなみに、gcc 3.4.3 を使っています。

  • インスタンスハンドルは何の役に立つものですか?

    C言語でWINDOWSのプログラムを作成したさい、WinMainの引数としてインスタンスハンドルが渡されます。 XPで作成したアプリケイションを複数同時に立ち上げると、インスタンスハンドルの値はすべて同じとなります。仮想メモリが導入される前のOSでは、異なる値になるようです。 仮想メモリを使う現在、インスタンスハンドルは何の役に立つのでしょうか。旧来からの書式を変えないためだけに存在するのでしょうか。

    • string
    • 回答数1
  • アルゴリズムについて

    今、c言語のアルゴリズムの勉強をしています。 入門書が3、4冊を読みました。c言語によるアルゴリズム辞典っていう本を見たら、ほんの少ししかならないです。 将来、プログラマになりたいです。アルゴリズムがプログラマにとって非常に重要ですので。そこで今プログラムの仕事をしている方に聞きたいです。アルゴリズムってどの程度勉強したらいいですか?入門書の場合は、精精木構造までですね。

    • xiaosin
    • 回答数6
  • ATOMは何の略ですか

    WINDOWSプログラミングで、ウィンドウクラスを登録した際、ATOM型の変数が返されます。ATOMは何の略でしょうか。 また、ATOMは具体的にどのようなメンバ変数をもつ構造体でしょうか。 よろしくお願いします。

    • string
    • 回答数4
  • ライブラリ、.libとは?

    ライブラリと検索すると、標準ライブラリばかり出てきて「○○.lib」のことがいまいち見えてこないのですが、このファイルはどういったものなのでしょうか。 .h、.c、.cppなどでは代用が利かないものなのでしょうか。 あと、C、C++にはライブラリと言うものがあり、あると便利・・・ というのは何となく分かるのですが、 1.ライブラリを配布しているのをあまり見ませんが、どこかまとまって置いてある場所はあるのでしょうか。 2.あまり記載されている参考書が見当たりませんが、どのように使うものなのでしょうか。 3.「このライブラリはどういうものか覚えていた方がいい」というものはありますでしょうか。 この3点について教えていただけるとありがたいです。 よろしくお願いいたします。

    • sirooni
    • 回答数3
  • C言語、スキャン集合について

    下記のプログラムはスキャン集合を使って入力された文字列の先頭に 並んでいる数字を読み込んで捨て、その後に続く文字列を読み込んで 表示するものです。 #include <stdio.h> int main(void) { char str[80]; printf("数字に続けて文字列を入力してください\n"); scanf("%*[0-9]%s", str); printf("%s", str); return 0; } 【質問】%*[0-9] を %[^0-9] に置き換えてコンパイルして実行すると、 意味不明の文字列が出力されるのはなぜでしょうか? 置き換えても同じ結果になる気がするのですが…

  • C言語、スキャン集合について

    下記のプログラムはスキャン集合を使って入力された文字列の先頭に 並んでいる数字を読み込んで捨て、その後に続く文字列を読み込んで 表示するものです。 #include <stdio.h> int main(void) { char str[80]; printf("数字に続けて文字列を入力してください\n"); scanf("%*[0-9]%s", str); printf("%s", str); return 0; } 【質問】%*[0-9] を %[^0-9] に置き換えてコンパイルして実行すると、 意味不明の文字列が出力されるのはなぜでしょうか? 置き換えても同じ結果になる気がするのですが…

  • C言語、スキャン集合について

    下記のプログラムはスキャン集合を使って入力された文字列の先頭に 並んでいる数字を読み込んで捨て、その後に続く文字列を読み込んで 表示するものです。 #include <stdio.h> int main(void) { char str[80]; printf("数字に続けて文字列を入力してください\n"); scanf("%*[0-9]%s", str); printf("%s", str); return 0; } 【質問】%*[0-9] を %[^0-9] に置き換えてコンパイルして実行すると、 意味不明の文字列が出力されるのはなぜでしょうか? 置き換えても同じ結果になる気がするのですが…

  • HINSTANCEの型

    LPSTR は char* なので、 int WINAPI WinMain(HINSTANCE hInstance ,HINSTANCE hPrevInstance , LPSTR lpCmdLine ,int nCmdShow ) を int WINAPI WinMain(HINSTANCE hInstance ,HINSTANCE hPrevInstance , char* lpCmdLine ,int nCmdShow ) と書き換えてもコンパイルできます。 HINSTANCEはvoid *型だという記述を見たのですが、void *で書き換えてもエラーがでてしまいます。 どうしたらよいのでしょうか。

    • string
    • 回答数2
  • WinSockにおけるポーリングの是非について。

    Winsockにおいて、socketをノンブロッキングでコーディングするときの話なのですが、ポーリングに関して否定的な記事が見受けられますが、その理由がCPU負荷の問題や、メッセージのディスパッチの問題が理由としてあげられています。 しかしこれは、正しく解決すれば何ら問題にならないと思うのですが、何か他に理由でもあるのでしょううか。 もちろん『なぜイベントでだめなのか?』と言われるかもしれませんが、逆に、『なぜポーリングじゃだめなのか?』と問いたいのです。 それとも、『入門記事だから初心者はこんな危険なことをするな!』という戒めなのでしょうか。 ※もちろん、ポーリングもひとつの方法として記述されている記事も多数あります。 以上、よろしくおねがいします。

    • sayaama
    • 回答数3
  • 指定されたファイルの関数名・ステップ数をリストとして表示する。

    現在VC++の独学中のものです。とても困っているのでお力添えをお願いします。 CFileDialogを使用し、cppファイルを選択してもらい、指定されたファイルをCStadioFile::ReadStringを使って1行つづ読み込んでいます。 この読み込んだファイルのデータから関数を探しだし、クラス名、関数名、関数ごとのステップ数、コメント数をリストとして表示したいです。 コメントは//(行コメント)も/* */(ブロックコメント)も考慮しなければならず、関数内のコメントとそうでないコメントも分けてカウントしなければなりません。 また関数名として抜き出すものは「関数名(引数) const」までです。もちろんconstは記述されていればですが。 現在、ブロックコメント開始フラグと関数開始フラグを用意し考えていますが、どんどんネストが深くなり、複雑になっていて、自分でもどう組んでいいのかわからなくなっている状態です。 ちなみに取得できたデータを格納するクラスは自分で用意しています。 どうぞよろしくお願いします。