読み捨て処理

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ほのか

読み捨て処理

#1

投稿記事 by ほのか » 16年前

いつもお世話になっております。
ソースについては添付ファイルをご覧いただきたいのですが、このたびまたわからないことがあったので質問させていただきます;

処理区分や削除・照会・変更したいデータの番号を入力する処理のことで以前も質問させていただいたのですが、上手くいったと思っていたのですが実際は入力した複数文字が1文字目以降、確保していない領域に書き込まれているということがわかりました。

1文字目以降を配列等に書き込ませるなどして読み捨て処理をするにはどのようにしたら良いのでしょうか??;
それから、課題担当の方にdefineで比較のみ実施する場合は配列等にdefineの値を設定する必要はないと言われたのですが、よく意味がわかりません;

pooka

Re:読み捨て処理

#2

投稿記事 by pooka » 16年前

ぱっと見ですが
>char num;
>scanf("%s",&num);

scanf("%c",&num);
では?

ほのか

Re:読み捨て処理

#3

投稿記事 by ほのか » 16年前

回答ありがとうございます。
以前%cに変えてみたのですが、この場合「11」と入力しても「1」のデータが表示されたりしてしまいます;

pooka

Re:読み捨て処理

#4

投稿記事 by pooka » 16年前

なら
>char num;
char num[BUFSIZ];

>scanf("%s",&num);
scanf("%s",num);

>no = atoi(&num);
no = atoi(num);
にそれぞれなおしてみてください。

ほのか

Re:読み捨て処理

#5

投稿記事 by ほのか » 16年前

回答ありがとうございます!
無事修正できました^^ありがとうございました^^

%sの場合、fflushは必要ないのでしょうか??
また、defineの質問についてわかる方いらっしゃいましたらよろしくお願いいたします;

pooka

Re:読み捨て処理

#6

投稿記事 by pooka » 16年前

>defineで比較のみ・・・
憶測ですが、例えば#define DANSEI "1"としているのに
shinki関数などでchar dansei[2]= DANSEI;として
strcmp(temp.sei,dansei)
としていることではないでしょうか?
strcmp(temp.sei,DANSEI)
でいいということではないでしょうか?

ほのか

Re:読み捨て処理

#7

投稿記事 by ほのか » 16年前

回答ありがとうございます!
やっと理解できました^^
いつも本当にありがとうございます^^

閉鎖

“C言語何でも質問掲示板” へ戻る