全2241件中961~980件表示
  • C++でのリアルタイム入力の方法を教えてください

    C++の入力は大体 cin>> a ; といったcinを使っていますが、これはEnterを押さなくては入力できません。 Enterを押さなくても入力が完了されるような関数があるのでしょうか。 どうか教えてください。

    • SULT_1
    • 回答数1
  • templateを使ったときの未解決の外部シンボルエラー

    以下のプログラムを、Visual C++ 2008でビルドすると、 『error LNK2019: 未解決の外部シンボル "class A<double> __cdecl add(class A<double> const &,double const &)" (?add@@YA?AV?$A@N@@ABV1@ABN@Z) が関数 _main で参照されました。』 のエラーになります。 template < typename T > class A { private: T x, y; public: A( const T& xx, const T& yy ):x(xx),y(yy){} T getx() const {return x;} T gety() const {return y;} friend A<T> add( const A<T>&, const T& ); }; template < typename T > A<T> add( const A<T>& a, const T& z ){ return A(a.x+z, a.y+z); } /* 直前のテンプレートでこの関数を作ったつもりです A<double> add( const A<double>& a, const double& z){ return A<double>(a.x+z, a.y+z); } /**/ #include <iostream> int main() { A<double> a(1.0, 2.0); double z=3.0; std::cout << add(a,z).getx() << "\n"; } どう書けばよいのでしょうか。

  • C# csvファイルについて

    開発環境 Visual Stadio2005 言語 C#  スケジューラを作成しています。 予定はcsvファイルで保存しています。 予定は、 開始日付、終了日付、開始時間、終了時間、件名、場所、分類、内容の順に保存しています。 分類別に予定を一覧に表示したいと考えています。 コンボボックスに分類項目を選択できるようにして、選択後、ボタンを押すと、選んだ分類だけの予定を表示したいのです。 どなたか詳しい方、教えていただけませんか。 お願いします。

    • vino149
    • 回答数5
  • C# csvファイルについて

    開発環境 Visual Stadio2005 言語 C#  スケジューラを作成しています。 予定はcsvファイルで保存しています。 予定は、 開始日付、終了日付、開始時間、終了時間、件名、場所、分類、内容の順に保存しています。 分類別に予定を一覧に表示したいと考えています。 コンボボックスに分類項目を選択できるようにして、選択後、ボタンを押すと、選んだ分類だけの予定を表示したいのです。 どなたか詳しい方、教えていただけませんか。 お願いします。

    • vino149
    • 回答数5
  • Vectorのポインタが入ったvector

    windows Vista sp1, Visual C++ 2008でC++の勉強をしています。 Vectorへのポインタが入ったvectorを使うプログラムを書いているのですがうまくいかず、困っています。 どういうプログラムかというと、 入力ファイルの">"という記号を区切りとして、その間にある各行をひとまとめのグループとしてvectorにいれます。 さらに各vectorのポインタをべつのvectorに入れます。 最終的に区切りの数だけvectorができ、入力ファイルを読み終わった後に すべてのvectorを"各グループのポインタが入ったvector"からループ処理ですべて出力する、というものです。 /入力ファイル input.txt/ > human cat dog > beetle dragonfly spider > salmon saury catfish > vector1には human cat dog vector2にはbeetle dragonfly spider vector3にはsalmon saury catfish が入り、 別のvectorにそれぞれのvectorのポインタをいれ、 最後にこのvectorをつかって全ファイル内容を出力するというものです。 具体的に書くと、 ">"の区切りごとの各行のstringを入れるvectorとしてeach_vector。 each_vectorのポインタを入れるvectorをvector_of_ptr_each_vectorとします。 ">"を認識するごとに new で each_vectorの領域を確保し、そのポインタをvector_of_ptr_each_vectorに追加していき、">"のない行のstringを each_vectorに入れます。 ファイルの読み込みが終わった後でvector_of_ptr_each_vectorからイテレータを使って各vector(each_vector)の全要素をそれぞれ出力する、というものです。 以下のようにコードを書きました。 #include <fstream> #include <string> #include <vector> #include <iostream> using namespace std; int main( ) { ifstream ifs("input.txt"); string buf; std::vector<string> each_vector; std::vector<std::vector<string> *> vector_of_ptr_each_vector; while(ifs && getline(ifs, buf)) { if(buf[0] == '>'){ std::vector<string>* ptr_eachvector ; ptr_eachvector = new std::vector<string>; each_vector = *ptr_eachvector ; vector_of_ptr_each_vector.push_back(ptr_eachvector) ; } each_vector.push_back(buf) ; } printf("\n output from vector of ptr of vector\n"); std::vector<std::vector<string> *>::iterator it_b = vector_of_ptr_each_vector.begin(); while( it_b != vector_of_ptr_each_vector.end() ) { std::vector<string>::iterator it_c = it_b->begin();    //エラー1 while( it_c != it_b->end() ) //エラー2 { cout << *it_c << endl; ++it_c; } ++it_b; } return 0; } ですが、エラーでビルドされず、 std::vector<string>::iterator it_c = it_b->begin(); の行に関して error C2839: invalid return type 'std::vector<_Ty> **' for overloaded 'operator ->' error C2039: 'begin' : is not a member of 'std::_Vector_iterator<_Ty,_Alloc>' while( it_c != it_b->end() )   の行に関して error C2839: invalid return type 'std::vector<_Ty> **' for overloaded 'operator ->' 1> with 1> [ 1> _Ty=std::string 1> ] error C2039: 'end' : is not a member of 'std::_Vector_iterator<_Ty,_Alloc>' 1> with 1> [ 1> _Ty=std::vector<std::string> , 1> _Alloc=std::allocator<std::vector<std::string> > 1> ] fatal error C1903: unable to recover from previous error(s); stopping compilation というようなエラーが出ます。 vectorのポインタを入れたvectorの扱い、特にイテレータに関して問題があると思うのですが原因が分かりません。 また、new でのeach_vectorの領域確保の方法も怪しいという感じがします。 解決策、アドバイスありましたらよろしくお願いします。

  • Vectorのポインタが入ったvector

    windows Vista sp1, Visual C++ 2008でC++の勉強をしています。 Vectorへのポインタが入ったvectorを使うプログラムを書いているのですがうまくいかず、困っています。 どういうプログラムかというと、 入力ファイルの">"という記号を区切りとして、その間にある各行をひとまとめのグループとしてvectorにいれます。 さらに各vectorのポインタをべつのvectorに入れます。 最終的に区切りの数だけvectorができ、入力ファイルを読み終わった後に すべてのvectorを"各グループのポインタが入ったvector"からループ処理ですべて出力する、というものです。 /入力ファイル input.txt/ > human cat dog > beetle dragonfly spider > salmon saury catfish > vector1には human cat dog vector2にはbeetle dragonfly spider vector3にはsalmon saury catfish が入り、 別のvectorにそれぞれのvectorのポインタをいれ、 最後にこのvectorをつかって全ファイル内容を出力するというものです。 具体的に書くと、 ">"の区切りごとの各行のstringを入れるvectorとしてeach_vector。 each_vectorのポインタを入れるvectorをvector_of_ptr_each_vectorとします。 ">"を認識するごとに new で each_vectorの領域を確保し、そのポインタをvector_of_ptr_each_vectorに追加していき、">"のない行のstringを each_vectorに入れます。 ファイルの読み込みが終わった後でvector_of_ptr_each_vectorからイテレータを使って各vector(each_vector)の全要素をそれぞれ出力する、というものです。 以下のようにコードを書きました。 #include <fstream> #include <string> #include <vector> #include <iostream> using namespace std; int main( ) { ifstream ifs("input.txt"); string buf; std::vector<string> each_vector; std::vector<std::vector<string> *> vector_of_ptr_each_vector; while(ifs && getline(ifs, buf)) { if(buf[0] == '>'){ std::vector<string>* ptr_eachvector ; ptr_eachvector = new std::vector<string>; each_vector = *ptr_eachvector ; vector_of_ptr_each_vector.push_back(ptr_eachvector) ; } each_vector.push_back(buf) ; } printf("\n output from vector of ptr of vector\n"); std::vector<std::vector<string> *>::iterator it_b = vector_of_ptr_each_vector.begin(); while( it_b != vector_of_ptr_each_vector.end() ) { std::vector<string>::iterator it_c = it_b->begin();    //エラー1 while( it_c != it_b->end() ) //エラー2 { cout << *it_c << endl; ++it_c; } ++it_b; } return 0; } ですが、エラーでビルドされず、 std::vector<string>::iterator it_c = it_b->begin(); の行に関して error C2839: invalid return type 'std::vector<_Ty> **' for overloaded 'operator ->' error C2039: 'begin' : is not a member of 'std::_Vector_iterator<_Ty,_Alloc>' while( it_c != it_b->end() )   の行に関して error C2839: invalid return type 'std::vector<_Ty> **' for overloaded 'operator ->' 1> with 1> [ 1> _Ty=std::string 1> ] error C2039: 'end' : is not a member of 'std::_Vector_iterator<_Ty,_Alloc>' 1> with 1> [ 1> _Ty=std::vector<std::string> , 1> _Alloc=std::allocator<std::vector<std::string> > 1> ] fatal error C1903: unable to recover from previous error(s); stopping compilation というようなエラーが出ます。 vectorのポインタを入れたvectorの扱い、特にイテレータに関して問題があると思うのですが原因が分かりません。 また、new でのeach_vectorの領域確保の方法も怪しいという感じがします。 解決策、アドバイスありましたらよろしくお願いします。

  • C言語、初心者が書けそうなプログラムとは?

     はじめにお断りしますが、私はプログラマーになるつもりは全くないです。  それとプログラムの知識もほとんど全くありません。  純粋に興味として質問をさせていただきます。 以下はC言語の入門者用の目次からなのですが、 ---------------------------- if,switch,for,while 2次元配列、自作関数、ポインタ、 関数への・コマンドプロンプトでの引数の渡し方 ファイルへの読み込み・書き出し バイナリファイルの入出力 構造体、共用体と列挙体、マクロ、 複数ファイルのプログラム malloc関数 ---------------------------- (1)以上のもの+α程度を習得して、さらに人の助言などによって発展性をもたらすことができたら、具体的に(※)何のプログラムが自作できますか? (※)カレンダー、オセロゲーム など?? (2)C言語を扱うプログラマーとして会社に入社して、最初の1年目で任せられるようなプログラムとは具体的にどういうものがありますか?  特に(2)の質問は範囲が広すぎて回答が困難だと予想されますが、質問している私自身が何もわからない人間なので、質問の範囲を狭めることができません。申し訳ありませんが上手く答えられる方、お願いします。

  • C++ヘッダの肥大化

    最近、テンプレートクラスとインライン関数を多用しているため、ヘッダファイルの肥大化が気になります。 ヘッダが肥大化するとコンパイル時間も大きくなり、更にヘッダファイルの可読性も落ちてしまうと思います。 また、ライブラリ化するときはコードを隠蔽したいのですが、ほとんどがヘッダファイルに実体があるため隠蔽できません。 インライン関数やテンプレートクラス、テンプレート関数は必ずヘッダファイルに書く必要があるのでしょうか。 標準ヘッダファイルでは「*.cc」という実体コードをインクルードしているので、それに習うべきなのでしょうか。

  • C++ヘッダの肥大化

    最近、テンプレートクラスとインライン関数を多用しているため、ヘッダファイルの肥大化が気になります。 ヘッダが肥大化するとコンパイル時間も大きくなり、更にヘッダファイルの可読性も落ちてしまうと思います。 また、ライブラリ化するときはコードを隠蔽したいのですが、ほとんどがヘッダファイルに実体があるため隠蔽できません。 インライン関数やテンプレートクラス、テンプレート関数は必ずヘッダファイルに書く必要があるのでしょうか。 標準ヘッダファイルでは「*.cc」という実体コードをインクルードしているので、それに習うべきなのでしょうか。

  • static変数とマルチスレッド

    よろしくお願いします。 マルチスレッドとstatic変数の関係で悩んでいます。 マルチスレッドでグローバルstatic変数は __declspec(thread) static int kensu; ってしないと、マルチスレッド間で同じものになってしまうのはわかっているのですが ファンクション内の場合はどうだったのかわかりません。 ---------------------------- static int aa; multi_th() { func(); } func { static int bb; } ---------------------------- この場合、変数aaはマルチスレッド同士で同じものとなると思うのですが 変数bbはマルチスレッド同士で同じものになってしまうのでしょうか よろしくお願いします。

  • 明解C++ 演習3-15~19について

    ここまで順調にできていましたが、つまってしまいましたので質問をさせてください。 演習3-15 九九の表を表示するプログラムをsetw操作子を用いることなく実現する。 setwを使わないということでifを使い、10以上のときは半角スペース、9以下のときは全角スペースなどでやってみましたが、崩れてしまいます・・。 3-16 list3-13を参考に作っていましたが、勝手にできました。が、全く理解ができていません; 3-17~18は問題の意味は分かりますが、プログラムが分かりません。 19は問題の意味もほとんど分かりません。。

    • JEIFONN
    • 回答数4
  • C++ から SQLite

    C++プログラム の中で SQLite を 使おうと思っています。  このあたりが解説してある本で お勧めのものはありますか。 紹介してください。 他の言語は扱えません。 よろしくお願いします。

  • 【C++】new/deleteについて

    deleteについていまいち解らないことがいくつかあります 1 deleteしたポインタを再びnewで確保して使用してもいいのか 2 newしたものは(例えば)関数を抜ける際必ずdeleteするべきなのか それとも抜ける時に自動的に解放されるのか 3 動的オブジェクトの場合も中で動的確保したものを全てdeleteしてからdeleteするべきなのか 何卒よろしくお願いいたします。

    • sirooni
    • 回答数1
  • C++の例外

    VS2005でtest.exe から test.dll(VC++)を呼んで、プログラムを作っています。 しかし、デバッグの時に、以下の例外が発生しました。 test.exe の 0x7c812a5b で初回の例外が発生しました: Microsoft C++ の例外: int (メモリの場所 0x00115820)。 以上の例外は、どういう意味でしょうか? メモリのアクセスのエラーでしょうか? test.dllプログラムの構造としては、以下のようになります。 char readrecordTemp[READ_SIZE + 1]; memset(readrecordTemp,0x00,sizeof(readrecordTemp)); char returncode1 = 0; char returncode2 = 0; try{ for(;;){ if (NULL == fgets(readrecordTemp,VT_MAX_READ_SIZE, m_fp)){ if (ferror(m_fp)){ throw ERROR_IO; } if (feof(m_fp)){ throw EOF; } } returncode1 =readrecordTemp[strlen(readrecordTemp) -2 ]; returncode2 =readrecordTemp[strlen(readrecordTemp) -1 ]; 。。。。 。。。。 } ファイルの最後になったら、自分が定義した例外で returncode1 =readrecordTemp[strlen(readrecordTemp) -2 ]; returncode2 =readrecordTemp[strlen(readrecordTemp) -1 ]; などを飛ばしたいですが、デバッグの時に、 returncode1 =readrecordTemp[strlen(readrecordTemp) -2 ];のところで 以上の例外が出されました。どうすればいいですか?

    • ikutame
    • 回答数1
  • オブジェクトのポインタ

    #include<iostream> using namespace std; class letters{ char ch; public: letters(char c){ch=c;} char get_ch(){return ch;} }; int main(){ letters ob(A) cout<<ob.get_ch(); return 0; } なんですが cout<<ob.get_ch(); を cout<<&ob->get_ch(); には何故できないのですか? これならコンパイルできるのですが、 letters *p; p=&ob; cout<<p->get_ch(); コンパイラはVisual Studio 2008です よろしくお願いします。

  • 異なるプロジェクトの参照

    同じワークスペースにある、異なるプロジェクトのクラスを使う方法を教えてください。 VC++ 4.0 windowsXP

  • 異なるプロジェクトの参照

    同じワークスペースにある、異なるプロジェクトのクラスを使う方法を教えてください。 VC++ 4.0 windowsXP

  • アンワインド セマンティクス

    #include<iostream> using namespace std; int main(){ int i,s; cout<<"従業員の労働時間と時給を入力"; cin>>i>>s; cout<<"合計賃金は?"<<i*s; return 0; } をコンパイルしたら下のようになりました。 アンワインド セマンティクスとはなんでしょうか? よろしくお願いします。 C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xlocale(342) : warning C 4530: C++ 例外処理を使っていますが、アンワインド セマンティクスは有効にはなりま せん。/EHsc を指定してください。 Microsoft (R) Incremental Linker Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved.

    • c-gongo
    • 回答数4
  • アンワインド セマンティクス

    #include<iostream> using namespace std; int main(){ int i,s; cout<<"従業員の労働時間と時給を入力"; cin>>i>>s; cout<<"合計賃金は?"<<i*s; return 0; } をコンパイルしたら下のようになりました。 アンワインド セマンティクスとはなんでしょうか? よろしくお願いします。 C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xlocale(342) : warning C 4530: C++ 例外処理を使っていますが、アンワインド セマンティクスは有効にはなりま せん。/EHsc を指定してください。 Microsoft (R) Incremental Linker Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved.

    • c-gongo
    • 回答数4
  • アンワインド セマンティクス

    #include<iostream> using namespace std; int main(){ int i,s; cout<<"従業員の労働時間と時給を入力"; cin>>i>>s; cout<<"合計賃金は?"<<i*s; return 0; } をコンパイルしたら下のようになりました。 アンワインド セマンティクスとはなんでしょうか? よろしくお願いします。 C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xlocale(342) : warning C 4530: C++ 例外処理を使っていますが、アンワインド セマンティクスは有効にはなりま せん。/EHsc を指定してください。 Microsoft (R) Incremental Linker Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved.

    • c-gongo
    • 回答数4