c++ 怎么判断一行为空?
如题比如要读入两个字符串第一行abcd第二行直接回车我该怎么判断第二行是空的?if(string=="")这样?判断不出来...
如题
比如要读入两个字符串 第一行abcd 第二行直接回车 我该怎么判断第二行是空的?
if(string=="") 这样?判断不出来 展开
比如要读入两个字符串 第一行abcd 第二行直接回车 我该怎么判断第二行是空的?
if(string=="") 这样?判断不出来 展开
5个回答
展开全部
如果是要从键盘读入字符串,是无法把一个空行输入进去的,也无法把回车输入进去的。比如你的问题,要读入两个字符串,第一行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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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 判断
#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 判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以使用istream的getline函数。getline将整行的内容放进一个char数组中(buf),通过判断buf[0]==0来判断是不是空行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-06-20
展开全部
哪里的一行?文件中?
你判断一下读入的第二个字符串是不是空的就好了啊!
你判断一下读入的第二个字符串是不是空的就好了啊!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用GetLine()
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询