c++ 怎么判断一行为空?

如题比如要读入两个字符串第一行abcd第二行直接回车我该怎么判断第二行是空的?if(string=="")这样?判断不出来... 如题
比如要读入两个字符串 第一行abcd 第二行直接回车 我该怎么判断第二行是空的?
if(string=="") 这样?判断不出来
展开
 我来答
sdfwds4
2009-06-21 · TA获得超过953个赞
知道小有建树答主
回答量:629
采纳率:0%
帮助的人:792万
展开全部
如果是要从键盘读入字符串,是无法把一个空行输入进去的,也无法把回车输入进去的。比如你的问题,要读入两个字符串,第一行abcd,第二行直接回车,这个回车或者空行的标志是无法输入进去的,哪怕你按再多的回车,程序都会一至等待你输入一个以上的字符并且按回车确认,示例程序:
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string a, b;
cin >> a >> b ;
cout << a << b ;
return 0;
}

假如程序是从文件读入字符串的话,并且一行一个字符串,那么只要判断这一个字符串的第一个字符是否为'\n'就行了,如:
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string a;
char b[22];
// ........ // 这里是读入文件的字符串
if(a.c_str()[0]=='\n') // C++ 风格判断是否为空
{}
if(b[0]=='\n') // C 风格判断是否为空
{}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友350302d
2009-06-20 · TA获得超过669个赞
知道小有建树答主
回答量:1048
采纳率:0%
帮助的人:607万
展开全部
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
getline(cin,str);
cout<<"第一行为:"<<str<<endl;
getline(cin,str);
if(str == "")
{
cout<<"第二行为空"<<endl;
}

}
怎么不可以?你用的是c风格的字符串?
用strcmp(string,"") == 0 判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nicky_zs
2009-06-20 · TA获得超过654个赞
知道小有建树答主
回答量:407
采纳率:0%
帮助的人:411万
展开全部
可以使用istream的getline函数。getline将整行的内容放进一个char数组中(buf),通过判断buf[0]==0来判断是不是空行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-06-20
展开全部
哪里的一行?文件中?

你判断一下读入的第二个字符串是不是空的就好了啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Kondykuang
2009-06-20 · TA获得超过138个赞
知道小有建树答主
回答量:417
采纳率:0%
帮助的人:250万
展开全部
使用GetLine()
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式