C++中怎样识别输入的是空行??

下面是有我编写的有问题的代码:#include"stdafx.h"#include<iostream>#include<string>#include<cctype>co... 下面是有我编写的有问题的代码:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cctype>
const double M_sum = 10000;
using namespace std;
struct donation
{
char name[20];
double sum;
};

int _tmain(int argc, _TCHAR* argv[])
{
int n;
cout<<"Enter number of donation: ";
cin>>n;
donation *temp = new donation[n];
int i;
for (i=0; i<n; i++)
{
cout<<"Enter name of patrons:\n";
cin>>temp[i].name ;
if (strlen(temp[i].name)==0) //问题:我的主要目的是:如果输入为空,则执行以下代码
strcpy(temp[i].name, "none");
cout<<"Enter sum:\n";//但为什么程序接下来不运行此行?程序的意思是不希望我输入空行,那样就没有达到我预期的效果
cin>>temp[i].sum;
}
cout<<"Grand Patrons:\n";
for (int j = 0; j<i; j++)
{
if (temp[j].sum > M_sum)
cout<<temp[j].name <<endl;
}
cout<<"Another:\n";
for (int j = 0; j<i; j++)
{
if (temp[j].sum < M_sum)
cout<<temp[j].name <<endl;
}

return 0;
}
谢谢,刻意说得再简单一点吗?
我的意思是,你说的那些方法我还没有学到,面向行的输入会好一些吗?
请再给我提供一些其他的方案吧
展开
 我来答
花式码农
2008-03-24 · TA获得超过1.7万个赞
知道大有可为答主
回答量:4894
采纳率:0%
帮助的人:4753万
展开全部
cin>>temp[i].name ; 会自动滤过空格,
你可以用这种方式防止空格背过滤掉:
cin.unsetf( ios::skipws );
试试看哈,放在这个语句的前面。
也可以用getline来代替。

template<class CharType, class Traits, class Allocator>
basic_istream<CharType, Traits>& getline(
basic_istream<CharType, Traits>& _Istr,
basic_string<CharType, Traits, Allocator>& _Str
);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式