HogePiyo の回答履歴
- 参考書を読んでいたのですがわからないことがありまし
参考書を読んでいたのですがわからないことがありました。 「スタックは後から格納したデータを先に取り出す、後入先出し型のデータ構造です。計算の途中結果を格納しておき、別の計算を行った後で途中結果を取り出す場合には、スタックを利用するのが適しています。」 と本に書いてあったんですが、計算の途中結果を格納しておき、別の計算を行った後で途中結果を取り出す場合とはどういうことでしょうか?
- ベストアンサー
- saiumalsei
- Java
- 回答数4
- ファイルの読み込みとメモリ確保について。
ファイルから文字を読み込んで それを配列に入れて辞書順にソートさせようとしています。 それで、ソート以前の問題なのですが、ファイルから文字列を読み込んで配列にいれようとするのですが、 buffを動的にメモリ確保してその配列に入れたいと考えているのですが、なぜか入ってくれません。 whileでファイルの終わりがくるまで一行ずつ読み込んで それをsに入れていき、sをbuff[]の配列に順番にいれていこうとしているのですが・・・。 ファイルは aaaa aabc dda wer zie ced sdfe be など適当な文字の並びです。 malloc関数で動的に確保したメモリはその後普通の配列と同様に使えるのではなかったのでしょうか? なので普通にbuff[i]=s;といった処理で入れれると思ったのですが。 ファイルは一行の長さの最大が100で 行数が4000行あると仮定しています。 今は小さいファイルでテストしていますが。 以下ソースです。 #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 100 #define MAX_LINE 4000 main() { FILE *fp; char *buff,s[MAX_SIZE]; int i; fp=fopen("words.txt","r"); buff=(char*)malloc(sizeof(char)*MAX_LINE); i=0; while(fgets(s,MAX_SIZE-1,fp)!=NULL){ buff[i]=s; printf("%s",buff[i]); i++; } fclose(fp); } とりあえずファイルの内容を配列に入れないとソートできないので、配列に全て入れてしまいたいと考えています。 間違いがどこにあるのか指摘よろしくおねがいします。m(-_-)m
- ファイルの読み込みとメモリ確保について。
ファイルから文字を読み込んで それを配列に入れて辞書順にソートさせようとしています。 それで、ソート以前の問題なのですが、ファイルから文字列を読み込んで配列にいれようとするのですが、 buffを動的にメモリ確保してその配列に入れたいと考えているのですが、なぜか入ってくれません。 whileでファイルの終わりがくるまで一行ずつ読み込んで それをsに入れていき、sをbuff[]の配列に順番にいれていこうとしているのですが・・・。 ファイルは aaaa aabc dda wer zie ced sdfe be など適当な文字の並びです。 malloc関数で動的に確保したメモリはその後普通の配列と同様に使えるのではなかったのでしょうか? なので普通にbuff[i]=s;といった処理で入れれると思ったのですが。 ファイルは一行の長さの最大が100で 行数が4000行あると仮定しています。 今は小さいファイルでテストしていますが。 以下ソースです。 #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 100 #define MAX_LINE 4000 main() { FILE *fp; char *buff,s[MAX_SIZE]; int i; fp=fopen("words.txt","r"); buff=(char*)malloc(sizeof(char)*MAX_LINE); i=0; while(fgets(s,MAX_SIZE-1,fp)!=NULL){ buff[i]=s; printf("%s",buff[i]); i++; } fclose(fp); } とりあえずファイルの内容を配列に入れないとソートできないので、配列に全て入れてしまいたいと考えています。 間違いがどこにあるのか指摘よろしくおねがいします。m(-_-)m
- 引数 戻り値 return文について
今、C言語を初めて勉強してます。 勉強していて、引数と戻り値、return文 についてよくわかりません。 どなたか詳しく素人にもわかるように教えて 頂けないでしょうか?よろしくお願いします。
- ベストアンサー
- torakitigoo
- C・C++・C#
- 回答数3
- COLORREF color の反転色
を作るつもりで color^=0xffffff; として表示させてみると colorがどんな色であっても黒くなってしまいました COLORREFの構造をサイト検索してもでていなかったので rgbが8ビットづつ積み重なっている単なるintと見なして以上のようにしたのですが何が悪いのでしょうか?
- COLORREF color の反転色
を作るつもりで color^=0xffffff; として表示させてみると colorがどんな色であっても黒くなってしまいました COLORREFの構造をサイト検索してもでていなかったので rgbが8ビットづつ積み重なっている単なるintと見なして以上のようにしたのですが何が悪いのでしょうか?
- ポップヒントを表示したい
無償ボーランドC++5.5でAPIを使ってプログラミングしていますが 作ったプッシュボタンにポップヒントをつけたいのです 付け方か説明しているサイトを教えてください
- .jpgと.pngファイルを.bmpに変換したい
.jpgと.pngを.bmpに変換するプログラムを無償ボーランドC++5.5で作りたいのですが .jpgと.pngのフォーマットについて詳しく説明しているサイトを教えてください
- DLLをGetProcAddress()で実行できない。
dllの操作の練習をしております。以下のソースのどこがおかしいのでしょうか? add.dllの内容は単にa+bの結果をメッセージボックスに表示させるだけの処理です。add.lib(インポートライブラリ)をリンクさせればうまく動きます。 しかし、GetProcAddress()を使って明示的にdllを呼び出そうとすると、コンパイルエラーで ADD(hWnd,5,5); の行に 「int (__stdcall *)(void)' : 実引数が多すぎます。」 となります。このメッセージの意味もわかりません。 以下のソースのどこがおかしいのでしょうか?コンパイラはVC++6.0でOSはWin2000です。 #include<windows.h> void CALLBACK ADD(HWND hwnd,int a, int b); //ウィンドウプロージャ(ここは別に普通) LRESULT CALLBACK WndProc(HWND hWnd , UINT msg , WPARAM wp , LPARAM lp) { switch (msg) { case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hWnd , msg , wp , lp); } int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow) { static FARPROC ADD; //あやしい HWND hWnd; MSG msg; WNDCLASS winc; //ウィンドウを作る処理 //~(省略)~ /****明示的にdllを呼び出す****/ ADD = GetProcAddress( LoadLibrary(TEXT("add.dll")) , TEXT("ADD")); ADD(hWnd,5,5); /****************************/ while (GetMessage(&msg , NULL , 0 , 0 )) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } お願いします。
- 無償ボーランドC++5.5のリソースコンパイル
無償ボーランドC++5.5のユーザですが アイコンをバンドルしてプログラムのアイコンを自分の作ったアイコンにすることはフリーのリソースハッカーでバンドルしできたのですが プログラムを開いたときに表示されるタイトルバー右上のアイコンははデフォルトのびっくりマークのままです そこでこれも前述の同じ自作アイコンにしたいのですがそのためにはリソースコンパイルしないといできないのでしょうか? そうだとすると5.5ユーザでもリソースコンパイルできるのでしょうか?
- 無償ボーランドC++5.5のリソースコンパイル
無償ボーランドC++5.5のユーザですが アイコンをバンドルしてプログラムのアイコンを自分の作ったアイコンにすることはフリーのリソースハッカーでバンドルしできたのですが プログラムを開いたときに表示されるタイトルバー右上のアイコンははデフォルトのびっくりマークのままです そこでこれも前述の同じ自作アイコンにしたいのですがそのためにはリソースコンパイルしないといできないのでしょうか? そうだとすると5.5ユーザでもリソースコンパイルできるのでしょうか?
- 無償ボーランドC++5.5のリソースコンパイル
無償ボーランドC++5.5のユーザですが アイコンをバンドルしてプログラムのアイコンを自分の作ったアイコンにすることはフリーのリソースハッカーでバンドルしできたのですが プログラムを開いたときに表示されるタイトルバー右上のアイコンははデフォルトのびっくりマークのままです そこでこれも前述の同じ自作アイコンにしたいのですがそのためにはリソースコンパイルしないといできないのでしょうか? そうだとすると5.5ユーザでもリソースコンパイルできるのでしょうか?
- C言語の参考書を探しています。
ご回答のほうよろしくお願いします。 早速ですが、私は只今、職業訓練校にてC言語を習っています。 しかし、色々と勉強しているうちに何個か分からなくなることがありまして、それについて詳しく書いてある本かHPが欲しいなと思いまして、質問させて頂きました。 それで内容ですが、 ・標準関数について使い方と内容を詳しく記載してある本が欲しいのです。 HPやペルプを使っても私にはちょっと分かり難いのでその部分を重点的に記載しているとありがたいです。 ・またC言語の関数の作り方、ポインタの使い方も詳しく書いてある本も欲しいです。 ・それとこれは別で、再度初歩的な部分の勉強したいと思いますので、初心者の参考書も欲しいと思っています。 と色々と要望が多いですが、よろしくお願いします。 ちなみに全部に言えることですが私はMicrosoft Visual C++ 6.0を使っているのでそれに精通した本でお願いします。
- ベストアンサー
- babu3000xl
- C・C++・C#
- 回答数3