#include <cstdlib>
#include <iostream>
using namespace std;
void add_air_information()
{
char a[100];//定义变量来存储每次输入的信息。
int b; //定义变量储存每次输入的信息。
cout << "A" << endl;
cout << "B" << endl;
cin.getline(a,99);
cout << "C" << endl;
cin.getline(a,99);
}
int main(int argc, char** argv) {
char a;
cin >> a;// 同学说,有可能是这里 输入一个 字符,但是输入的 回车
//没有被读掉,当下一次输入的时候就出问题了。。。可是为什么呢????
switch (a)
{
case '1': add_air_information();
break;
}
return 0;
}
输出结果是
A
B
C
直接跳过了中间的一个 cin.getline();!!!!
试验之后 ,在第一个cin.getline();
之前加 getchar();就可以避免这种情况,而换成cin.clear() 就不行了
具体是什么问题呢,还有所提到的三个函数用法是什么呢,求指教啊。
cin.ignore(), 这个函数是用来清空缓冲区的~~清除所有输入记录,还是只清掉一个字符?
追答可以带一个整型参数,不带的话,默认是吃掉一个
cout 可以清楚之前的输入缓冲么?
追答。。cout是输出啊,跟输入不是一个流,怎么能清除呢。。。
关于c++的cin.getline()的问题
cin.getline(ch, 10);cin.clear();cin.getline(ah, 10);
C++中cin.getline()问题?
最佳答案!!!include<iostream> include<cstring> using namespace std;int main(){ string liu, d, c;int b;cout <<"请输入liu字符:";getline(cin,liu);\/\/这样就不会报错了,cin.getline()的话,需要字符串的长度作为第二参数的,在不知道的情况下,还是这样吧 b=liu.size();cout << b <...
有关c++中cin.getline的问题
你的程序没有什么大问题,就是输入的内容没写到数组中去。。。#include <iostream>void output (const char * ch,int n=1);int main(void){using std::cin;using std::cout;using std::endl;char * ch=new char[20]; \/\/动态数组的创建memset( ch, 0, 20 ); \/\/初始化cout<<"Pl...
c++ cin.getline()的问题
cin.clear()不是用来清空流的。。。是用来清空之前出现的错误flag的 简单的解决方法是在cin>>a;之后加上cin.ignore()来吃掉那个回车。你出现这个问题的原因在于同时使用了两种stream的处理方法——formatted和unformatted。cin>>a是formatted的方法,相当于给你提供了一些方便。但是糅合上使用unformatted的ci...
c++cin.getline的问题~~ cout<<"请输入十六进制整数:0xff"<<endl; ci...
cin.getline()是按行读取。当位数超过它限定的位数时会停止读取剩下的位数。你所谓的“吸收0后面的字符xff”应该是这样造成的吧。其语法是:cin.getline(字符指针,字符个数n,结束符);功能是:一次读取多个字符(包括空白字符),直到读满n-1个,或者遇到指定 的结束符为止(默认的是\\0)。char a[6]...
C++读入字符串(cin,get,getline)
cin.getline(char ,int)将int-1个字符读取到数组char 中,最后一个位置用来存储'\\0'。该函数在读取指定数目的字符或者遇到换行符时停止读取。该函数从流中抽取出换行符,但不保存换行符。3)再看看cin.get(void)读取字符串 cin.get()往往用来从流中抽取换行符,防止下一次读入时因读入换行符而提前...
关于C++ cin.getline()问题 为什么在这段代码中 最后输出的会是截取后...
在输入chuang(回车)之后,cin.getline(name, 30, 'a'); 提取了chu到name,同时抛弃了a,输入缓冲区还剩下ng。cout << "Name is " << name << endl;会输出Name is chu并换行。cin.getline(name, 30, '\\n');会提取剩下的ng到name,cout << "Remaining: " << name << endl;会输出...
C++ cin.getline()参数的问题
大哥,aaaa *p;p指针还没初始化你就用了?p指向了不可知的空间,当然会出错了。先new出来吧 void main(){aaaa *p=new aaaa;cout<<"输入:"<<endl;cin.getline(p->as,40);cout<as<<endl;}
cin.getline问题 (C++)
1、问题1:运行后提示内存不能为written,问题出在哪里?是delete语句出错。因为new的时候并没有指出所指空间的大小。所以在delete的时候系统无法或者销毁数据的长度,所以出错。如果new的时候该改为:char *stringOne=new char[30]; \/\/在堆中创建字符串 char *stringTwo=new char[30];char *string...
C++ cin.getline(,)的问题
cout<<"Please input the membersex of the family member"<<endl; \/\/输入性别 cin.getline(p.membersex,6);cout<<"Please input the stature of the family member"<<endl; \/\/输入身高 cin.getline(p.membersex,3);两个都是sex,应该这里有问题吧!能不能把你的familymember的定义给出来?