掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.24673

改行キーと再帰処理
投稿者---ace(2005/12/11 00:11:09)


今、再帰処理を使って下記のようなプログラムを作っています。
(文字列を入力し入力された文字列を表示する。
だだし何も入力せずに改行キーを押した場合はmain関数を再帰的に呼び
再び文字の入力を促す。)
どうしてもmain関数を再帰的に呼びだすif文に入ってくれないのですが
何が間違っているのかわかりません。
申し訳ありませんがどなたかわかる方、アドバイスをお願いします。
(char a[10]をchar aにして、if文をif(a == '\n')にすると入ってくれます。なぜ変数のときは入って、配列にすると入らないのか謎です。)

#include <stdio.h>

void main (void)
{
char a[10];
printf("文字列を入力してください:");
gets(a);
if(a[0] == '\n')
{
main();
}
else
{
printf("%s", a);
}
}


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:改行キーと再帰処理 24676 Hermit 2005/12/11 00:18:00
<子記事> Re:改行キーと再帰処理 24679 nop 2005/12/11 00:23:28
<子記事> Re:改行キーと再帰処理 24680 まきじ 2005/12/11 00:25:14
<子記事> Re:改行キーと再帰処理 24686 ace 2005/12/11 00:57:29
<子記事> Re:改行キーと再帰処理 24707 ace 2005/12/11 16:34:03


No.24676

Re:改行キーと再帰処理
投稿者---Hermit(2005/12/11 00:18:00)


もう一度、gets() の機能は何か確認しましょう。


この投稿にコメントする

削除パスワード

No.24679

Re:改行キーと再帰処理
投稿者---nop(2005/12/11 00:23:28)


>(char a[10]をchar aにして、if文をif(a == '\n')にすると入ってくれます。なぜ変数のときは入って、配列にすると入らないのか謎です。)

本当に、その二カ所の修正だけですか?
もしそうであれば、コンパイルすら通りませんよ?


# ちなみに、原因はgets()が改行('\n')を格納しないため。


この投稿にコメントする

削除パスワード

No.24680

Re:改行キーと再帰処理
投稿者---まきじ(2005/12/11 00:25:14)


># ちなみに、原因はgets()が改行('\n')を格納しないため。

なので fgets() を使っては如何?


この投稿にコメントする

削除パスワード

No.24686

Re:改行キーと再帰処理
投稿者---ace(2005/12/11 00:57:29)


正しくはこのように修正しなければいけませんね。
hermitさん指摘ありがとうございません。
まじきさん間違ってたらごめんなさい。
私は標準入力(キーボード)からの文字列入力を行いたいので
fgets(ファイルからの読み込みなので)は使えないかと。
#include <stdio.h>

void main (void)
{
char a;
printf("文字列を入力してください:");
scanf("%c",&a);
if(a == '\n')
{
main();
}
else
{
printf("%c", a);
}
}


この投稿にコメントする

削除パスワード

No.24688

Re:改行キーと再帰処理
投稿者---まきじ(2005/12/11 01:01:05)


>fgets(ファイルからの読み込みなので)は使えないかと。

fgets(a,10,stdin) で標準入力から読み込めます。


この投稿にコメントする

削除パスワード

No.24705

★★★ソースの添付は字下げしてくださるようにお願いします
投稿者---管理人(2005/12/11 11:50:43)


当掲示板の管理人です。

投稿上の注意をお読みの上、ソースの添付は字下げしてくださるようにお願いいたします。


この投稿にコメントする

削除パスワード

No.24707

Re:改行キーと再帰処理
投稿者---ace(2005/12/11 16:34:03)


まじきさんありがとうございます。
管理人さん申し訳ありません。
以後気をつけます


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