gimmick の回答履歴

全406件中141~160件表示
  • C言語のfwrite関数について

    現在,バイナリのデータを処理するプログラムを作成しています。 おおまかに言えば,ファイルA(バイナリモードでオープン)からバイナリでデータを読み込んできて,そのデータを処理してファイルB(バイナリモードでオープン)に書出す,のようなプログラムです。 その処理したデータを入れるデータ型にunsigned long long int型(64bit)を使用しています。 その処理データをファイルBに書出す時に,fwrite関数を用いています(例参照)。 (例) for(i=0; i<N; i++){ fwrite(&c[i], sizeof(c[i]), 1, fp); } //配列cが「unsigned long long int型」です。 //配列cは最初に"0"で初期化しています。 //fpはファイルポインタです。 しかし,本システムでunsigned long long int型が実際に使用しているのは下位32bitです。 上の例で書出した場合,上位32bitの"0"も書出されていることになるのでしょうか。 書出されたファイルのサイズを見れば,64bit全て書出されているようですが,計算間違いで32bitを超えたところまで何かデータが入っている可能性もあります。 どなたはfwrite関数に詳しい方,ご回答をよろしくお願いします。

  • 小数点以下五桁一致の判定

    ある実数の定数があり、変数をfor文により変化させて、小数点以下五桁が一致したらbreakしたいのですが、判定がうまくできません。 自分が作ったプログラムは、定数をk,変数をjと置くと sa=fabs(k-j); if(sa<1/1000000)break; としました。 一応出るのですが、ループの回数が、最低限にならないです。いい方法を教えてください。

  • エラーの種類

    C言語の課題をやってるとしたの用なエラーが でたのですがどういう意味かわかりません。 gcc -c kadai3.cとすると kadai3.c:553: warning: parameter names (without types) in function declaration kadai3.c:553: warning: data definition has no type or storage class エキサイトで訳してみたのですが、、やっぱり わかりません。 教えてください、お願いします。 またエラーの種類がのったページってありますか? 前に探したのですが、、なかなか見つからなくて、、 お願いします。

  • C言語について教えてください。

    2進数のA=11111111とB=00000000をビットインタリーブして、1010101010101010としたいのですが(Aを奇数ビット、Bを偶数ビット)、C言語ではどのようにしたらよいでしょうか? また、このようなビットインタリーブしてくれる関数もありましたらよろしくお願いします。

  • Borland C++BuilderのIndexOf()について

    ListBoxにパスを含めたファイル名を入れ、検索して該当するIndexを返すようにしたいのですが、「\」が入っているせいか実際にListBoxに存在する文字列をIndexOf()に入れているにもかかわらず-1が返ってきてしまいます。 試しに「\」を「/」に変えたら正しく動作しました。 やはり予め「\」を「/」に変えてからIndexOf()を使うしか方法はないのですか? だとすると「\」を「/」に置き換えるよい方法を教えていただけませんか?

  • fscanf/fprintfでのファイルの読み書き

    以下のようなプログラムでファイルを使ったデータの読み書きをしているのですが、 fscanfの所で永久ループになってしまい、またファイルの最後の部分のみを 出力するという動作になってしまい困っています。 ソースを何度読み直してもどこがおかしいのかわかりません。 何か心当たりのある方どうかご教授下さい。お願いいたします。 #include <stdio.h> #include <stdlib.h> void main() { char in_name[10]; int in_ten,w_goukei=0; FILE *gf_pt; if((gf_pt=fopen("gakusei.dat","w+"))==NULL) { printf("FILE OPEN ERROR\n"); exit(EXIT_FAILURE); } printf("データを入力してください(終了は^Z)\n"); rewind(stdin); while((scanf("%s %d",in_name,&in_ten))!=EOF) fprintf(gf_pt,"%-10s %3d",in_name,in_ten); printf("\nデータを表示します\n"); rewind(gf_pt); while(fscanf(gf_pt,"%-10s %3d",in_name,&in_ten)!=EOF) { w_goukei+=in_ten; printf("%-10s %3d\n",in_name,in_ten); } printf(" %4d\n",w_goukei); if(fclose(gf_pt)==EOF) { printf("FILE CLOSE ERROR\n"); exit(EXIT_FAILURE); } }

    • ベストアンサー
    • noname#15820
    • C・C++・C#
    • 回答数2
  • 実行時dllを動かしたい

    のですがサイトで見つけたdllの作り方を見て 大人気の無償Borland C++5.51を使って //mydll.cpp #include <windows.h> BOOL __stdcall MyBeep() { return MessageBeep(0); } int __stdcall MyMessageBox(LPCTSTR lpszMessage) { return MessageBox(NULL,lpszMessage,"",0); } を bcc32 -WD mydll してmydll.dllを作り //myexe.cpp #include <windows.h> typedef int (__stdcall *pMyFunction)(LPCTSTR); int APIENTRY WinMain(HINSTANCE,HINSTANCE,LPSTR,int) { HINSTANCE hLib; pMyFunction pMyMessageBox; hLib = LoadLibrary("mydll.dll"); if(hLib) { pMyMessageBox=(pMyFunction)GetProcAddress(hLib,"MyMessageBox"); if(pMyMessageBox)(*pMyMessageBox)("HELLO!!"); FreeLibrary(hLib); } return 0; } を bcc32 -W myexe してmyexe.exeを作り myexe.exe したのですがHELLO!!がでません。 どうしたらいいのでしょうか?

  • ファイル名が違っていても

    同じファイルを指してしまいます。 半角英字大文字と半角英字小文字の区別をしないというマイクロソフトの悪い習慣がそうさせてます。 そうなると2バイト文字と1バイト文字とが混じったファイルが同じファイルを指すかどうかを知るためにはやっかいなことになります。 2つの文字列が半角英字だけ大文字と小文字を区別しないとして等しいかどうかを判定する関数はありますか?

  • SHBrowseForFolderA

    と SHBrowseForFolder は同じように動作しますが何が違うのでしょうか? 一般に~Aなる関数が~と同じ動作しますがなぜAを付けるのでしょうか?

  • ウィンドウハンドルの取得方法について

    よろしくお願いします。 WIN98 VC++6.0 MFC にて 色々勉強しておりますが、今だにウィンドウハンドルの取得方法が良く分かりません。 SDKのサンプルを見ると、なるほどそうするのか。と思いますが、MFCになると分からなくなります。 たとえば、 ウィザードのデフォルトに従いダイアログベースでのプロジェクトを作成し、ボタン1と2を配置します。 以下のコードでボタン1を非表示にできます。 void CPppDlg::OnButton2() { CWnd* pButton1 = GetDlgItem (IDC_BUTTON1); pButton1->ShowWindow(SW_HIDE); } このコードにおいて、 1.SDKの BOOL ShowWindow( HWND hWnd, // handle to window int nCmdShow // show state of window ); を用いて引数が2個の形式に書きかえることは可能でしょうか? 2.可能であれば、具体的にはどう記述すれば良いのでしょうか?

  • ウィンドウハンドルの取得方法について

    よろしくお願いします。 WIN98 VC++6.0 MFC にて 色々勉強しておりますが、今だにウィンドウハンドルの取得方法が良く分かりません。 SDKのサンプルを見ると、なるほどそうするのか。と思いますが、MFCになると分からなくなります。 たとえば、 ウィザードのデフォルトに従いダイアログベースでのプロジェクトを作成し、ボタン1と2を配置します。 以下のコードでボタン1を非表示にできます。 void CPppDlg::OnButton2() { CWnd* pButton1 = GetDlgItem (IDC_BUTTON1); pButton1->ShowWindow(SW_HIDE); } このコードにおいて、 1.SDKの BOOL ShowWindow( HWND hWnd, // handle to window int nCmdShow // show state of window ); を用いて引数が2個の形式に書きかえることは可能でしょうか? 2.可能であれば、具体的にはどう記述すれば良いのでしょうか?

  • 型について

    自分は今、1000や10000とかの大きな数の階乗を求めるプログラムを作成しています。それでその答えを入れる変数の型をfloat型にして、printf()内では%fとかにしてみたのですが、”Floating exception: Overflow”とでてうまくできませんでした。 このような大きな数を扱える型を教えて下さい!

  • SHBrowseForFolderは

    目的のディレクトリがなくてもダイアログ内でディレクトリを作ることができません。 ディレクトリを選択するコモンダイアログで目的のディレクトリが無ければダイアログ内でディレクトリを作ることができるコモンダイアログというものは有るのでしょうか?

  • コマンドファイルから、ビットパターンの入力

    C言語初心者です。勉強していて、わからない事がありますので教えて頂けないでしょうか。 題名の通りなのですが、ファイル入力で出力する型についてです。ビットッパターンで入力したものを、文字で出力したいのですが、可能でしょうか? 例えばソース中では、 char d =0x55; printf("%c\n", d); とすれば、「U」の文字が出力されます。 このdの宣言をコマンドファイルでできますでしょうか? よろしくお願い致します。

  • 変数の代入について

    ダイアログベースで、ダイアログ1からダイアログ2を開きダイアログ1のエディットボックスのデータをダイアログ2に表示する下記コードを教わりました。 変更後のようにしても問題ないと思いましたが、'dlg' は定義されていない識別子です。とエラーが出ます。 どうしてなのかお教えていただきたいのですが、 よろしくお願いします。 <変更前> CSubDlg dlg2; dlg2.m_strText = strText; dlg2.DoModal(); <変更後> void CSubDlg::OnPaint() { m_strText = dlg.strText; ちなみにdlgはウィザードが作ったコードで、 CMainDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); ダイアログ1のことだと思うのですが。。。。 ************************** メインダイアログとしてCMainDlgを例にしますが、かなり割愛します。 このダイアログには、Editが貼り付けられているとします。Editコントロールに割り当てたIDをIDC_EDIT_INPUTだと仮定します。 DDXとかのデータ変換を使う方法もありますが、ここでは単にデータを取得します。 // // OKボタンが押された時の処理 // void CMainDlg::OnOK() { // データの取得 CString strText; GetDlgItemText(IDC_EDIT_INPUT, strText); CSubDlg dlg2; dlg2.m_strText = strText; dlg2.DoModal(); } class CSubDlg : pbulic CDialog { public: CString m_strText; // 親から渡される文字列を格納する変数 ・ ・ ・ ・ ・ }; あとは、CSubDlgのOnPaintでテキストを描画します。 void CSubDlg::OnPaint() { // テキストをクライアント領域の中央に描画 CRect rect; GetClientRect(rect); CPaintDC dc(this); dc.TextOut(m_strText, rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); }

  • 配列を使って魔方陣

    C言語を使って最近やっと配列ができるようになってきたんですが、どうしても魔方陣のやり方がわからないんです。教えてください。 魔方陣とは、1~n^2までの整数をn×nの正方形に並べ、どの行、どの列、どの対角線のn個の数の和も一定の値になるようにしたものです。 nは常に奇数を入力し、1番上の行の中央の列に1を置く事になります。 整数kまで置かれているとすると、k+1は次のように置かれる。 * kの置かれた場所の右斜め上(以下この場所をαと呼ぶ)が空いていれば、そこにk+1を置く。 * αがすでに他の数が置かれているとき、kの置かれている場所のすぐ下にk+1を置く。 * αが右上隅にはみ出す場合は、kの置かれている場所のすぐ下にk+1を置く。 * αが1番上の行からはみ出す場合は、場所αの1番下の列にk+1を置く。 * αが1番右上の列からはみ出す場合には、場所αの1番左の列にk+1を置く。 例)n=3のとき 8 1 6 3 5 7 4 9 2 まだまだ初心者なので詳しく教えていただけると嬉しいです。よろしくお願いします。

  • 親ウインドウのウインドウハンドルの必要性について

    お願いします。 WIN98 VC++6.0 SDKにて ウインドウをクリックするとダイアログボックスが表示されるサンプルプログラムがあります。 MessageBox(hWnd, s, "ダブルクリック", MB_OK);の第1引数には親ウインドウのウインドウハンドルを指定するとありましたが、NULLに変えても問題無く動きました。 第1引数はなんでも良いのでしょうか? また、必ず親ウインドウのウインドウハンドルを指定しなければならない時はどのような場合でしょうか? よろしくお願いします。

  • classmate[a].name がうまく出力できません。

    ソースはこれです。途中は省略してますが、これでいいと思っています。 int aで指定した構造体に....[a].nameで文字を表示したいのですが、以下のようではうまくいきません。 宜しくお願いします。 struct classmatedata { char name[15]; int age; char sex[1]; struct seiseki ten; }classmate[member]; inline void classdata::outputseiseki() { int a; printf("成績を表示します。 番号="); scanf("%d",&a); printf("名前=%s\n",classmate[a].name); printf("国語=%d 社会=%d 数学=%d 理科=%d 英語=%d\n",classmate[a].ten.kokugo,classmate[a].ten.syakai,classmate[a].ten.sugaku,classmate[a].ten.rika,classmate[a].ten.eigo); }

  • classmate[a].name がうまく出力できません。

    ソースはこれです。途中は省略してますが、これでいいと思っています。 int aで指定した構造体に....[a].nameで文字を表示したいのですが、以下のようではうまくいきません。 宜しくお願いします。 struct classmatedata { char name[15]; int age; char sex[1]; struct seiseki ten; }classmate[member]; inline void classdata::outputseiseki() { int a; printf("成績を表示します。 番号="); scanf("%d",&a); printf("名前=%s\n",classmate[a].name); printf("国語=%d 社会=%d 数学=%d 理科=%d 英語=%d\n",classmate[a].ten.kokugo,classmate[a].ten.syakai,classmate[a].ten.sugaku,classmate[a].ten.rika,classmate[a].ten.eigo); }

  • ウィンドウ生成時の不具合について

    VC++6.0 WIN98 MFCにて ウィザードを使ってSDIにてウィンドウ1を作成し、メニューをクリックすることで、ウィンドウ2が新たに生成されるプログラムを書きました。 ウィンドウ2が生成されたときに、ウィンドウ1に重なっていると、ウィンドウ2を閉じてもウィンドウ1のクライアント領域にウィンドウ2の形が残ったままになってしまいます。 どうしてこうなるのでしょうか?