none
Visual Studio Community2017 日本語の文字化け

    質問

  • 先日「12歳からはじめるゼロからのC言語」という本を買ってプログラミングの勉強を始めたものです。

    いろいろ間違ってたらすいませんorz

    58pにあるscanf関数のソースコードをそのまま入力したら、日本語の文字化け、ソースコード通りに動かないという問題が起きました。

    本には「プログラムの実行中に数を入力して計算できる」とあるのですが、何回実行しても1つ前のセクションでやった「実行中に数を入力せず、あらかじめソースコードで入力した数の計算」の方がでてきます。

    ソースコードは以下のとおりです。

    ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

    #include "stdafx.h"


    int main()
    {
    int teika; //定価
    int urine; //売値

    printf("定価を入力してください。");
    scanf_s("%d", &teika);
    urine = (int)(teika * 0.9);

    printf("%d 円の1割引は %d 円です。\n" , teika , urine);
    }

    ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

    調べてみて、「scanfではなくscanf_s」ということはわかったのですが、scanf_sにして何回やってもエラーに「定数が2行目に続いています」「構文エラー:')'が、識別子'scanf_s'の前に必要です。」「構文エラー:';'が、識別子'scanf_s'の前に必要です。」とでてきます。

    同時に何度やっても実行すると日本語が文字化けします。

    調べてみて、文字コードが原因?と思いましたが「Unicode(UTF-8 シグネチャなし)-コードページ65001」でした。


    超初心者なので何が悪いのか、どうすればいいのかが全くわかりません…

    どこが悪いのか教えてください、お願いしますorz



    2017年10月1日 4:12

回答

すべての返信