• ベストアンサー

Visual C++ Express Editionで IntelliSenceが全く動かない…

通常コードを途中まで打てば候補が自動表示されるはずですよね? 例えば pri と入れれば printf という候補が if と入れれば if ( ){ } というような形で出てくると思っていたのですが… ツール > オプション > テキストエディタ > C/C++ > 全般の 入力候補 > 自動メンバ表示やパラメータヒント にチェックがついているのも確認しましたが、それでも解決しません alt + → を押せばなんとか出てくるのですが、自動でなくては困ります。 何か解決法がございましたら教えてください よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.3

No.2です。 ちょっと補足訂正しておきます。 http://msdn.microsoft.com/ja-jp/library/aa991993.aspx によると、 「現在のところ、Visual C++ および HTML では、IntelliSense コード スニペットは サポートされていません。」 と書かれていますので、おそらくC++用の定義パターンがないだけでなく、 新しい定義を自分で作ることもできないのだと思います。 前述の「Visual Studio 2005 IDE Enhancements」をインストールしてみる くらいしか手がなさそうですが、これもexpress editionはサポートされていません。

master817199
質問者

お礼

丁寧なご回答に感謝します ありがとうございました

その他の回答 (2)

  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.2

C#なら、ifと入れた後、Tabキーを押すことで if (true) { } というパターンが挿入されます。 これは、IntelliSenseのコードスニペットというもので、 C++には標準で搭載されていなかったと思います。 (たぶん仕組みはあるのだけど、C++用のパターンが定義されて いないのだと思います。) Visual Studio 2005のC++であれば、 http://mahral.com/VS/PowerToy.htm にあるように、 「Microsoft Visual Studio 2005 IDE Enhancements」を インストールすれば使えるようになるかもしれません。 (私は使ったことはありません。) または http://msdn.microsoft.com/ja-jp/library/ms165402(VS.80).aspx に書かれている手順でオンライン検索し、誰かが作ったものを 利用できるかもしれません。 http://msdn.microsoft.com/ja-jp/library/ms165393(VS.80).aspx を参考にすれば、自分で新しいスニペットを作ることもできるようです。

回答No.1

> 例えば pri と入れれば printf という候補が > > if と入れれば > if ( ){ > > } > > というような形で出てくると思っていたのですが… > alt + → を押せばなんとか出てくるのですが、自動でなくては困ります。 それがIntelliSenceの機能だと、どこかに書かれてましたか? 私が知っている機能には、そのようなものはないのですが。

