凯什么欧文 发表于 2021-9-2 17:00:04

大佬进来看一看

这是小甲鱼13课的一个作业,正确答案里输入为什么不用scanf函数啊,我自己加了一下反而报错了{:5_99:}

kogawananari 发表于 2021-9-2 17:10:35

因为你用了scanf %s的话又得遍历字符串

getchar刚好是逐个字符读取输入的对于这道题更好用

凯什么欧文 发表于 2021-9-2 17:17:12

kogawananari 发表于 2021-9-2 17:10
因为你用了scanf %s的话又得遍历字符串

getchar刚好是逐个字符读取输入的对于这道题更好用

是不是getchar()表示一个字符串一个字符的输入,而scanf表示字符串的输入??

kogawananari 发表于 2021-9-2 17:26:42

凯什么欧文 发表于 2021-9-2 17:17
是不是getchar()表示一个字符串一个字符的输入,而scanf表示字符串的输入??

getchar是如果还有没取完的 就取第一个字符 如果取完了没取的了就等待输入

你可以试试getchar多次 第一次输入两个字符 第二次getchar就不会等你输入而是取上次剩下的

另外就是即使你只输入一个字符 你回车确认输入完毕也会变成2个字符getchar在第二次取会取到回车符

凯什么欧文 发表于 2021-9-2 17:29:35

kogawananari 发表于 2021-9-2 17:26
getchar是如果还有没取完的 就取第一个字符 如果取完了没取的了就等待输入

你可以试试getchar多次 第 ...

明白了{:5_109:}

番杰 发表于 2021-9-2 17:31:40

不是,你那个scanf函数报错是因为函数里面的那两个双引号是中文的吧

凯什么欧文 发表于 2021-9-2 17:44:13

番杰 发表于 2021-9-2 17:31
不是,你那个scanf函数报错是因为函数里面的那两个双引号是中文的吧

我刚刚修改了一下居然发现还能运行,而且效果也一样,所以请问小甲鱼的答案里为什么没有用scanf函数呢
页: [1]
查看完整版本: 大佬进来看一看