- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嗨,我这里有一个函数,我只想输入一个整数,我知道字符可以像整数一样处理,但在扫描时我只想获取整数
最佳答案
我认为您需要从标准输入读取数据,如果数据不是整数,则拒绝该数据。
您可以查看 scanf()
返回的值为了那个原因。这将是成功分配的数量。
int rv, c;
rv=scanf("%d", &guessNum);
if(rv!=1)
{
///Not an integer
while((c=getchar())!='\n' && c!=EOF);
}
这里,如果 scanf()
为 guessNum
赋值,则返回 1
,否则 0
将返回被退回。
但是,如果 scanf()
由于输入不正确而没有分配给 guessNum
,则该数据将保留在输入缓冲区中,must be cleared在读取之后输入的数据之前。
while((c=getchar())!='\n' && c!=EOF);
会处理这个问题。
This可能是类似的。
编辑:我刚刚看到Michael's评论。您正在将 guessNum
按值传递给函数。您对此变量所做的更改不会反射(reflect)到调用此函数的相应变量。我想不出这样做的任何理由。
也许您希望所做的更改反射(reflect)回原始变量。如果是这种情况,请将变量的地址传递给函数(通过引用调用)。
然后函数声明必须更改为 void setMaxGuess(gameState* game, int *guessNum)
并且您应该使用 传递
。guessNum
的地址函数调用中的&guessNum
关于c - 尝试从用户读取输入整数,不想接受 C 中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46464012/
我的应用程序中有一个 IList 站点,并且站点有大量属性。 我想将此列表转换为 JSON,以便在类似于此的下拉列表中使用 var sites = SiteRepository.FindAll
我正在将一些代码从 bluebird 切换到原生 Promises,并且我对原生 promises 吞下错误这一事实感到相当恼火,即使没有定义 .catch() 也是如此。它使调试变得不可能,除非您在
在同步访问共享资源时,是否有理由不使用读/写锁而不是普通的互斥锁(基本上只是写锁),除了它具有比我可能需要的更多功能的哲学原因? 换句话说,如果我只是默认使用读/写锁作为我首选的同步结构,我是不是在踢
我刚进入这个元素,代码已经写好了,但我们发现了一个问题。当您单击菜单中的任何位置时,它会变成金色,您看不到菜单该部分中的任何链接。您可以再次单击它,它将返回到正常状态。这只发生在 Internet E
这是一个简单的类和简单的测试函数: #include #include namespace { using namespace std; } class NameStream {
我有一个 std::vector其中 Foo是一个包含 Foo( Foo&& ) noexcept 的类. 向容器中添加对象完美无缺,但是使用 std::vector::erase( iterator
我正在通过这段代码使用各种浏览器尝试 localStorage 和 JSON: function getStorage() { stored = JSON.pa
您可能认为此问题与 Running two projects at once in Visual Studio 完全相同.不完全是,恰恰相反。 我有一个带有两个 MVC3 项目的 VS 2010 解决
我正在制作一个网站:http://arc-angyal.hu/ 我的第一个问题是,我无法让左侧的红色 div 足够高以填充页眉和页脚之间的空间。它位于标题之后和导航之前。我已经设置: html, bo
根据 This Question ,我正在使用线程来终止用户输入的函数。我的代码看起来像: bool stopper = false; thread stopThread(userStop, &sto
我是一名优秀的程序员,十分优秀!