主要代码如下:
int a;
while(cin>>a)
cout<<a;
在运行时,当我输入“2.1”,即不是输入整型时,仍然会输出“2”这个整型数据,随后结束进程。而当我输入字符“a”时,是直接结束进程,没有任何输出。请问这是为什么?
谢谢你这么热心。不过,貌似这堆参考答案并没有正面解答我的问题。我只想知道为什么我在运行时会出现那种情况。
追答要解决这个问题,需要深入c++内部了。
但是可以简单理解一下:
无论你输入的什么,其实都是字符串。
2.1时,读取字符串“2.1”,解析字符串,2 没问题,输出。"."检测不符合int类型,错误,退出。
“a”检测类型错误,退出。
#include
using namespace std;
int main()
{
int a;
while(cin>>a)
cout<<a<<endl;
return 0;
}
全部代码就这么简单,我只想知道,为什么以错误的形式输入,(即要求输入一个整型,而我输入了一个浮点型),仍然会有结果输出?
键盘是以字符形输入的,程序会判断的,所以浮点型的数据是以"."结束,所以前面的值也存在的
C++中将输入条件作为循环判断条件的问题
首先,cin是个对象,没有所谓返回 >>输入操作符返回流对象的引用,cin >> x 返回istream&,cout << x返回oostream& if可直接判断流,如if (cin)while间接判断,如while (cin >> x)若流被标记错误(读取失败)就返回false.ctrl+z,F6可跳出循环,这代表eof(文件结束符)在ios,istream和ostream...
c++ 将是否输入 作为判断条件
你的输入是指stdin的输入么,如果是的话,你可以在循环里面对stdin做poll或者select,在没有输入的时候可以继续循环有的话可以读取输入比较是否是!即可 你的程序可以这么写 char c;int fd = fileno(stdin);int val = fcntl(fd, F_GETFL, 0);val |= O_NONBLOCK;fcntl(fd, F_SETFL, val); ...
c++如何编程使得输入ctrl+z时使一个循环结束
判断条件写为:while((c=getchar())!=EOF);就可以用ctrl+z结束循环了 C语言中,EOF即文档的结尾.但是,当你写一个小程序,并以EOF作为判断条件时,就无法输入文档的结尾了,只能人工输入一个,这个人工输入的文档结尾就是Ctrl+Z 比如:include <stdio.h> int main(){ int c;do { printf("请输入...
C++中要输入一个整数到变量x,我输入一个字母后便无限循环了,怎么才能知 ...
这个简单,你只要在输入语句下一句,添加一个判别函数isalpha(a)就可以了,这个函数是自带的,用来判别变量a是否是字母,cin>>n;while(isalpha(n)){cout<<"输入是字母!"<<endl;cin>>n;}另外isdigit(n)就是判断n是否为数字。
c++中如何判断真假然后确定是否继续循环
可以在循环体里加上一个判断语句,然后用break语句跳出循环。比如下面这个while循环中(函数调用忽略),就用到判断,然后break跳出循环。int main(){ int x,k=1;cout<<"输入待判定的正整数:";cin>>x;while (k<=gn(x)\/2){ int temp_1=(x\/fn(k-1))%10;int temp_2=(x\/fn(gn(x)-k...
c++这个while循环里面的判断条件是什么意思啊?
理解C++中while循环里的判断条件,首先需要了解istream::operator>>的文档内容。遗憾的是,知乎存在链接识别错误问题,无法直接展示operator>>链接。通常,通过使用istream::operator>>,我们可以从输入流读取数据。关键在于,这个操作后返回的仍然是一个istream对象。这意味着,我们需要将istream转换为bool...
c加加多种数测试数据怎么写
写法如下:方法一:使用C语言的的方法,把输入语句作为while循环的判断条件,当输入数据不是文件结束符(EOF)的时候,就可以实现连续输入。方法二是用C++for循环实现,将输入语句作为for循环的condition部分,而expression部分省略不写,因为条件部分能改变i的值,所以这个循环无需表达式部分,其中,条件部分不...
c++中if条件语句下,如何表示输入结束
C++的输入操作符会返回它所读的数据流,所以判断是否是输入结束,判断cin操作的返回对象就可以了,一般是用while语句判断:int value;while(std::cin>>value)这里是循环输入,当遇到无效输入或者输入一个EOF输入就结束,无效输入在这里是除了整数以外的输入(因为value是int型),EOF在Windows上是Ctrl+Z,...
c++编程问题 (关于cin的)
第一个cin是用户第一次输入的值,但是你要统计用户输入的正负的个数,那必然是输入多个值。所以在while循环里面的末尾添加cin的作用就是 用户以后输入的值了,知道用户输入0则停止。在while里cin>>n n的值就改变了,那么while()就会触发,进而判断是否满足条件。第二个cin是不指定次数循环进行的必要...
cpp 如何判断输入结束?
EOF是c里得东西,如果是c++可以这样:include<iostream> using namespace std;int main(){ int a,b;while(cin>>a>>b)\/\/以输入做循环条件,输入结束则自动跳出循环 cout<