![]() |
1
15
使用
我建议使用
这还允许您检查字符串中所需的字符(通过循环或使用正则表达式),其中
举例来说,使用
如果你真的必须使用
而且,对于使用该建议的健壮输入解决方案,请参见
here
. 一旦将输入行作为字符串,就可以
|
![]() |
2
5
您似乎想验证一个字符串作为输入。它取决于您是否要验证字符串包含double或int。下面检查double(允许使用前导和尾随空格)。
以下是对int的检查,使用了相同的技术:
有个问题要问 here 它还包括更多的C++方式,比如使用String流和Boost中的函数,如ListalyCost等等。它们通常比scanf等函数更受欢迎,因为很容易忘记将一些“%”传递给scanf或某些地址。scanf不会认识到这一点,而是会做任意的事情,而词汇强制转换,例如,如果任何事情不正确,都会抛出异常。 |
![]() |
3
1
我的方法是将用户输入读取为字符串,然后使用
在这个片段中
这种方法允许更好的错误处理。 |
![]() |
4
0
在第一个参数中指定的内容
您应该做的第一个检查是来自scanf的返回值(它将给出匹配输入的数量)。如果您没有得到您期望的数字,那么您就知道输入有问题。在你的情况下应该是1。
除此之外,你还需要自己对你要求的转化进行健全的检查。
|
![]() |
5
-1
如果您试图只读取数字,请使用:
如果你需要做更复杂的检查,你必须自己做。斯坎夫不会帮你的。 |
![]() |
6
-4
“buf”必须是指针。看起来你是在传递价值。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 6 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 6 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 6 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 6 月前 |