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

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

新規登録して質問してみよう
ただいま回答率
85.47%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

541閲覧

文字列連結後の出力について

Coding_Novice

総合スコア11

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/03/16 07:21

文字列を連結した後の出力について質問です。
対象の文字列をsprintf関数で結合した後に出力をしようとしたところ、正しく表示されないのでその対処方法を教えていただければ嬉しいです。

#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void){ char name[256], firstName[256], lastName[256]; printf("名字を入力してください:"); scanf("%s", firstName); printf("名前を入力してください:"); scanf("%s", lastName); sprintf(name, "%s%s", firstName, lastName); printf("あなたの名前は %s です。\n", name); return 0; }

こちらのコードをコマンドプロンプトで出力したところ、このような結果になりました。
イメージ説明

一方で英語で入力したところ、名前が正しく表示されました。
イメージ説明

漢字でも表示できるようにするにはどうしたらよいのでしょうか。よろしくお願いいたします。

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

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

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

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

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

maisumakun

2020/03/16 07:22

コンパイラは何をお使いでしょうか?
Coding_Novice

2020/03/16 07:26

gccというコンパイラです。
Coding_Novice

2020/03/16 07:28

(余計な回答かもしれませんが、念のためお伝えしておきますと、)MinGWというソフトウェアを使って、インストールしました
ttyp03

2020/03/16 07:35

MinGWで確認しましたが問題なく動きました。バージョンによるのかもしれません。
Coding_Novice

2020/03/16 07:39

バージョンを確認してみたんですが、8.2.0でした。
ttyp03

2020/03/16 07:49

むむ、同じですな。
guest

回答2

0

gcc version 8.2.0 (MinGW.org GCC-8.2.0-3) 
で 同一のコードで、コンパイル 実行
gcc -o hoge a.c

で hooge を実行すると

以下のような出力結果となりました。
C:\ProgramData\tmp\c>hoge
名字を入力してください:山田
名前を入力してください:太郎
あなたの名前は 山田太郎 です。

コードに問題は無いように思えます

投稿2020/03/16 07:34

nanami12

総合スコア1015

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

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

Coding_Novice

2020/03/16 07:39

コードには問題ないですよね… 私もバージョンを確認してみましたが、同様の8.2.0でした。 うーん、なぜなんだ…
nanami12

2020/03/16 07:43

私は、windowsよりlinuxを得意としておりますが windowsのパワーシェル上では動作せず、コマンドプロンプトなら 実行できました。これもなぜだかわかりませんが windowsでは不思議なことだらけなので linux 例えばCentOsなんかお持ちでしたら インストール時に開発環境を選択していれば まるごと一式開発環境がインストールされますので SSHで接続して、動作確認をしたほうが 手っ取り早いかもしれません。
Coding_Novice

2020/03/16 07:47

C言語の環境構築について、見直してみます!
nanami12

2020/03/16 07:54

ちょっとした プログラムの動作確認をするなら Linux があると何かと便利です C perl python ruby など 一式インストールされ すぐ動作確認がとれますので
Coding_Novice

2020/03/16 08:05

LinuxのcentOsをダウンロードしてみて、確認してみます!
nanami12

2020/03/16 08:09 編集

windwos10でしたらubuntuが手っ取り早いかと思います windows10 ubuntu インストール で 検索してみて下さい
nanami12

2020/03/16 08:10

私はインストールしてませんがwindows上に ubuntu を (linux)をインストールできたはずです。GUIもおそらく動きます。
nanami12

2020/03/16 08:11

パソコンを複数代お持ちでしたらCentOs7 くらいを インストール しておくと よいかもしれません
guest

0

ベストアンサー

残念ながら、「(gccなど)Unix系由来のツール」と「Windowsのコマンドプロンプト」と「日本語」の3つを組み合わせると、死ぬほど相性が悪く、なかなか安定して動作できる設定にたどり着きません。

どうしてもその組み合わせにこだわるのでなければ、「日本語を使わない」、「コンパイラをMicrosoftのなどに乗り換える」、あるいは「Git BashのコンソールやBash on Ubuntu on Windows、仮想マシンを使う、もしくは入出力をリダイレクトで行うなど、Windowsのコマンドプロンプトでの標準入出力を使わない」というように、どれか1つを諦めるのが手っ取り早いです。

投稿2020/03/16 07:32

maisumakun

総合スコア145201

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

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

maisumakun

2020/03/16 07:32

MinGWであればmsysのコンソール経由で使うのがいいでしょう。
Coding_Novice

2020/03/16 08:05

ちょっとやってみます!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問