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

来源:百度知道 编辑:UC知道 时间:2024/05/19 17:21:20
如题
比如要读入两个字符串 第一行abcd 第二行直接回车 我该怎么判断第二行是空的?
if(string=="") 这样?判断不出来

使用GetLine()

#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 判断

如果是要从键盘读入字符串,是无法把一个空行输入进去的,也无法把回车输入进去的。比如你的问题,要读入两个字符串,第一行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, cha