質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

6103閲覧

C++言語における、scanfの使用方法について質問です。

Daichi

総合スコア47

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2015/01/09 03:15

今回以下のプログラムについて質問です。
文字列ではなく、一つの文字を読み込んで出力しようと思い、
scanf("%c" ,&a)
というようにscanf関数を使用し
aに一つの文字を代入し、
cout << "a:" << a << endl;
でaを表示しようとしたのですが、表示されません。
一応エラーは起きずに実行できるのですが、
どこが間違えているのかわかりません。

ご指摘の程よろしくお願い致します。

#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{
char a;

cout << "moji:"; scanf_s("%c", &a); cout << "a:" << a << endl; return 0;

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

1つ気になった点として、scanfcoutを混ぜて正常動作するのか不安があります。

C言語系のprintfscanfでやるか、ストリームのcoutcinというように統一した方がいいでしょう。

投稿2015/01/09 08:22

maisumakun

総合スコア145123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Daichi

2015/01/10 04:53

cinを使用したところ無事に動きました! 以後統一して使うように気を付けます! 回答ありがとうございました!
guest

0

(解決済みの質問かと思いますが)
cout << "moji:";cout << "moji:" << flush; とすると、期待通り動きますか?

基本的には maisumakun さんが指摘される通り、一つのプログラム中でC++のcin/coutと、Cのscanf/printf系を混在させない方がよいですね。

追記:出力ストリームcoutに対して<< flush操作を行うと、その時点での未出力なバッファリング内容が確実に出力(出力バッファのflush/フラッシュ操作)されます。C++ライブラリが提供するcincoutとでは特別な関連付けが行われており、cinからの読み込み操作を行うと、自動的にcoutのflush操作が行われるという仕様になっています。coutscanfを組み合わせた場合は、この関連付けによる自動flush操作が働きませんから、手動で<< flushしてみたらどうでしょう?という回答をつけました。

投稿2015/02/14 10:37

編集2015/02/16 00:51
yohhoy

総合スコア6189

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Daichi

2015/02/15 17:20

flushを付けるとどうなるのですか???
yohhoy

2015/02/16 00:56

Daichiさん: 回答がそっけなかったので理由も追記しました。flushを付けるとDaichiさんが想定していたとおりにプログラムが動作しますか?という意味でした。私の環境でプログラムを動かすことも出来なくは無いですが、その結果がDaichiさんが期待した動きかどうかを判断できませんから。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問