全2241件中21~40件表示
  • ところどころ理屈の解らない記述

    #include<iostream> using namespace std; int main() { const int num = 5; //変数numを5の値で初期化、constを使うから値の変更はない int test[num]; //int型の配列testを初期化 cout << num << "人の点数を入力してください。\n"; //変数numを出力して点数入力を促す for (int i = 0; i < num; i++) { //int型のiを0で初期化 numよりiが小さい場合 iを1増やす cin >> test[i]; //上のfor文によって配列の点数を5回入力 } for (int s = 0; s < num - 1; s++) {  for (int t = s + 1; t < num; t++) { if (test[t] > test[s]) { int tmp = test[t]; test[t] = test[s]; test[s] = tmp; } } } for (int j = 0; j < num; j++) { cout << j + 1 << "番目の人の点数は" << test[j] << "です。\n"; } return 0; } 解るところは、コメントしてあります。 それ以外で解らないところがあるので、(特にnumの後ろにつく-1の意味が解らない) どうかご回答お願いします。

  • C++のファイルに対する配列データの読み書き

    C++で配列c[0],c[1],....の値をファイルに出力すると、 1.2 3.2 5.1 8.2 -9.1 のようになると思います(この例は配列のサイズが5)。実際は100以上の配列にします。 プログラム的にはだいたい下のようになると思っています。 std::ofstream ofs( "test.txt" ); ofs << ここで並びの出力をするはず? << std::endl; 意味は、出力ファイルの定義とストリームによる書き出し?と改行だと思います。 並びの出力ですから、ループでよいのでしょうか。プログラム作法が分からないので教えて頂きたいのですが。データの区切りは空白で、できれば書く数値のフォーマットは揃えたいですが。 次に、読み込むときはどうなるでしょうか。 std::ifstream ifs( "test.txt" ); std::string str; ifs >> str; std::cout << str << std::endl; これだと読んだデータを画面表示して終わりです。配列に読み込む方法なのですが。 よろしくお願いします。

  • C++のファイルに対する配列データの読み書き

    C++で配列c[0],c[1],....の値をファイルに出力すると、 1.2 3.2 5.1 8.2 -9.1 のようになると思います(この例は配列のサイズが5)。実際は100以上の配列にします。 プログラム的にはだいたい下のようになると思っています。 std::ofstream ofs( "test.txt" ); ofs << ここで並びの出力をするはず? << std::endl; 意味は、出力ファイルの定義とストリームによる書き出し?と改行だと思います。 並びの出力ですから、ループでよいのでしょうか。プログラム作法が分からないので教えて頂きたいのですが。データの区切りは空白で、できれば書く数値のフォーマットは揃えたいですが。 次に、読み込むときはどうなるでしょうか。 std::ifstream ifs( "test.txt" ); std::string str; ifs >> str; std::cout << str << std::endl; これだと読んだデータを画面表示して終わりです。配列に読み込む方法なのですが。 よろしくお願いします。

  • Visul Studio2010、MFCの勉強をし

    Visul Studio2010、MFCの勉強をしてます。 アプリ間のデータ授受をしたいのですが、よい方法をご存知であれば、ご教示願います。 ■質問内容 実行モジュールA.exeと、 実行モジュールB.exe(C.dllを公開)があります。 A.exeは、C.dllを明示的リンクし、スレッドを1つ起動します。 A.exeはC.dllで定義されている関数で、B.exeの変数Zの格納値を取得できます。 B.exeで変数Zの格納値が変更された時点で、A.exeのスレッド内で変数Zの格納値が変更されたことをメッセージで表示させたいのですが、何か良い方法はありますか? A.exeのスレッド内で変数Zの変更を検出するタイミングは、 スレッド内で同じタイミングで変数Zの格納値をチェックするのではなく、 try~catchのような振る舞い(変数Zの値が変更された時点を検出)になるようにしたいです。 よろしくお願いいたします。

  • Arduino

    Arduinoのシリアル通信を用いてLCDに文字列を表示しようと思っています。 以下コード #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //初期設定 void setup() { //LCDの初期設定(縦横のスケール) lcd.begin(16, 2); //起動後一回のみ表示 lcd.setCursor(2, 0); lcd.print("Hello world!"); delay(2000); lcd.clear(); //シリアル通信開始 Serial.begin(9600); } //動作開始 void loop() { lcd.setCursor(0, 0); lcd.print("Auto Mode"); lcd.setCursor(0, 1); lcd.print("Voltage = "); //データを受信時のみの動作 if (Serial.available()) { delay(100); lcd.clear(); while (Serial.available() > 0) { Serial.println("LCD Received!"); lcd.setCursor(10, 1); lcd.print(Serial.available()); } } } このコードでコンパイル後モニタを開き文字列を送信すると、 例 100を送信したとき⇒”0”のみ表示   101を送信したとき⇒”1”のみ表示 のように、最後の文字しか反映されません。 どのように修正したらよいでしょうか。

    • 締切済み
    • noname#226671
    • C・C++・C#
    • 回答数2
  • Visul Studio2010、MFCの勉強をし

    Visul Studio2010、MFCの勉強をしてます。 アプリ間のデータ授受をしたいのですが、よい方法をご存知であれば、ご教示願います。 ■質問内容 実行モジュールA.exeと、 実行モジュールB.exe(C.dllを公開)があります。 A.exeは、C.dllを明示的リンクし、スレッドを1つ起動します。 A.exeはC.dllで定義されている関数で、B.exeの変数Zの格納値を取得できます。 B.exeで変数Zの格納値が変更された時点で、A.exeのスレッド内で変数Zの格納値が変更されたことをメッセージで表示させたいのですが、何か良い方法はありますか? A.exeのスレッド内で変数Zの変更を検出するタイミングは、 スレッド内で同じタイミングで変数Zの格納値をチェックするのではなく、 try~catchのような振る舞い(変数Zの値が変更された時点を検出)になるようにしたいです。 よろしくお願いいたします。

  • Arduino

    Arduinoのシリアル通信を用いてLCDに文字列を表示しようと思っています。 以下コード #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //初期設定 void setup() { //LCDの初期設定(縦横のスケール) lcd.begin(16, 2); //起動後一回のみ表示 lcd.setCursor(2, 0); lcd.print("Hello world!"); delay(2000); lcd.clear(); //シリアル通信開始 Serial.begin(9600); } //動作開始 void loop() { lcd.setCursor(0, 0); lcd.print("Auto Mode"); lcd.setCursor(0, 1); lcd.print("Voltage = "); //データを受信時のみの動作 if (Serial.available()) { delay(100); lcd.clear(); while (Serial.available() > 0) { Serial.println("LCD Received!"); lcd.setCursor(10, 1); lcd.print(Serial.available()); } } } このコードでコンパイル後モニタを開き文字列を送信すると、 例 100を送信したとき⇒”0”のみ表示   101を送信したとき⇒”1”のみ表示 のように、最後の文字しか反映されません。 どのように修正したらよいでしょうか。

    • 締切済み
    • noname#226671
    • C・C++・C#
    • 回答数2
  • C言語の構造体について

    ご質問があります。 現在C言語について学習しているのですが、構造体を勉強しているときに下記のようなコードを作ったのですが storage size of 'mydata' isn't known というエラーが出てきてしまいます。 どこが間違っているのかがわかりません。 ご指南ご指導して頂けると助かります。 以下コード int main(void){ struct data mydata; mydata.name = "Yamada"; mydata.age = 30; mydata.height=173; mydata.weight = 65.4; printf("name = %s\n",mydata.name); printf("age = %d\n",mydata.age); printf("height = %d\n",mydata.height); printf("weight = %1f\n",mydata.weight); return EXIT_SUCCESS; }

  • [C言語] 整数を昇順でソートする

    このサイト(http://www.kusa.ac.jp/~kajiura/c/hairetsu/newpage3.htm)で、整数を昇順でソートするソースコードが示されています。しかし、for文の中にfor文、その中にif文を用いた箇所が何を実行しているのか全く理解できません。どのような思考を持てばこのようなソースコードに到るのだろう、と困惑しています。自力で書いてみるつもりでしたが、2時間くらい考えて書けませんでした。もっと簡単な方法はないのでしょうか。 #include <stdio.h> #define SIZE 5 main() { int j, k, temp, x[SIZE]; printf("5個の整数を入力してください\n"); printf("昇順に並べ替えて出力します\n"); /* 入力 */ for(j = 0 ; j < SIZE ; j++) { printf("deta = "); scanf("%d", &x[j]); } /* 並べ替え */ for(j = 0 ; j < SIZE - 1; j++) for(k = j + 1; k < SIZE ; k++) if(x[j] > x[k]) { temp = x[j]; x[j] = x[k]; x[k] = temp; } /* 出力 */ for(j = 0; j < SIZE ; j++) printf("%d\n", x[j]); }

  • [C言語] 整数を昇順でソートする

    このサイト(http://www.kusa.ac.jp/~kajiura/c/hairetsu/newpage3.htm)で、整数を昇順でソートするソースコードが示されています。しかし、for文の中にfor文、その中にif文を用いた箇所が何を実行しているのか全く理解できません。どのような思考を持てばこのようなソースコードに到るのだろう、と困惑しています。自力で書いてみるつもりでしたが、2時間くらい考えて書けませんでした。もっと簡単な方法はないのでしょうか。 #include <stdio.h> #define SIZE 5 main() { int j, k, temp, x[SIZE]; printf("5個の整数を入力してください\n"); printf("昇順に並べ替えて出力します\n"); /* 入力 */ for(j = 0 ; j < SIZE ; j++) { printf("deta = "); scanf("%d", &x[j]); } /* 並べ替え */ for(j = 0 ; j < SIZE - 1; j++) for(k = j + 1; k < SIZE ; k++) if(x[j] > x[k]) { temp = x[j]; x[j] = x[k]; x[k] = temp; } /* 出力 */ for(j = 0; j < SIZE ; j++) printf("%d\n", x[j]); }

  • C言語、配列の積

    整数型二次元配列x,yに適当な値をキーボードから入力し、次にそれらの行列の積を計算して二次元配列zに代入し、行列x,y,zの要素を出力せよ。但し、配列の大きさは最初にキーボードから入力しておき、変数宣言においては、配列の大きさを大きめに宣言しておき、キーボードから入力する配列の大きさはその範囲内で入力するようにせよ。 という問題です。よろしくお願いいたします

  • C言語のwhile文はネストできますか?

    「*」を使用して、n列、m行の四角を表示させるプログラムを考えました。 --------------------------------------------------------------------------------------------- #include<stdio.h> int main(void) { int i=0,j=0,n,m; printf("n入力:"); scanf("%d",&n); printf("\nm入力:"); scanf("%d",&m); printf("\n"); while(i<m){ while(j<n){ printf("*"); j++; } printf("\n"); i++; } return 0; } --------------------------------------------------------------------------------------------- しかし、1行分しか表示されません。 n=2、m=2の場合 ----------------- n入力: m入力: ** ----------------- としか表示されません。 whileのネストが悪いのでしょうか? それとも、初歩的なミスがあるのでしょうか?

  • ツリーコントロールのアイテム特性の変更について

    還暦を過ぎてプログラミングをしているものですが、初めて使うツリーコントロールで悩んでいます。 環境は、Windows10、VS2015 C++でネイティブSDI(FormView)に設定しています。悩みはあるアイテムについてはチェックボックスを入れたいのですが、他のアイテムではいらない場合はどのようにすればよいのでしょうか。教えてください

  • OPENCVでの複数テンプレートマッチング

    OPENCVを使って複数の画像を検出したいです。 こちらのサイトのようなことをしたいです。こちらはMAT型です。 私の使っている型ではうまくいきません。 http://workpiles.com/2015/05/opencv-matchtemplate-java/ 私のソースコードは下記の型を使用しております。 この型で複数マッチングするにはどうしたらよいでしょうか。 どなたかご教授いただけないでしょうか。 http://opencv.jp/sample/matching.html 

  • scanf C言語

    現在取得したデータを多次元配列いれたいのですが、カンマまでの文字列を入れる方法がわかりません。例で言いますと jgasogasog,dklafh343,fdjalsjfd,kldjfas5 dfasfdas6ff ,fsadfa6sg,dgas6dsa,fsdafa もカンマまでの文字列array[0][0] = jgasogasog array[0][1] = dklafh34 といった形で入れていきたいです。 ご迷惑おかけしますが何卒よろしくお願いします。 途中まで作ったソースをのせます。 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include<string.h> #define piyo 2 #define hoge 1400 int main(void) { FILE *fp; char test[10][500]; int n = 0; if ((fp = fopen("testfile.csv", "r")) == NULL) { printf("\aファイルをオープンできません\n"); return(0); } int i, j; int k = 0; //ファイルfpの終端指示子をチェックします。 while (!feof(fp) && k < 500) { //%cは一文字出力をしてくれる使用データ型はchar型 //fscanf関数は書式指定をしてファイルから値を読み込み、バッファに格納します。 for (i = 0; i < 10; i++) { for (j = 0; j < 500; j++) { fscanf(fp, "%[^,],%d", &test[i][j]); k++; } } } for (i = 0; i < 10; i++) { for (j = 0; j < 500; j++) { printf("test[%d][%d]=%d\n", i,j,test[i][j]); } } fclose(fp); return(0); } 似たような質問をしてすいません。

  • ファイル名からクリップボードにコピーしたい

    vc++で、ファイル名からクリップボードにコピーして、別のフォルダにファイルをコピーしたいのですが上手くできません、サンプル的な物はどこかにありませんか?

  • ファイル名からクリップボードにコピーしたい

    vc++で、ファイル名からクリップボードにコピーして、別のフォルダにファイルをコピーしたいのですが上手くできません、サンプル的な物はどこかにありませんか?

  • VS2012のプロパティシートの編集

     こんにちは。 VS2012 Express EdtionでDirectXのライブラリを使えるようにしているのですが 毎回設定するのはめんどくさいので プロパティシートを編集してそれを取り入れて設定させようと思っています。 しかしどのように編集したらいいか分かりません。 ネットで調べてもそれらが詳しく載っているのをみかけなかったからここで質問したしだいです。 プロパティシートというのは、propsファイルのことです。 ここで編集するのですが、ディレクトリ指定などどのようにやればいいのでしょうか?

  • VS2012のプロパティシートの編集

     こんにちは。 VS2012 Express EdtionでDirectXのライブラリを使えるようにしているのですが 毎回設定するのはめんどくさいので プロパティシートを編集してそれを取り入れて設定させようと思っています。 しかしどのように編集したらいいか分かりません。 ネットで調べてもそれらが詳しく載っているのをみかけなかったからここで質問したしだいです。 プロパティシートというのは、propsファイルのことです。 ここで編集するのですが、ディレクトリ指定などどのようにやればいいのでしょうか?

  • 親クラスのポインタで派生クラスの関数呼び出し

    下記のようなクラス構成があるとします。 説明のため簡略化しています。 [Test.h] class CParent { protected: int nParent; public: CParent(){nParent = 10;} ~CParent(){}; virtual int func1(){ // (*1) return nParent; } }; class CSub : public CParent { int m_nSub1; // 派生クラスにしかないメンバ変数 int m_nSub2; // 派生クラスにしかないメンバ変数 public: CSub(){m_nSub = 20;} ~CSub(){}; int func1(){ // (*3) return nParent*2; // 20 } // 派生クラスにしかないメンバ関数 int func2() // (*4) { m_nParent; // 10 return m_nSub1; // 不定値 } int SetData(int n) // (*5) { m_nSub2 = n; return m_nSub2; } }; [Test.cpp] void main() { CParent parent; // 親クラスのオブジェクト CParent* pParent = &parent; // 親クラスのオブジェクトを指すポインタ int nRet = 0; nRet = pParent->func1(); // (*1) // サブクラスのポインタ型にキャストする CSub* pSub = (CSub*)pParent; // (*2) nRet = pSub->func1(); // (*3) nRet = pSub->func2(); // (*4) nRet = pSub->SetData(60); // (*5) } (*3)ではpSubの指すオブジェクトが親クラス(CParent)のため、ポリモーフィズムのメカニズムに従ってCParent::func1()が呼ばれ10が返ってきます。ここまでは想定通りです。 次の(*4)ですが、これはCSub::func2()が呼ばれています。なぜこの呼び出しで子クラスの関数を呼ぶことが出来るのでしょうか? 実際その動作をさせたいのですが、なぜそうなるのかが分かりません。想定ではpSubが指す先は親クラスのため、子クラスにしかないメンバ関数func2()は呼べないはずです。 このコードでは、CSubのコンストラクタは通りませんので(そもそもCSub型のインスタンスは実体化していない)、(*4)の呼び出しでは不定値が返ります。また、(*5)は期待通り動作し、戻り値60が返っています。 これは危険な事をしているのでしょうか? 期待通りではあるのですが、なぜこのような動作になるのか理解できません。 上記のようなことをしたい場合、どのように記述するべきでしょうか?