aris-wiz の回答履歴
- HANDLE無効について
C言語初心者のy_615_tと申します。 秀丸というエディタで作っているソースを Visual Studio.NET(2005)でコンパイルしています。 環境はwindowsXPです。 現在Win32APIをつかってプログラムを作っています。 2つのファイルを用意し、以下の状態を作ります。 (1)2つともない時 (2)1つめだけある時 (3)2つめだけある時 (4)2つともある時 この状態のとき、以下の処理をします。 (1)のとき、1つ目のファイルを作り、ファイルに書き込む (2)のとき、1M以下なら続きから書き込む 1M以上なら2つ目のファイルを作り、書き込む (3)のとき、(2)と同様 (4)のとき、サイズを比較して書き込む サイズが同じ時、更新日時で比較して新しい方に書き込む というプログラムを作りたいのですが、HANDLEが無効というエラーが出てしまいます。 サイズ・更新日時の取得に ・GetSizeFile ・GetFileTime を使っているので、エラーが起こるのかなと思ったのですが、 上手く動作しません。 最初にファイルがルカのチェックをする際にサイズと時間をとっていて、処理の際に、比較しています。 書込みのWriteFileは外部関数として私が作ったものを呼び出しています。HANDLEのエラーは書込みの際起きているのですが、 HANDLEをexternでmainと外部関数で使うことは問題があるのでしょうか。教えてください。
- C++.netで、外部プログラムを起動させる方法
C++.netから、ほかの.netで開発した外部プログラムを 起動させる方法を教えてください。 自分でも調べているのですが、C++に関してはまったくの 素人なので、なかなか見つけられずに難儀しています。 よろしくお願い致します。
- ソケットのclose
サーバ側のソケットのcloseに関しての質問です。 LISTEN のFDをCLOSEすればACCEPTで発生したFDもなくなるものでしょうか。それとも残ってしまうものでしょうか?
- C言語 関数の戻り値と自動変数
かなり基礎的な質問になるのですが、疑問に思うことがあり、質問をさせていただきます。 関数内で宣言した変数を戻り値として使う場合ですが、ポインタなどではなく実体の場合でも、静的変数として宣言をしたほうが良いのでしょうか? 現実的に考えると、プログラムが関数から出て、呼び出した側の関数が戻り値を受け取るまでの瞬間に、その領域が書き換えられる可能性は極めて低いと思うのですけど、C言語の仕様としてはどうなのでしょうか? 関数内で宣言した戻り値に使う変数には、必ずstaticをつけた方が良いのでしょうか? もしおわかりでしたら教えて下さい。
- ベストアンサー
- C・C++・C#
- tadasuke2002
- 回答数8
- 構造体のメンバーの静的なサイズ取得
構造体のメンバーをヘッダーファイル中で得たい場合、 以下のような方法以外になにか方法はないでしょうか? 単純に XXXX x;と宣言してそれを sizeof(x.chwk)と 使うというような方法以外で なにかあれば教えてください。 ---------------------------------------- typedef struct { char chwk[100]; } XXXX; typedef struct { char chwk[ sizeof(( (XXXX*)0)->chwk ) ]; } YYYY; main(int arc, char *arg[] ){ YYYY y; printf( " YYYY chwk size = %d\n", sizeof(y.chwk)); }
- HANDLE無効について
C言語初心者のy_615_tと申します。 秀丸というエディタで作っているソースを Visual Studio.NET(2005)でコンパイルしています。 環境はwindowsXPです。 現在Win32APIをつかってプログラムを作っています。 2つのファイルを用意し、以下の状態を作ります。 (1)2つともない時 (2)1つめだけある時 (3)2つめだけある時 (4)2つともある時 この状態のとき、以下の処理をします。 (1)のとき、1つ目のファイルを作り、ファイルに書き込む (2)のとき、1M以下なら続きから書き込む 1M以上なら2つ目のファイルを作り、書き込む (3)のとき、(2)と同様 (4)のとき、サイズを比較して書き込む サイズが同じ時、更新日時で比較して新しい方に書き込む というプログラムを作りたいのですが、HANDLEが無効というエラーが出てしまいます。 サイズ・更新日時の取得に ・GetSizeFile ・GetFileTime を使っているので、エラーが起こるのかなと思ったのですが、 上手く動作しません。 最初にファイルがルカのチェックをする際にサイズと時間をとっていて、処理の際に、比較しています。 書込みのWriteFileは外部関数として私が作ったものを呼び出しています。HANDLEのエラーは書込みの際起きているのですが、 HANDLEをexternでmainと外部関数で使うことは問題があるのでしょうか。教えてください。
- ヘッダファイルとは?
ヘッダファイルを作って、そこに構造体を送りたいのですが、 「引数宣言は 'data' で始められない」というエラーがヘッダファイル側で起きてしまいます。 main()で作ったからいけないのでしょうか? 分かる方教えていただけませんか? #include<stdio.h> #include "Max_Score.h" /*構造体の宣言*/ typedef struct data{ ・・・・・; }DATA; void main(){ DATA data[50]; ・・・・・・・・; Max_Score(data); } /*Max_Score()側*/ void Max_Score(data *p){ ・・・・・; }
- 他のプログラムの呼び方について
GUIのプログラムと(Gui.exe)、計算をするプログラム(Calc.exe)がありまして、 GUIのプログラムからパラメータを入力し、そのパラメータにしたがって計算をするんですが、Gui.exeからCalc.exeを呼ぶにはどのようにすればいいんでしょうか? 2つのプログラムを同じディレクトリにおいて、system("Calc.exe hoge1 hoge2")のようにすればいいのかな、思ったのですが、どうもだめなようです。Calc.exeのパスを指定すればいいようなのですが、どのように指定すればいいかわかりません。 また、今は2つのexeファイルがあるのですが、これを一つのexeファイルにまとめるようなことって出来るのでしょうか? 開発環境はVC++6.0,Windows XPです。
- Visual C++ 6.0
今学校でVisual C++ 6.0 を使ってプログラミングの勉強をしていて家でも学習をしたいので購入を考えいるのですかVisual C++ 6.0 は家電量販店で購入する場合どのくらいの値段で買えるのでしょうか? 学生だと安く購入できるようなものはあるのでしょうか? それと友人がVisual C++ 6.0 をマイクロソフトのホームページで無償でダウンロードできたいっていたのですが本当ですか? 以上よろしくお願いします。
- 締切済み
- C・C++・C#
- noname#130164
- 回答数8
- C言語 ファイルの指定された行を表示
こんにちは。 回答お願いします。 今私は作業の高効率化を目指すためプログラムを考えています。 まだぜんぜんできていませんが・・ ファイルの指定された行を表示する関数がないだろうか? もしくは似たような方法はないだろうかと考えています。 できれば例題とともに教えていただければ幸いです。 具体的にどういう風にしたいのかというと ----test.txt------- aaaa bbbbb cccccc dddd eeeeeeee ffffff ------------------- というファイルがあったとしたらgetsで4と入れてやったら 四行目のddddが表示されるようにしたいのです。 まだまだ初心者ですのでさっと考えることができません。 どうかご教授お願いします。
- while文と無限ループの違い
はじめまして。大学でC++を習い始めたばかりの初心者です。 最近while文とwhile文と使った無限ループを知ったのですが、 両者の違いがイマイチわかりません。 私のイメージですと、while文は条件が真である限り何度でも判定し 条件が偽になればループを抜ける。 一方無限ループもif文を使った条件が真にならない限りbreakしない。 while文の偽と判定する部分がif文で真と判定するだけで、同じような気がするのですが… ド素人の考えで恥ずかしいのですが、違いをわかりやすく教えてください。
- C++ 演算結果を反映させる方法
はじめまして。 最近C++の勉強を始めたばかりの素人で、参考書を読みながら苦戦しております。 そこで、お聞きしたいのですが… あるソースファイルで演算されて得られた結果を、他のソースファイルで別の演算に用いるような プログラムを作成したいと思っています。 それぞれプログラムの概要は組めるのですが、肝心の演算結果を引用する方法がわかりません。 色々と調べては見たものの見当が付かなかったので、教えていただきたいと思います。 使っているのはVisualC++ 2005です。
- I.E7.O へのアップデート・・・手順を教えて下さい
I.E7.O が何のことかもよく分からないのですが・・ WindowsXPです。(関係無いでしょうか?)
- 締切済み
- Windows XP
- tottoro7
- 回答数4
- バケット法による文字列ソート
バケット法のアルゴリズムを用いて、入力した任意の文字列 (例) "tanaka" "yamashita" "suzuki" "yamamoto" を、 "suzuki" "tanaka" "yamamoto" "yamashita" といった具合にアルファベット順にソートするプログラムについて、 バケット法のアルゴリズム自体は理解しているのですが、それをいざプログラムにするというと、構造がイマイチ思いつきません。 C言語でバケット法を用いて文字列のソートを行うプログラムを、 具体的に、どなたか教えてくださらないでしょうか? 初歩的な質問ですみません。一応、C言語の基本的なことについては 大体理解しているつもりですが、まだまだC言語初心者のため、 なるべく簡単なプログラムを作成していただければ幸いです。
- 配列のプログラム作成
【質問】 次の処理を行うプログラムを作成します。 (1)10個の要素を持つ一次配列dat[10]を宣言します (2)dat[0]に0、dat[1]に1をセットします (3)dat[2]以降の要素には、前の2つの要素の和を計算し入力します (4)配列の各要素の値を表示します 【プログラム作成例】 dat[ 0] = 0 dat[ 1] = 1 dat[ 2] = 1 dat[ 3] = 2 dat[ 4] = 3 dat[ 5] = 5 dat[ 6] = 8 dat[ 7] = 13 dat[ 8] = 21 dat[ 9] = 34 上記の解答は下記の通りなのですが、下記以外の解答方法を教えてはいただけないでしょうか? C言語に詳しい方よろしくお願いいたします。 #include <stdio.h> main() { int i, dat[10]; dat[0] = 0; dat[1] = 1; for (i=2; i<10; i++) { dat[i] = dat[i-2] + dat[i-1]; } for (i=0; i<10; i++) { printf ("dat[%2d] = %2d\n", i, dat[i]); } return (0); }
- ベストアンサー
- C・C++・C#
- hamasaki--
- 回答数4
- VC++6.0のオートメーションタブはVS2005の?
VC++6.0でプロパティを追加するとき、 ClassWizard→オートメーションタブ→プロパティの追加(A) とやっていきますが、2005でどう対応するのか教えてください。 (これを通過しても次でまた困るのかもしれませんが)
- 結果が不安定なプログラム
配列に入れられた文字列を、別の配列に逆にして入れ、表示するというプログラムを作っています。 #include<stdio.h> #include<string.h> #include<stdlib.h> void main() { char str1[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", str2[] = ""; int i = 0, len = strlen(str1); char *p1 = str1 + len - 1, *p2 = str2; while(*(p1 - i) != str1[0] - 1) *(p2 + i) = *(p1 - i++); printf("str1 = %s\n",p1 = str1); printf("str2 = %s\n",p2); } 実行結果: str1 = ABCDEFGHIJKLMNOPQRSTUVWXYZ str2 = ZYXWVUTSRQPONMLKJIHGFEDCBA と出るのですが、この文字列を例えば"TANGOHYOJI"とかに変えてみると、実行は出来るんですがprintfの部分が表示されません。 また表示できても、文字が違う文字になって表示されたりします。 あと、この場合に使われている<stdlib.h>はどういった役割を果たしているのでしょうか?これがないとこのプログラムは動かなかったのですが・・。 どうかよろしくお願いします。
- 読み込んだ文字列を関数として実行するには?(VC++)
[やりたい事] (1)テキストファイルを読込む ※テキストには関数名が記述されてます。 (2)取得した関数を実行する。 [できない事] (1)はできたのですが、(2)ができない。 取得した文字列をどうやれば関数として実行できるのか、分からず悩んでます。 回答よろしくお願いします。