#4
by かずま » 6年前
遊び人 さんが書きました:前者の方法で無事成功しました。
勉強になりました、ありがとうございます(´∀`)
こうしてみるとscanfって面倒くさいですね(´・ω・`)
123+45 と入力されたら、value = 123 でいいんですか?
それもエラーにしたかったら、1行が読み込めて、
整数値が読み込めて、余計な文字がなければ、OK とする。
コード:
#include <stdio.h> // puts, fgets, sscanf, feof, printf, stdin
int main(void)
{
int value;
char input[1024], c;
while (puts("数字を入力\n"),
fgets(input, sizeof input, stdin) &&
sscanf(input, "%d %c", &value, &c) != 1)
puts("正しい数ではありません");
if (feof(stdin)) { puts("EOF"); return 1; }
printf("%d\n", value);
return 0;
}
[quote="遊び人" id=3,19365,146443]前者の方法で無事成功しました。
勉強になりました、ありがとうございます(´∀`)
こうしてみるとscanfって面倒くさいですね(´・ω・`)[/quote]
123+45 と入力されたら、value = 123 でいいんですか?
それもエラーにしたかったら、1行が読み込めて、
整数値が読み込めて、余計な文字がなければ、OK とする。
[code=c]
#include <stdio.h> // puts, fgets, sscanf, feof, printf, stdin
int main(void)
{
int value;
char input[1024], c;
while (puts("数字を入力\n"),
fgets(input, sizeof input, stdin) &&
sscanf(input, "%d %c", &value, &c) != 1)
puts("正しい数ではありません");
if (feof(stdin)) { puts("EOF"); return 1; }
printf("%d\n", value);
return 0;
}
[/code]