ko_kinta の回答履歴

全153件中141~153件表示
  • dos.hについて

    いま「Windowsコマンドプロンプトでマスター 書く!動かす!覚える! C言語100本勝負」というタイトルの本をサンプルプログラム集として使っているのですが、そのサンプルの中にdos.hを使ったプログラムが結構な数あります。コンパイルしたプログラムは正常に動くのですが、コンパイル時に次のような警告が出ます。 警告 W8053 hoge.c 18: '_dos_findfirst' は古い形式です(関数 main ) 警告 W8053 hoge.c 22: '_dos_findnext' は古い形式です(関数 main ) (コンパイラ:bcc32、OS:Windows XP SP2、コマンドプロンプトで実行した) ネットで調べたところ_dosで始まるような関数は現在ではほとんど使われていないようです。 そこで質問なのですが、MS-DOSの時代に使われていたような関数はWindows XPや2000等のコマンドプロンプトでも問題なく実行できるのでしょうか(自分の場合は実行できたが、警告が出た。)? 自分の推測ではコマンドプロンプト用の新しい関数が用意されているのではないかと思うのですが・・・ 詳しい方、できれば教えてください。 (正直、「コマンドプロンプトでマスター」とタイトルで謳っているのに内容が「MS-DOS」での説明とは少しだまされた気分です。)

  • dos.hについて

    いま「Windowsコマンドプロンプトでマスター 書く!動かす!覚える! C言語100本勝負」というタイトルの本をサンプルプログラム集として使っているのですが、そのサンプルの中にdos.hを使ったプログラムが結構な数あります。コンパイルしたプログラムは正常に動くのですが、コンパイル時に次のような警告が出ます。 警告 W8053 hoge.c 18: '_dos_findfirst' は古い形式です(関数 main ) 警告 W8053 hoge.c 22: '_dos_findnext' は古い形式です(関数 main ) (コンパイラ:bcc32、OS:Windows XP SP2、コマンドプロンプトで実行した) ネットで調べたところ_dosで始まるような関数は現在ではほとんど使われていないようです。 そこで質問なのですが、MS-DOSの時代に使われていたような関数はWindows XPや2000等のコマンドプロンプトでも問題なく実行できるのでしょうか(自分の場合は実行できたが、警告が出た。)? 自分の推測ではコマンドプロンプト用の新しい関数が用意されているのではないかと思うのですが・・・ 詳しい方、できれば教えてください。 (正直、「コマンドプロンプトでマスター」とタイトルで謳っているのに内容が「MS-DOS」での説明とは少しだまされた気分です。)

  • 構造体メンバへの代入

    とても初歩的なことなのですが、 typedef struct _X{ int x; }X[50]; と構造体を定義して X[0].x = 0; と0を代入しようとすると、「宣言が正しく終了していない」とエラーが出てしまいます。 これはなぜでしょうか? ちなみにMicrosoft Visual C++ 2005 Express Editionを使っています。

  • 画像の一部を出力

    2次元配列image[][]に入っている画像の、ある点(X、Y)を始点として、縦10、横20の部分のみをファイルに出力したいのですが、 for(i=X;i<X+10;i++){ for(j=Y;j<Y+20;j++){ fwrite(&image[i][j], sizeof(unsigned char), 1, fpo); } } としたところ、なにやら変な画像が出力されていました。 何か考えられる原因がありますでしょうか?

  • テストについて

    コーディング終了後に行うテストのDD、MT、PTの区別がうまくつきません。特にDD、MTが…。 各テストの意味と目的などを教えて下さい。

  • C言語 ファイル入出力について

    test.txtというテキストファイルに入力されている文字を読み込んでtest1.txtに7文字になったなら改行して2行目に書き込み、また2行目が7文字以上になったら3行目に書き込むというプログラムを作りたいのですがどうもうまくいきません。色々ネットで探したりしたのですがstrlenをうまく使うのかな~ぐらいしか見当はつきません・・・。 何かよいアドバイスをお願いします!m(_ _)m 例 test.txt --------------------------------- 私の一番好きな食べ物はリンゴです。 --------------------------------- ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ test1.txt ---------------------------------- 私の一番好きな 食べ物はリンゴ です。 ----------------------------------

  • テストについて

    コーディング終了後に行うテストのDD、MT、PTの区別がうまくつきません。特にDD、MTが…。 各テストの意味と目的などを教えて下さい。

  • 四則演算プログラム

    2つの数字を四則演算するプログラムを作ろうと 思っているんですが、 (1)関数atoiを使う、 (2)int main(int argc, char +argv[])と  宣言する、 (3)足し算の場合のみ、2つ以上の数字を計算できる ということが条件なんですけど、どなたか プログラムがどのようなものか教えていただけ ませんか??

  • ifと不等記号( < & > )のみを使って、最大数と最小数を求める (* 超初心者です)

    宿題でifと不等記号( < と>)のみを使って、3つの入力された整数の中から最大数と最小数を求めるプログラムを作っているのですが、コンパイルには成功してもいざ実行すると、恐らくエラーが起きていて、数字を入力しても何も出来ません。 下記の文字列はそのifの所のみを貼ったものですが、何が間違っているのでしょうか? ちなみにelseとかは使えません m(_ _)m 純粋にifと不等記号のみしか使ってはダメみたいです。 if( num1 > num2 > num3 ) { printf( "Smallest is %d\n", num3 ); printf( "Largest is %d", num1 ); } /* end if */ if( num1 > num3 > num2 ) { printf( "Smallest is %d\n", num2 ); printf( "Largest is %d", num1 ); } /* end if */ if( num2 > num1 > num3 ) { printf( "Smallest is %d\n", num3 ); printf( "Largest is %d", num2 ); } /* end if */ if( num2 > num3 > num1 ) { printf ( "Smallest is %d\n", num1 ); printf ( "Largest is %d", num2 ); } /* end if */ if( num3 > num1 > num2 ) { printf ( "Smallest is %d\n", num2 ); printf ( "Largest is %d", num3 ); } /* end if */ if( num3 > num2 > num1 ) { printf ( "Smallest is %d\n", num1 ); printf ( "Largest is %d", num3 ); } /* end if */

  • VC++ 文字列のDate型チェック

    こんばんは。 VC++でVBのIsDateのような使い方をする関数 CString または CHar配列などの文字列がDate型かどうか チェックする関数を探しています。 MFCとかにないのでしょうか? 2006/05/26とかのチェックは一文字づつ抜き出して xxx/xx/xxという形はチェックできるのですが うるう年とか考慮すると自作だとかなり複雑なものになってしまいそう なので・・・ どなたかお分かりになる方、よろしくお願いします。

  • while文のデータの終わり

    C言語なんですが 購入合計金額を求めるプログラムで、 1回のプログラム実行で、続けて何回でも計算を行い、 えんぴつの購入数に999を入力すると計算を終了するようなプログラムを作りたいのですが、 #include <stdio.h> main() { int a,b,c,goukei; a=b=c=0; while(a!=999){ printf("商品をいくつ買いますか??\n"); printf("えんぴつ   = "); scanf("%d",&a); printf("消しゴム   = "); scanf("%d",&b); printf("ボールペン = "); scanf("%d",&c); goukei=a*100+b*150+c*200; printf("合計購入価格は%d円です\n\n",goukei); } } 上のようなソースを作ったのですが えんぴつのところに999を入力してもプログラムが終了せずに続いてしまいます… 試行錯誤してもうまくいきません。 どこが間違っているのでしょうか?

  • C#で構造体の配列を持った構造体を使いたいのですが

    C#で構造体の配列を持った構造体を使いたいのですが Cならば struct xyz { struct abc _abc[32]; int index; }; struct abc { int a; int b; int c; }; struct xyz _xyz[8]; xyz[0]._abc[3].b = 1; のような使い方で という感じで やっていた事を C#で 同じような事をやろうとしても うまくいきません うまくやる方法をどなたかご存知ないでしょうか Visual Studio 2005行った場合 コンパイルで 構文エラーです。不適切な配列の宣言子です。マネージ配列を宣言するには、次元指定子を変数の識別子の前に指定します。固定サイズ バッファ フィールドを宣言するには、フィールド型の前に fixed キーワードを使用します となり fixed をつけると 固定サイズ バッファの型は次のうちの 1 つでなければなりません: bool、byte、short、int、long、char、sbyte、ushort、uint、ulong、float または double となってしまいます

  • 配列における数値の比較について

    #include <stdio.h> int main(void) { int i[10],j,k,match; printf("10個の数字を入力してください:\n"); for(j=0;j<10;j++) scanf("%d",&i[j]); // 一致する数字があるかどうか調べる // for(j=0;j<10;j++){ match=i[j]; for(k=j+1;k<10;k++) if(match==i[k]) printf("%dが重複しています\n",match); } return 0; } このコードなのですが、一致する数字があるかどうか調べているところの、 for(k=j+1;k<10;k++) このコードの内容が理解できません。 特にkの初期値が k=j+1 になっているのはなぜなのでしょうか? 配列i[j]には1から9までの数値が格納されているので、それと一致する数値を見つけ出すには for(k=0;k<10;k++) と同じことをすればよいのではないでしょうか? アルゴリズムがどうしても分かりません。 どなたか教えてくださる方がいたらよろしくお願いします。