如果用户输入整数变量的浮点数,我想打印无效输入.那可能吗?
int a;
scanf("%d",&a); // if user enters 4.35 print invalid input
Run Code Online (Sandbox Code Playgroud)
我试过像这样的人物
if(scanf("%d",&a)==1);
else printf("invalid input");
Run Code Online (Sandbox Code Playgroud)
但如何处理浮动数字.如果用户输入4.35它截断到4但我想要无效输入.
我是C的初学者.如果我的问题很蹩脚,请不要介意.在我编写的这个程序中,当我第一次使用'for'循环时,我预计只有3个值存储在一个数组中,但它存储了4个值,并且在下一个'for'循环中,如预期的那样显示3个值.我的问题是为什么在第一个'for'循环中它需要4个值而不是3个?
#include<stdio.h>
void main()
{
int marks[3];
int i;
for(i=0;i<3;i++)
{
printf("Enter a no\n");
scanf("%d\n",(marks+i));
}
for(i=0;i<3;i++)
{
printf("%d\n",*(marks+i));
}
}
Run Code Online (Sandbox Code Playgroud) 我觉得我错过了一些非常明显的东西,但我似乎无法找到我的代码的问题.我试图使用scanf来查找输入是否为整数,如果是,则找到八进制.如果它不是整数,则它只是提示用户再次输入.但是,出于某种原因,如果情况相反,我似乎只能使代码工作,其中不接受整数,而其他任何东西都是.似乎修复它只是一个简单的问题,但我只是得到无限循环.你们可以给予的任何帮助将不胜感激.
#include <stdio.h>
enum state {success,fail,quit};
int status = fail;
int main(void)
{
int n;
char t;
do
{
printf("Enter a number between 0 and 32767: ");
if(scanf("%d%c", &n, &t) != 2 )
status = success;
}
while (status == fail);
if (status == success)
{
int oct1, oct2, oct3, oct4, oct5;
oct1 = ((((n / 8) / 8) / 8) / 8) % 8;
oct2 = (((n / 8) / 8) / 8) % 8;
oct3 = ((n / …Run Code Online (Sandbox Code Playgroud) 在下面的程序中,我尝试在1to 之间输入一个数字,100但是如果我在语句的执行时间内输入a 'character'或"string"(如s或sova),scanf()则会创建一个无限循环.所以我试着做....当我输入一个字符串或一个字符时,它向我显示一条消息,例如"输入了错误的值.再次输入",它将再次输入...
Thanx;
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
while(!(a>=1&&a<=100))
{
printf("wrong value entered. enter again\n");
scanf("%d",&a);
}
printf("you enter %d. Thanxz",a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)