while循环中,用scanf输入一个float型的数字,如何让判断输入的是否为数字...

        第一次学这个时偷懒跳过了,这两天有人问起时,发现自己不该这样,通过发帖的讨论和群里的讨论,解决了这个问题,有疑问的都来看看吧

#include<stdio.h>
int main(void)
{
 float a;
 while(1)
  if(scanf("%f",&a)== 0)
   return 0;
  else
   printf("%f\n",a);
 
 return 0;
}

 

附我加的最"可爱的群"

时间: 2024-12-10 01:59:08

while循环中,用scanf输入一个float型的数字,如何让判断输入的是否为数字...的相关文章

c++ cin-关于C++输入cin的问题,下面的程序,如果输入一个字符,那就将陷入死循环,为什么?

问题描述 关于C++输入cin的问题,下面的程序,如果输入一个字符,那就将陷入死循环,为什么? #include main() { int i; while(i!=-1) { cout<<"i=" cin>>i; cout< } } 上面的程序,如果输入的不合法,比如输入一个字符,那就将陷入死循环.解决的办法 有个一,把cin>>i;语句移到判断循环的语句,那么输入的如果是不合法的变量,他将跳出循环 . 解决方案 是不是将i转化为对应的ASCI

循环条件判断-如何判断输入时是不是数字(输入是非数字或者输入为负数则跳出while循环)

问题描述 如何判断输入时是不是数字(输入是非数字或者输入为负数则跳出while循环) C++中cctype头文件中的isdigit()函数如果参数是0~9,则函数返回true,这个函数只能判断是个数么?如果我要判断两位数.三位数......还能用么? while(cin>>num) 其中num为整形变量,其中括号中的语句可以判断输入是不是数字?是怎么样的原理? 还有其他方法么?ASCII怎么用呢? 解决方案 cin>>num肯定是数字 while (cin>>num)

Shell判断输入是否有效IP和字母

1.需求目的     最近在研究ansible自动化工具,在主机表(/etc/ansible/hosts)添加管理节点信息时,几台到十几台还可以手动添加,到了百十台工作量就大了.于是想用脚本自动添加,减少工作量,刚开始想到for循环自动添加,但添加的IP.用户.密码,都不相同,实现起来比较困难,也没太多时间去研究,结果就用了手动交互输入. 用户信息表如下格式: # cat /etc/ansible/hosts 192.168.1.100   ansible_ssh_user=user  ansi

在输入一个实数,输出对应的double和float类型在内存中的二进制内容

问题描述 在输入一个实数,输出对应的double和float类型在内存中的二进制内容 在输入一个实数,输出对应的double和float类型在内存中的二进制内容 解决方案 #include <iostream> using namespace std; int main() { double x = 1.234; float y = 1.234; char * a = (char *)(void *)&x; char * b = (char *)(void *)&y; cout

字符串-写了这样一个函数,为什么第一个循环中for语句会失效?

问题描述 写了这样一个函数,为什么第一个循环中for语句会失效? 求教:第一条for语句失效,这是为什么? /*函数功能:找出一个字符中相同字符子串的最大长度,暂时还不知道对不对*/ int string_search(char a[]) { int i,j; int max_len; // 相同字符子串最大长度 int every_len; // 临时存储子串长度 int all_len; // 传进来的字符串总长度 max_len = 1; all_len = strlen(a); for(

c语言-问题:输入一个错位后的字符串,输出打字员本来想打出的句子。(将输入的字母在键盘上左移一位)

问题描述 问题:输入一个错位后的字符串,输出打字员本来想打出的句子.(将输入的字母在键盘上左移一位) #include char *s = "1234567890-=QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./"; int main() { int i, c; while ((c = getchar()) != EOF) { for (i = 1; s[i] && s[i] != c; i++); { if (s[i]) putchar(s[i -

控件-MFC 输入多组数据 float型

问题描述 MFC 输入多组数据 float型 用一个结构体表示组信息,组信息包括作业编号,提交时间,运行时间 下面是编码,请问要怎么改 //录入数据按钮 void CMFCApplication2Dlg::OnBnClickedButton1() { counter = GetDlgItemInt(IDC_EDIT5,NULL,TRUE); //IDC_EDIT5 作业数 in1 tasks[tempcou1].number = GetDlgItemInt(IDC_EDIT6,NULL,TRUE

c语言-请问各位大师,C语言中如何实现数学中的:输入一个自然对数e,得到的结果是1???

问题描述 请问各位大师,C语言中如何实现数学中的:输入一个自然对数e,得到的结果是1??? [ 问题出在哪?是double x;吗???(如何解决?) 解决方案 sacanf不能识别expf(1),你输入它等于输入0 你需要输入2.71828 #include <stdio.h> #include <math.h> int main() { double i; scanf_s("%lf", &i); double x = logf(i); printf(

java-求解,在for新循环,即增强型循环中,能不能删除集合的元素。。z

问题描述 求解,在for新循环,即增强型循环中,能不能删除集合的元素..z 如题,求解,在for新循环,即增强型循环中,能不能删除集合的元素.. 记得for新循环就是一个迭代器吧,那它要怎么调用他的remove方法,是还要在循环体里实例化Iterate吗 解决方案 可以用一般的for循环按照下标从后往前遍历.从前往后遍历的时候删除元素会丢出异常. 解决方案二: 使用迭代器进行循环集合,然后使用迭代器的remove方法,其他的会引发异常 解决方案三: 用迭代器循环,然后再用迭代器中的remove(