• 締切済み

Visual Studio C++のデータ入力

C言語を一から勉強しています。 Visual Studio C++を使ってプログラムを入力していて、デバッグの際にscanfでテストデータを入れたいのですが、入力の方法が分かりません。 どうやったらよいのでしょうか。 Visual Studio 2019で、C++のコンソールアプリケーションというものを使っています。

みんなの回答

回答No.4

>変数(?)に代入するのではなく、入力でできないかな?と思ったのですが。 入力はするが、どこにも格納されない?物を望んでいるのであれば、 ダミーの変数に対して、scanf(_s)をすればいいだけかと。 >例えば、あらかじめ「10 20 30 50」といったデータを用意しておいて、コンパイル時に投入してくれる、みたいな。 #2さんが書いてくれたものを拡張すればいいだけです。 #ifdef _DEBUG  int a=4;  int b=5; #else  int a=2;  int b=3; #endif 配列だろうが、定数だろうが、これで、コンパイル時に セットした状態にできますので、あとは応用でどうにでもなりますよ!

hirapiro
質問者

お礼

うーん、なかなか難しいですね。 結局、Visual C++を使って、デバッグの時にコンソールから手で入力するようにしました。 ありがとうございました。

  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.3

お使いの処理系では scanf のかわりに scanf_s を使う必要があるかもしれません。

hirapiro
質問者

お礼

scanfは使えないのですね。 ありがとうございました。

回答No.2