関連するQ&A

  • Visual C++ 6.0 の使い方について

    こんにちは、よろしくお願いします。 基本的なことで申し訳ないのですが、 Visual C++ 6.0で、ソースを書いている最中に、 例えばprintf関数であれば、 printf( 、とここまで書くと、printf関数のパラメタ一覧が表示されるような設定はどこだったか忘れてしまいました。 すみませんが、よろしくお願いします。

  • Visual C++ 2008 Express Editionを使って

    Visual C++ 2008 Express Editionを使ってプログラムを書いています。 ネットワークHDDから連番になっているファイルを読み込みたいのですが、 どうすればいいでしょうか? 現状は、for文で (char) filename[100]という変数にファイルパス付の連番のファイル名 (\\\\IPアドレス\\フォルダ名\\ファイル名)を次々に代入して、 if( _sopen_s( &fh, filename, _O_RDONLY,_SH_DENYWR,_S_IREAD) == 0 ){ filesize=_filelength( fh ); offset=filesize-MX*MY*2; printf( "File length : %ld\n", filesize ); printf( "Offset length : %d\n", offset ); _close( fh ); } else { printf("\n file open error "); return 1; } という形で読み込みをすると、file open errorとなってしまいます。 コード1行目のfilenameのところを"\\\\IPアドレス\\フォルダ名\\ファイル名"とすると 読み込みできるのですが、上のコードだと読み込むことができません。 (char)に代入したことで\がファイルパスを指定するものとして認識されていないのかな、 と思って調べているのですが、経験も浅いので解決策がわからず、困っています。 初心者の未熟者ですが、ご教示よろしくお願いします。

  • Visual C++ error なんで?

     将来プログラマーを目指して勉強中の中学生です。    おとといC言語を始めてやさしいCを半分ぐらい読み 数当てゲームを作ってみようと思い今製作中なのですが(ランダムに数字を出すとかはできない)どうしてもエラーがでてしまうのです。 googleなどでエラーを調べてもどうしても解決につながらないので、本当は自力で見つけてバグを直さなくてはいけないのはわかっているのですが、ここで質問させていただきます。 ※ソース見にくいかもしれませんがすいません。  この数当てゲームは、100から999までの数字で入力された数字が、あらかじめ用意されている答えより小さいか大きいかを判断して 答えに近づいていくゲームです。 ------------------ソース--------------------------- /*数当てゲーム*/ //9/13日:作成開始 //9/13日:全角の空白には注意!!!エラー発生。問題解決 //9/14日:エラー #include <iostream>//本当は<stdio.h>でやっています。 int main (void) { int anser,tasu1; anser=749; printf("数当てゲームです。私があらかじめ用意しておいた数を当てる単純なゲームです。答えは100から999での間です。\n"); printf("では100から999までの数字を入力してください。\n"); scanf("%d", &tasu1); //tasu1に入力された数字を格納 if(tasu1 == anser){ printf("正解です!おめでとうございます。\n");//入力された数字がanserと一致したときここを処理 } else if(tasu1>anser){ printf("答えは入力された数字より小さいです。\n");//tasu1がanserより大きい場合ここを実行 } else if(tasu1<anser){ printf("答えは入力された数字より大きいです。\n");//入力された数字がanserより小さいときにここを処理 } else if(tasu1<100){ printf("入力された数字が許容範囲を超えています。\n");//入力された数字が100未満のときここを処理 } else if(tasu1>999){ printf("入力された数字が許容範囲を超えています。\n");//入力された数字が999より大きいときここを処理 } else{ printf("入力された数字が不正です。\n");//それ以外はここを処理 } return 0; } 見にくいですが、どうぞ回答よろしくお願いします。

  • Visual C++でのプログラミング

    学校でプログラミングの課題が出たので自分のパソコンに Microsoft Visual C++ 2010 Express をインストールして作ってみました。 それが以下のプログラムです。 これは任意の値nを入力してa[n]までの配列をつくり それを降順に並び替えるものです。 #include <stdio.h> #define N 10000 int main(){ int a[N],i,j,max,min,n,temp; n=0; printf("n="); scanf("%d",n); if(N<n){ return 0; } else if(n<=0){ return 0; } else if(n<=N){ for(i=0;i<=n;i++){ printf("a[%d]",i); scanf("%d\n",&a[i]); } max=min=a[0]; for(i=1;i<n;i++){ if(max<a[i]){ max=a[i]; } else if(min>a[i]){ min=a[i]; } } printf("a[i]のソート結果\n"); for(i=0;i<n;i++);{ for(j=i+1;j<n;j++){ if(a[i]<a[j]){ temp=a[i]; a[i]=a[j]; a[j]=temp; } } } for(i=0;i<n;i++){ printf("a[i]=%d\n",a[i]); } printf("Max=%d\n",max); printf("Min=%d\n",min); } } これをVisual C++でデバックすると 『test.exeの0x0fcbe42e(msvcr100d.dll)にハンドルされていない例外が発生しました:0C0000005: 場所 0x00000000 に書き込み中のアクセス違反が発生しました。』 と表示されて実行できません。 今日インストールしたばかりなのでどこでエラーが起きているのかわかりません。 これはプログラミングとVisual C++のどっちが原因なのでしょうか? もしお分かりになるならば、具体的な解決方法や プログラムの訂正点などを教えていただきたいです。

  • Visual C++ 2008 Express Editionの公式本

    「Microsoft Visual 2008 Express Edition」の公式本を以下のサイトで購入し、(バージョンは9.0です) http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8D%E3%81%86%EF%BC%81-Microsoft-Visual-Express-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E5%85%AC%E5%BC%8F%E8%A7%A3%E8%AA%AC%E6%9B%B8/dp/4891005823 その購入した本を見ながら進めていますと、次の現象が起きてしまいました。 「デバッグでエラーとして引っ掛からないエラー」 Button1のみをクリックすると警告文が表示され、RadioBotton1、又はRadioBotton2をクリックし、 Button1を押すとそれぞれの警告文が表示されるというコードを入力したのですが、 この三つの内、Button1のみでクリックした場合でしか表示されませんでした。 この三つを表示させられるコードを教えていただけませんか。 こちらが私が入力したコードです。 private: System::Void button1_Click_1(System::Object^ sender, System::EventArgs^ e) { //オプションボタン(ラジオボタン)の状態を確認 if (this->radioButtonKisu->Checked == true){ System::Diagnostics::Debug::WriteLine("奇数を選択しました"); }else if(this->radioButtonGusu->Checked == true){ System::Diagnostics::Debug::WriteLine("偶数を選択しました"); }else{ MessageBox::Show("奇数か偶数を選択して下さい","お願い"); return; } 回答を宜しくお願いします。

  • C言語習いはじめです

    大学の講義でC言語を習い始めたのですが、if文でコンパイルするとどうしても解決できないエラーが起こってしまいます。 文の意味は 「4で割り切れる年は”閏年”また、400でも割り切れる年も”閏年”と表示する。100で割り切れる年は”平年”と表示する」 というものです。値は2100で指定しています。 #include <stdio.h> main() { int y; printf(" y=2100; "); { if(y%400:0) { printf("a leap year \n"); {/* 閏年 */} } else if(y%100:0) { printf("a common year \n"); {/* 平年 */} } else if(y%40:0) { printf("a leap year \n"); {/* 閏年 */} } else { printf("a common year \n"); {/* 平年 */} } } return 0; } これをコンパイルすると、どうしても 「エラー E2377 ”ファイル名” 5: If文に ) がない(関数 main)」 と出てきてしまいます。 残るこのエラーだけが解決できません。どなたか、間違っている点がわかる方はいませんでしょうか。お願いします。

  • C言語について

    C言語のじゃんけんゲームを作成したいのですが、 仕様は 1.利用者とコンピュータによる対戦形式とします。 2.利用者がキーボードから入力した手(グー・チョキ・パー)と、擬似乱数を用いて生成したコンピュータの手を比較し、利用者の勝ち・あいこ・負けの結果を表示しなさい。 3.利用者の入力が不正の場合には再度入力を促すなど、適切な処理をしなさい。 4.これまでの累積勝利数・引き分け数・敗北数をそれぞれ、user_win・user_draw・user_loseの3つの変数(int型)に格納しなさい。 5.連勝中の場合は「5連勝中!」などと表示させるようにしなさい。 6.あいこである限りは自動的にじゃんけんを反復しなさい。 7.勝敗がついた場合、利用者にまだ継続するか質問した上で、じゃんけんを反復させなさい。 8.じゃんけんを終了した場合、これまでの通算成績として、累積勝利数・引き分け数・敗北数のほか、勝利=累積勝利数÷(累積勝利数+累積敗北数)×100、および、最大勝利数を計算して表示しなさい。 という仕様のじゃんけんゲームを作成したいのですが、下記に書いているまでしかできません。誰か教えていただけないでしょうか。分からなくて困っています。 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ int a,c; srand(time(NULL)); c = rand()%3+1; printf("手を入力してください [1:グー 2:チョキ 3:パー] "); scanf("%d",&a); if(a==1 && c==1) printf("あなたはグーで、私もグーでした。アイコです。\n"); else if(a==1 && c==2) printf("あなたはグーで、私はチョキでした。あなたの勝ちです。\n"); else if(a==1 && c==3) printf("あなたはグーで、私はパーでした。あなたの負けです。\n"); else if(a==2 && c==1) printf("あなたはチョキで、私はグーでした。あなたの負けです。\n"); else if(a==2 && c==2) printf("あなたはチョキで、私もチョキでした。アイコです。\n"); else if(a==2 && c==3) printf("あなたはチョキで、私はパーでした。あなたの勝ちです。\n"); else if(a==3 && c==1) printf("あなたはパーで、私はグーでした。あなたの勝ちです。\n"); else if(a==3 && c==2) printf("あなたはパーで、私はチョキでした。あなたの負けです。\n"); else if(a==3 && c==3) printf("あなたはパーで、私もパーでした。アイコです。\n"); else printf("正しい手を入れてください。\n"); return 0; }

  • visual c++ 2008のバグ?

    visual c++ 2008 Express Editionを使ってC++言語でプログラミングしているのですが、どうしても理解できない動作に困っています。 int putPiece(int x, int y, int typ, int dir, int blo, int col){ ・・・ if(canPlacePiece(x, y, typ, dir, blo, col) == true){ ・・・ } } int canPlacePiece(int x, int y, int typ, int dir, int blo, int col){ ・・・ //変数宣言 printf("%d,",x); //デバックのため ・・・  } かなり省略してますが、上のような感じで、パズルのピースを置くための関数putPiece内で引数をそのまま関数canPlacePiece(ピースを置けるか調べる関数)に渡します。関数canPlacePieceはピースが置けるならtrueを返し、置けないならfalseを返すようにしてあり、関数putPiece内のif文内にはピースを置くための処理が書かれています。 問題はこの関数putPieceを呼び出した際に、ループ文があるわけでもないのにcanPlacePiece関数が何回も呼び出された感じの動作をするということです。たとえばputPiece関数の引数xに1を入れて呼び出したとき、canPlacePiece関数内printf文でxの中身1が1回だけ表示されるだけのはずが、「1,2,2,2,2,2,・・・」と表示されます。このようにcanPlacePiece関数が引数を変えて何回も呼び出されているような動作をしていますが、この関数を抜けるとピースを置く処理をしてreturn trueするか、置けずにreturn falseしてputPiece関数を抜けるだけなので、こんな動作はありえないはずなんです。 これはvisual c++ 2008のバグ? それともC++の仕様? それともまだ見落としているところがある?

  • VisualC++で入力サポートが機能しない

    VisualC++6.0でプログラミングをしています。 VCでは、クラスで"."や"->"を入力すると、クラスのメンバ一覧が自動的に表示されるはずですが、 いつのまにかこの表示が出なくなってしまいました。 この機能を復活させる方法を教えてください。 ツールバーの[ツール]→[オプション]→[エディタ]タブ→[ステートメント入力候補のオプション] は全てチェックが入っている状態です。 便利な機能なので復活させたいです…。 どなたか回答をよろしくお願いします。

  • Microsoft Visual C++エラー

    IEを起動するとMicrosoft Visual C++ Runtime Library このようなエラーが出てIEが表示されず自動的に強制終了されてしまいます。 調べてみたところMicrosoft Visual C++ の古いバージョンをアンインストして新しいものを入れると直ると書いてあったのですが。試してみても直りませんでした。 IEのリセットもしたのですが変化はありません。 どなたか解決策に心当たりがあれば教えてくださいおねがいします><

専門家に質問してみよう