例如,输入以逗号隔开的字符,忽略逗号
1,2,3,4,,a,s,sdsd,s
第一种方法:
char*p;
p = new char[100];
int i = 0;
while (cin.get(p[i])) //逐个从流中读取字符到p中
{
if (p[i] == ','|| p[i] == ' ') //忽略 空格和逗号
{
continue;
}
else if (p[i] == '\n') //读取到空格时结束输入
{
p[i] =NULL;
break;
}
i++;
}
运行结果:
第二种方法:
void test01()
{
char tem;
char *p;
p = new char[1000];
cout << p[199] << endl;
int i = 0;
while (cin)
{
if ((tem = cin.peek()) == ','|| (tem = cin.peek()) == ' ') //忽略逗号的空格
{
cin.ignore(); //忽略当前字符
continue; //继续执行下一次循环
}
//由于cin.get()不读取‘\0’,需要在结束输入时加上终止符。
else if(/*(tem = cin.peek()) == '\n'|| */(tem = cin.peek()) == EOF)
{
p[i] = '\0';
break;
}
p[i++] = cin.get();
}
cout << p << endl;
//cout << p[99];asldj
}
运行结果:
第三种方法:
void test03()
{ string s;
char tem;
while (cin)
{
if (cin.peek() == ',' || cin.peek() == ' ')
{
cin.ignore();
}
s.push_back(cin.get());
}
cout << s << endl;
system("pause");
}
运行结果: