作者chhsiao (bye~)
看板b96902HW
标题Re: [钢弹] 单班计程2-1
时间Tue Oct 16 16:40:50 2007
※ 引述《mifan (人.魔.姊.浴)》之铭言:
: 解决办法有很多
: 其中一个是你的 format string 写成 "%d%d%d"
如果把 %c 换成 %d, 那後面储存输入值的变数 x 也要变成 int,
要不然 scanf 在写入变数值的时候会出问题.
因为 %d 代表 4 bytes 的储存空间, 所以 scanf 会写 4 bytes 到 x 里,
可是如果 x 是 char, 也就是说 x 在记忆体中只有 1 byte,
那 scanf 除了写东西到 x 那一个 byte 之外, 还会写到 x "後面" 的记忆体.
另外, 如果改成 "%d%d%d", 不是就不符合题目的输入格式了吗? ^^"
这样在输入一个字元的时候还是读不进来.
比较简单的解法是写成: " %c %d %d".
在 scanf 的格式字串中, 空格 " " 也有特别的意义,
那就是 "忽略掉所有的泛空白字元, 包括空格、换行、tab 等",
所以不管输入是
A 1 2
还是
A 1 2
或是
A
1
2
结果都可以正常读入.
--
>_<
U
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.54