例えば、 int main(){  int a=2;  int b=3; #ifdef _DEBUG  printf("a="); scanf("%d", &a);  printf("b="); scanf("%d", &b); #endif  int c = a + b;  printf("c=%d", c); } だとか?

hirapiro
質問者

お礼

ありがとうございます。 変数(?)に代入するのではなく、入力でできないかな?と思ったのですが。 言葉で説明するのが難しくて申し訳ないです。 例えば、あらかじめ「10 20 30 50」といったデータを用意しておいて、コンパイル時に投入してくれる、みたいな。 うまく伝えられなくて申し訳ないです。

  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.1

サンプルコードです。 #include <iostream> using namespace std; typedef void (*func)(int a, int b, int *c, int *d); void add(int a, int b, int *c, int *d) { *c = a + b; } void sub(int a, int b, int *c, int *d) { *c = a - b; } void mul(int a, int b, int *c, int *d) { *c = a * b; } void div(int a, int b, int *c, int *d) { *c = a / b; *d = a % b; } void input(int *a, int *b) { cout << "1個目の整数を入力してください。\n"; scanf("%d", a); // 1個目のテストデータ cout << "2個目の整数を入力してください。\n"; scanf("%d", b); // 2個目のテストデータ } void answer(int a, int b, func *f, int sz) { const char *op[] = { "+", "-", "*", "/" }; int c, d; for (int i = 0; i < sz; i++) { f[i](a, b, &c, &d); cout << a << op[i] << b << "=" << c << "です。"; (i != sz - 1) ? cout << "\n" : cout << "あまりは" << d << "です。\n"; } } int main(void) { func f[] = { add, sub, mul, div }; int a, b; input(&a, &b); answer(a, b, f, sizeof(f) / sizeof(f[0])); return 0; }

hirapiro
質問者

お礼

難しくて理解できませんでした。 せっかくお答えいただいたのに申し訳ありません。 もっと勉強します。

関連するQ&A

  • Visual C++ 2010 Express: [デバッグなしで開始

    Visual C++ 2010 Express: [デバッグなしで開始] 実行時もコンソールが閉じる Visual C++ 2008 Expressでは、 [デバッグなしで開始](Ctrl + F5)を実行すると、 出現したコンソールが、キー入力を待つ状態になっていたのですが、 Visual C++ 2010 Expressでは、同じ操作では 実行後にコンソールが閉じてしまいます。 Visual C++ 2010 Expressでも、[デバッグなしで開始]を 実行した後に、コンソールを閉じなくする方法があるのでしょうか? C言語の勉強中です。 最近コンピュータを新しくしたので、 ついでにVisual C++ 2010 Expressをダウンロードしたのですが、 プログラムの実行が確認できなくて困っています。 よろしくお願いします。

  • Visual Studio 2005で

    現在、会社(建設会社)でVisual Studio 2005 Professionalを購入し、従来使用していたMicrosoft Accessで作成した業務アプリケーションの移行を計画中です。 そこで、Visual Studioには様々な開発言語が組み込まれていますが、どれを使うのがよいか決めかねています。 Accessを使っていたのであれば、VisualBasicが賢明だとは思うのですが、最近C言語を扱える中途採用者を採用し、上司がC言語での作り変えを要求しています。 理由は、AccessよりC言語の方が速いとか安定しているというものと、今後C言語で作り変えたものを他社に販売する計画があるからです。 Accessで作成したアプリケーションは、サーバにmdbを置いて、複数のクライアントでデータを入力するものです。 入力されたデータを管理者が一覧で閲覧できたり、承認したりする機能もあります。 このような形態のアプリケーションを果たして、 何で作り変えていけばいいのでしょうか ちなみにその中途採用者は、あくまでC言語を扱っていただけでVisualC++やVisualC#は初めてでして、ほぼ初心者なんです。 そのこと、上司は知らないし…

  • Visual Studio のコンソール出力

    Visual Studio 2015 を使ってC++のコンソールアプリケーションを作る練習をしています。 ソースプログラムは印刷できるのですが、プログラムを実行してコンソールに出力された結果を印刷するにはどうすればよいのかわかりません。どなたか教えて頂けるとありがたいです。

  • Visual C#について

    教えてください. Windowsのアプリケーションを作る言語として,Visual C#とVisual C++を比べるとどちらの方が理解しやすいのでしょうか?(C#はどのような点が変わったのでしょうか)また,データ量の多いデータをグラフィック表示したいのですが,Visual Studioの内のどの言語を使ってプログラミングするのが良いでしょうか?

  • Visual Studio 2005

    学校の課題を家でできるようにしたくて「Visual Studio 2005 Academic Edition」を買ったんですが、プロジェクトのテンプレートに学校で使っている「C/C++ コンソール アプリケーション」が見当たりません。もしかしてエディションを間違えたのかも?それとも2005になって名前が変わったのか? 学校では「Microsoft Visual Studio .NET 2003」を使っています。 よろしくお願いします。

  • WindowsXP上のVisual studio SP2のvisual

    WindowsXP上のVisual studio SP2のvisual C++でコンソールアプリを作成しています。 最近ブレークを張ってデバッグ→デバッグ終了してもコンソールだけが残る現象が発生しています(いつも発生するわけではない)。残ったコンソールは強制終了しても閉じずWindowsをシャットダウンしようとしても閉じないのでWindowsも終了できずに電源を強制的に切るしかありません。 この現象が発生した時の対処方法を教えて頂きたくお願いします。

  • Visual studio 2008 のリダイレクトについて

    Visual Studio 2008を使ってC言語のプログラミングをしています C言語のプログラムの実行結果を別ファイルに リダイレクトしようとしたのですが プロジェクトのプロパティ→構成プロパティ→デバッグ コマンド引数の箇所に >output.txt と打ったのですが、実行結果はCtrl+F5でしか出力されません Visual studio 2005だとF5のデバッグだけでも出力されていたのですが Ctrl+F5だとキーをわざわざおさないといけないので非常に不憫です。 2008ですと、2005と違ってどこかプロパティの設定を いじらないといけない箇所があるのでしょうか? お分かり頂ける方、宜しくお願いします

  • Visual C 2005について教えてください。

    プログラミング初心者です。学校でVisual Studio 2003で習っています。最近自宅で配布の2005を使い出したのですが簡単な質問なのですが、少し違うと思うと思うところがあるので教えてください。 例えば、 printf("数字入力"); scanf("%d",&a); scanf("%d",&b); scanf("%d",&c); としてデバッグして全て5を入力した場合、エンターを押すと2003の場合、 数字入力5 5 5 と表示されたと思うんですが、2005の場合は 数字入力5 5 5 とエンターキーで改行してしまいます。 これを直す設定のようなものがあれば教えて欲しいです。お願いします。

  • Visual Studio 2005でコンソールプログラムのデバッグするとコマンドプロンプトが勝手に閉じる

    Visual Studio 2005でCのコンソールプログラムをつくってるんですが、デバッグするとコマンドプロンプトが勝手に閉じます。 閉じさせないようにする設定とかコードとかありませんか?

  • Visual_Studioの使い方(初心者です)

    Visual_Studioの使い方(初心者です) お世話になります。C言語からC++を覚えて、とうとうVisual_Studioを買いました。 今まで、1つのファイルでテストファイルを作っていたのでよかったのですが、 いちいちプロジェクトを作成して、テストファイル(test01.c,test02.c)を ビルドするのは、手間がかかります。できれば、一つのプロジェクト内で、 個別にビルドする方法を教えてください。

専門家に質問してみよう