全2241件中1~20件表示
  • C言語について。

    C言語プログラマとしては、スタートアップコードは・・・ ・自分が書いたプログラムを、直接動かすために必要なライブラリ ・それはコンパイル後、リンカによって追加されるライブラリこれは、 どういう意味でしょうか?分かりやすく教えていただけると幸いです。すみません。で、 以下のかぶくんまんさんの回答です。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11247611941 で、 C言語におけるプログラミングとは「main関数を書くこと」に他ならない。なぜ「main関数を書く」ことがC言語におけるプログラミングに他ならないのかと言えば、それは偏に「C言語のコンパイラはmain関数を呼び出すプログラムを生成するから」です。それがmain関数を求めるので結果的にmain関数がリンクされ、そしてmain関数が求めるままに他の関数もリンクされていくわけです。 で、その「main関数を呼び出すプログラム」こそが、C言語における「スタートアップコード」。 という回答で、main関数以降は、プログラマが書くのですよね?プログラマが関数をリンクさせる様なプログラムを書くということでしょうか?教えていただけると幸いです。すみません。 という所が分かりません。教えていただけると幸いです。すみません。以下のURL https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12247932542

  • C++ ファイルの値から数値を取り込んで計算

    プログラミング初心者です 現在独学でC++を学んでいるのですが,2つのファイルを入力して差分計算し,その結果を表示させるプログラミングを作りたいです.(visual studio 2019を使用しています) 例えば 5×5の数値が並んだ2つのファイル(1と2と6だけで構成されています) 11221      12212 11216      12226 22126      12221 11261      12216 12226      12216 を読み込み,それぞれの数値を差分して,以下のような結果を表示させるプログラムを作りたいです 0 -101-1 0 -10-10 10-105 0-105-5 00010 すみませんが、わかる方がいらっしゃいましたら、宜しくお願いします。

  • ファイルの最終行にデータを追加する方法について

    現在、Visual C++2008 Express Editionを用いて 既存のファイルの最終行にデータを追加する簡単なプログラムを作成しています。 しかし、その書き方(ソースコード)がわかりません。 どなたか教えてください。

  • 文字列一致判定でset,resetを判別したい

    AWS IoTのサーバを介して通信を行わせているのですが、”set”の文字列が”reset”という文字列の”set”部分で一致してtrueを出してしまうのですが、別の文字だと判別するためにはどの様にしたら良いでしょうか? (現在のコード) void mqttCallback (char* topic, byte* payload, unsigned int length) { Serial.print("Received. topic="); Serial.println(topic); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.print("\n"); char s2[] = "sec"; char s3[] = "set"; char s4[] = "reset"; char *ret; char *ret2; if ((ret = strstr((char *)payload, s2)) != NULL && (ret2 = strstr((char *)payload, s3)) != NULL ) { snprintf (msg, 75, "%sは%d番目にありました.\n", s2, ret - (char *)payload); Serial.println(msg); snprintf (msg, 75, "%sは%d番目にありました.\n", s3, ret2 - (char *)payload); Serial.println(msg); Serial.print("sec set \n"); digitalWrite(26, HIGH); Serial.println(msg); } else if ((ret = strstr((char *)payload, s2)) != NULL && (ret2 = strstr((char *)payload, s4)) != NULL ) { snprintf (msg, 75, "%sは%d番目にありました.\n", s2, ret - (char *)payload); Serial.println(msg); snprintf (msg, 75, "%sは%d番目にありました.\n", s3, ret2 - (char *)payload); Serial.println(msg); Serial.print("sec reset \n"); digitalWrite(26, LOW); Serial.println(msg); } else { snprintf (msg, 75, "%sはありませんでした.\n", s2); Serial.println(msg); } } ”msg”の文字列には sec set sec reset この2パターンのどちらかが来ます。 ただ、(ret2 = strstr((char *)payload, s4)) != NULL  で”reset"を検出したいのですが、 re"set"部分を(ret2 = strstr((char *)payload, s3)) != NULL が検出してしまう様で、どちらもtrueのとして検出してしまいます。 どうぞ、ご教示の程よろしくお願い致します。

  • コンパイラエラー C2872 あいまいなシンボル

    コンパイラエラー C2872 あいまいなシンボルです。 コンパイルエラーが解消出来ません。 ご教授下さい。 ■コンパイルエラー内容 error C2872: 'MarketplaceWebServiceProducts' : あいまいなシンボルです ■やりたいこと AmazonのAPI「Marketplace Web Service API (MWS)」のHello world 以下ページの右上 オレンジ色の「Download」ボタンから入手できる 「MWSProducts_2011-10-01_v2017-03-22.dll」の使用 https://developer.amazonservices.jp/doc/products/products/v20111001/cSharp.html ■DLLの使用 Visual Studioの対象プロジェクトのプロパティから、 上記DLLの参照を追加しました ■コーディング using namespace MarketplaceWebServiceProducts;//←ここはコンパイルOK using namespace MarketplaceWebServiceProducts::Mock;//←★ここで上記コンパイルエラー ■ご質問 上位の「MarketplaceWebServiceProducts」が正常なのに、 下位の「Mock」を付けるとあいまいなシンボルになるのはなぜでしょうか。 解決策をご教授ください。(可能であれば実装をご提供ください) ■環境 Visual Studio .Net 4.0 C++/Cli

  • 最大値に依存した処理の選択について

    実数型の変数がa,b,c,d,e,fの6つがあり、その6つの内で例えば、bが一番大きいならば、こうする、というような処理を考えています(たいした問題ではないように見えます)。一番大きいものを選びだすことは簡単です。それをxとします。しかし、a,b,c,d,e,fのどれなのかわかりません。そこで、xとa,b,c,d,e,fを比べていき一致したら”それ”と決定できるのですが、2つの実数間で一致を照合するというのにまずさを感じています。なお、同じものがあったらどうするかという問題はあまり気にしません。先に見つかった方でいいのです。それは見つける順番で工夫できます。2つの実数の一致を検出するのは問題ないのでしょうか。みつからないというのが問題なのですが。当方は科学計算なのでフォートランなのですが、考え方が分かれば別言語の方法でも参考になるので考え方についてよろしくお願いします。そういう意味で処理系に依存した方法でないことを所望しますが。

  • C# アプリ起動バスについて

    ビルドした後に、exeを置いている、起動パスを取得したいのです。 どうしたらいいか、教えてください。

  • アルゴリズムを勉強していたのですが、線形探索をする

    アルゴリズムを勉強していたのですが、線形探索をする時にデータ件数がNの時平均比較回数が(N+1)÷2回となっていたのですが、なぜ+1をしているのでしょうか?普通にN÷2ではダメなんでしょうか 解説お願いします

  • 参照型変数を宣言と同時に初期化しない

    参照型変数は、宣言と同時に初期化する必要があります。 宣言時には参照先が決定しておらず、条件によって動的に参照先を決定したい場合、どのように記述すれば良いでしょうか? ------------------------------------------------------------------- CMyClass& obj; // 条件によって異なるオブジェクトを参照したい switch (mode) { case A: obj = objA; // 外部で生成済みのオブジェクトへの参照 break; case B: obj = objB; break; ・・・ case X: obj = objX; break; } // 以下、mode共通の処理 obj.hogehoge(); ------------------------------------------------------------------- 三項演算子を入れ子にして一行に収めれば可能ですが、スマートではないし見た目にも良くありません。 CMyClass& obj = A ? objA : (B ? objB : objC);

  • C++の課題について教えてください。

    配列のコピーに関する問題なのですが、なぜエラーになるのか教えてください。 #include <iostream> using namespace std; void arrayCopy(int target,int original,int size){ for(int i=0;i<size;i++){ target[i]=original[i]; } } int main(){ const int size=5; int original[size]={1,2,3,4,5}; int target[size]; arrayCopy(target,original,size); print(target,size); }

  • cwchar内でエラーが起きます。

    C++を勉強しているのですが、コンパイルをすると、 識別子が必要です cwchar C2059 構文エラー: '::' cwchar C2589 'unsigned': スコープ解決演算子 (::) の右側にあるトークンは使えません。 cwchar と、cwchar.h内でエラーが起きてしまいます。コードを絞っていって、最終的に以下のコードでもエラーが起きていました。 #include <iostream> using namespace std; int main(){     cout << "HelloWorld." << endl;     return 0; } なぜでしょうか?改善方法を教えていただけると嬉しいです。 環境はVisualStudioCommunity2015 windows10 です。

  • C++のnewの使い道

    最近C++を勉強しているのですが、new演算子はどういうときに使うべきでしょうか? メモリを動的確保できるのはわかります。 Cのmallocのようなものと考えていいのでしょうか? つまり、関数内でメモリを確保してそのアドレスを返すとか、コンパイル時に不明なサイズのメモリを実行時に確保するとか、任意のタイミングでメモリを開放したい場合などに使うものでしょうか。 ある参考書を読んでいると「引数つきコンストラクタを呼び出す場合はnewでインスタンス生成する」と書いてありました。 デフォルトコントラスタならnewなし、引数付きならnewあり、ということらしいです。 なぜこんなことをする必要があるのでしょうか?

  • C++のnewの使い道

    最近C++を勉強しているのですが、new演算子はどういうときに使うべきでしょうか? メモリを動的確保できるのはわかります。 Cのmallocのようなものと考えていいのでしょうか? つまり、関数内でメモリを確保してそのアドレスを返すとか、コンパイル時に不明なサイズのメモリを実行時に確保するとか、任意のタイミングでメモリを開放したい場合などに使うものでしょうか。 ある参考書を読んでいると「引数つきコンストラクタを呼び出す場合はnewでインスタンス生成する」と書いてありました。 デフォルトコントラスタならnewなし、引数付きならnewあり、ということらしいです。 なぜこんなことをする必要があるのでしょうか?

  • ○△□の模様

    正の整数を入力してその数値の幅だけの正方形をの模様になるように作成する方法(法則性は実行例2を参照、非負の整数が入力された場合は再入力を促す)はどうするのですか? 実行例1 幅:1○ 実行例2 幅:5 ○△□○△ △□○△□ □○△□○ ○△□○△ △□○△□ 実行例3 幅:0 非負の整数を入力してください。 幅:3 ○△□ △□○ □○△

  • 棒グラフ C言語

    C言語)実行結果のような非負の整数を読み込んで棒グラフを表示させるプログラム[読み込んだ整数が-1である場合は整数の入力を表示して棒グラフの表示を行う。グラフは★一つで10、☆一つで1を表すこととする。配列を使う。数字を表示する際は3桁分のスペースを使う]はどう作成すればいいのでしょうか? 実行結果 非負の整数を入力してください。(-1が入力されれば即終了) 1:100 2:55 3:77 4:13 5:4 6:-1 1:100 ★★★★★★★★★★ 2: 55 ★★★★★☆☆☆☆☆ 3: 77 ★★★★★★★☆☆☆☆☆☆☆ 4: 13 ★☆☆☆ 5: 4 ☆☆☆☆

  • 構造体メンバ及び、strncpy()について

    /* 構造体のメンバを char name[30]; にした時は実行できますが、char *name; としたときはプログラムを実行できません。 コンパイルエラーはともに出ないのですが、strncpy();の使い方が間違っているのか、先に構造体側でメモリサイズを確保しないと、使えないのか? メンバをポインタで持たせた構造体を初期化する関数の作り方を教えてください。 よろしくお願いします。 */ #include <stdio.h> #include <string.h> typedef struct{ char *name; int no; }ST; void set_name(ST *st, char *name, int no); int main(void) { ST st; set_name(&st, "テスト", 1); printf("%s No%d\n", st.name, st.no); return 0; } void set_name(ST *st, char *name, int no) { strncpy(st->name, name, 30); st->no=no; }

  • condition_variable::wait~

    こんばんわ。タイトルに入りきらないので省略してしまいました。 condition_variable::wait_forについて質問です。 windows用のスレッドをstd::threadに置き換えてみようと思いまして、 以下のようなプログラムを書いてみました。 ---------------------------------------------------------- #include <thread> #include <mutex> #include <memory> #include <windows.h> // Sleep 用。 class CFoo { protected : struct _THREADPARAM { std::condition_variable m_cond_var_ExitQuery ; } ; // struct _THREADPARAM public : CFoo( void ){} virtual ~CFoo() { this->exitThread() ; } void Wakeup( void ) { m_lpoThread.reset( new std::thread( fnThread, std::ref( m_mutex ), &m_sThreadParam )) ; } protected : void exitThread( void ) { puts( "スレッドの終了処理をします。" ) ; m_sThreadParam.m_cond_var_ExitQuery.notify_one() ; m_lpoThread->join() ; m_lpoThread.reset() ; puts( "スレッドが終了しました。" ) ; } static int __stdcall fnThread( std::mutex& _mutex, _THREADPARAM* const lpsThreadParam ) { std::unique_lock< std::mutex > lk( _mutex ) ; std::cv_status result ; puts( "スレッドを開始します。" ) ; while( true ) { result = lpsThreadParam->m_cond_var_ExitQuery.wait_for( lk, std::chrono::seconds( 1 )) ; if( result == std::cv_status::no_timeout ) { puts( "ループを抜けます。" ) ; break ; } puts( "ループ中。" ) ; } puts( "スレッドを終了します。" ) ; return 0 ; } protected : std::mutex m_mutex ; std::shared_ptr< std::thread > m_lpoThread ; _THREADPARAM m_sThreadParam ; } ; // CFoo int main() { CFoo* foo ; foo = new CFoo() ; foo->Wakeup() ; ::Sleep( 100000 ) ; delete foo ; return 0 ; } ---------------------------------------------------------- 上記のプログラムを走らせると、「ループ中。」がずっと表示されなければならないのですが、何かのタイミングでループを抜けてしまいます。 if( result == std::cv_status::no_timeout )が真になってしまいます。 何か設定が足りないのでしょうか? ご存じの方がいらっしゃいましたら教えていただけないでしょうか。 よろしくお願いします。

  • VS2013リンクするライブラリ一覧表示方法は?

    こんばんは。 Visual Studio 2013の初心者です。基本的なことで困っております。 どうかアドバイスをお願い申し上げます。 ・質問内容 プロジェクトに登録されているリンクするライブラリ名(*.lib)を確認する(一覧表示する)方法を教えて下さい。 ・背景 とある仕事を引きつぐことになりまして、貰ったVS2013のプロジェクト(ソース)をビルドしようとしましたが「****.lib」がありません。と出て来てリンクエラーになってしまいます。 足りないライブラリを追加してまたビルドすると別の「****.lib」がありません。と出てしまいます。この繰り返しです。 しかし、その都度「***.libファイルが足りない」と言って貰うのは、ウザがられるので一括して見る方法が判りません。 プロジェクトファイルでリンクに必要な「ライブラリの一覧」を見たいのです。そして、「これだけのlibが無いので欲しい」と一括して貰いたいのです。 しかし、lib名を検索掛けても何処にリンクに必要なライブラリ一覧が記録されているファイルが見つかりませんでした。 一体何処に記録されているのでしょうか? 色々web検索したのですがどうしても見つかりません。 大変、難儀しております。 宜しくお願い申し上げます。

  • 点数の最高得点を知るプログラム

    #include<iostream> using namespace std;  int main() {  int i;  int box[5]; cout << "テストの点数を入力してください。\n"; for (int i = 0; i < 5; i++) { cin >> box[i]; } return 0; } for文で 点数を入力まで行ったのですが、 関数で配列を使って入力した最大値を調べるプログラムの練習問題なんですが、 何回もエラー出てしまいよく解っていません。 関数からポインタまで配列でどうつかうかがよく解ってないんだと思います。 良かったら教えてください、お願いします。

  • C++ クラス定義の質問

    C++学習者です。Visual studio community 2015 を使っています。 銀行口座を表す SavingsAccount というクラスを作り、添付のプログラムをコンパイルしようとしましたが。以下のようなエラーメッセージが出てきました。 1>------ ビルド開始: プロジェクト:ConsoleApplication86, 構成:Debug Win32 ------ 1>savingsAccount.obj : error LNK2001: 外部シンボル ""private: static double SavingsAccount::annualInterestRate" (?annualInterestRate@SavingsAccount@@0NA)" は未解決です。 1>C:\Users\Shiro\documents\visual studio 2015\Projects\ConsoleApplication86\Debug\ConsoleApplication86.exe : fatal error LNK1120: 1 件の未解決の外部参照 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== ちゃんと値を代入しているのに、annualInterestRate が未解決とはどういうことなのでしょうか? 以下が、クラス定義ヘッダーファイル、クラス関数定義ファイル、クライアントプログラムです。どうかよろしくお願いいたします。 //**************************************** // クラス定義ヘッダーファイル //**************************************** #pragma once #ifndef SAVINGSACCOUNT_H #define SAVINGSACCOUNT_H class SavingsAccount { static double annualInterestRate; public: SavingsAccount(double); ~SavingsAccount(); static void modifyInterestRate(double); double calculateMonthlyInterest(); double getBalance() const; double getSavingsBalance() const; private: double balance; double savingsBalance; }; #endif //*************************************** // クラス関数定義ファイル //*************************************** // savingsAccount class member functions #include "stdafx.h" #include <iostream> using namespace std; #include "savingsAccount.h" double annualInterestRate = 0.03; SavingsAccount::SavingsAccount(double initialAmount) :balance(initialAmount) { savingsBalance = balance + calculateMonthlyInterest(); cout << "savings account with balance of " << balance << " and savings balance of " << savingsBalance << " has been constructed\n"; } SavingsAccount::~SavingsAccount() { cout << "savings account of the savings balance of " << savingsBalance << " has been destructed\n"; } void SavingsAccount::modifyInterestRate(double newRate) { annualInterestRate = newRate; } double SavingsAccount::getBalance() const { return balance; } double SavingsAccount::getSavingsBalance() const { return savingsBalance; } double SavingsAccount::calculateMonthlyInterest() { return balance * annualInterestRate / 12; } //******************************************** // クライアントプログラム //******************************************** // ConsoleApplication86.cpp : // class SavingsAccount driver program #include "stdafx.h" #include <iostream> using namespace std; #include "savingsAccount.h" int main() { SavingsAccount saver1(2000.00); SavingsAccount saver2(3000.00); cout << "original amount of saving for saver1 : " << saver1.getBalance() << " and savings with interest: " << saver1.getSavingsBalance() <<endl; cout << "----------------------------------\n"; cout << "original amount of saving for saver2 : " << saver2.getBalance() << " and savings with interest: " << saver2.getSavingsBalance() << endl; return 0; }