No.4ベストアンサー
- 回答日時:
> scanf("%c%s",&c,&word);
> printf("c=%c:r=%s\n",c,word);
これを
scanf("%c%s",&c,word); // &wordをwordに
rewind(stdin); // 追加
printf("c=%c:r=%s\n",c,word);
に変更してみてください。
scanf()を使用する際は改行の処理に気を使う必要があります。それについて、ここで述べるのは文字数が多くなってしまうので、ご自分で調べてみてください。scanf 改行で検索すればすぐに出てくると思います。
できました。ありがとうございました。
scanf 改行で検索したら沢山出てきまして、初心者はscanfを使うなというメッセージになるほどと思いました。
No.5
- 回答日時:
#include <stdio.h>
int main(void){
char buff[80];
char word[20];
char c;
int i;
for (i=0;i<3;i++){
fgets(buff,80,stdin);
sscanf(buff,"%c%s\n",&c,word);
printf("c=%c:r=%s\n",c,word);
}
return(0);
}
のように、sscanfを使うことにしたらどうでしょう。
No.3
- 回答日時:
> printf("c=%cst:r=%s\n",c,str);
> c=ast:r=bbbと出力されます。
これで問題ないのではないでしょうか?
もしc=a:str=bbbと出力したいのなら、printfを以下のように書き換える必要があります。
printf("c=%c:str=%s\n",c,str);
「:」の位置を変えてください。
この回答への補足
すみません.間違えました。実は下記のようなプログラムです。
int main(void){
char word[20];
char c;
int i;
for (i=0;i<3;i++){
scanf("%c%s",&c,&word);
printf("c=%c:r=%s\n",c,word);
}
}
最初にa bbb と入力すると、c=a:r=bbbですが、
2回目にa bbb と入力すると下記のように異なる値が出力され、三回目の入力をしないまま終了します。
c=
:r=a
c= :r=bbb
よろしくお願いします。
No.2
- 回答日時:
入力しない値が表示されます。
:どういう結果だったか書いたらどうでしょうか?
質問するのならば回答しやすいように
回答社に負担をかけないようにすべきです
プログラム内容(main行を書いても5行程度で済むはず)とその結果を書くほうがいいでしょう
早速のご返事ありがとうございました。
ご指摘のとおりだと思いました。すみません。
プログラムは下記になります。
int main(void){
char str[20];
char c;
scanf("%c%s",&c,str);
printf("c=%cst:r=%s\n",c,str);
}
現象は入力をa bbb とすると、出力がc=ast:r=bbb
になります。
No.1
- 回答日時:
> scanf("%c%s,&c,&s)を使用しましたが
この部分だけ示されても分かりません。出来ればその前後も示していただきたいのですが、もしかしたら以下のように書き換えればうまくいくかもしれません。
scanf("%c%s",&c,s);
sの前にある&をとったものです。
早速のご返事ありがとうございました。
結果は同じでa bbbと入力すると
c=ast:r=bbbと出力されます。
プログラムは下記になります。
int main(void){
char str[20];
char c;
scanf("%c%s",&c,str);
printf("c=%cst:r=%s\n",c,str);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C言語教えてください】sin波...
-
C言語についてです。 アスタリ...
-
C言語で四則演算を使って10を作...
-
分数を表示するプログラム(長...
-
C言語です このプログラミング...
-
strcmp
-
空白表示
-
改行について 1行に何個かづ...
-
2から120以下の素数を求める
-
カレンダー作成
-
縦の棒グラフ
-
C言語【おみくじプログラム】
-
hit&bolwのプログラミングがで...
-
ソースコードの確認をお願いし...
-
C言語で四則演算を使って結果が...
-
多項式のユークリッドの互除法...
-
位数を求めるプログラム
-
構造体配列をきれいに表示するには
-
台形の面積を求めるプログラム
-
C言語 素数判定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
既約分数の表示プログラム
-
printf で二進表示を行いたい。
-
8人分のテストの点数を入力し、...
-
printf( " %2d", p * q );
-
strcmp
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
%P と %X の違い
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
cshの文字列操作(0埋め)
-
万年カレンダーのC言語プログラ...
-
コマンドラインに出力した文字...
-
scanfに文字が入力されたときに...
-
ホームページをC言語で作りたい...
-
改行について 1行に何個かづ...
-
コンパイルエラーについて
-
台形の面積を求めるプログラム
-
なぜgccはstdio.hをインクルー...
おすすめ情報