C++ 如何在c+中读取文件时忽略字符+;
我正试图编写一个程序,将我有一个文本文件,其中有一堆联系信息,并将其存储在一个数组中供以后使用。文本文件没有新行,只是格式为“姓氏”、“姓氏、名字”、“电话号码”、“电子邮件地址”、“家庭地址”、“姓氏、名字”、“电话号码”、“电子邮件地址”、“姓名”、“电话号码”、“电子邮件地址” 所以我想从文件中读取并获取所有数据成员并保存它们,问题是有时它在“name”中有名称/编号,有时它只有一组空引号,如“”,有时它只有空格和另一个逗号,如“Phone number”、“,所以我想能够检查是否有引号,是否有引号,然后读取数据,直到下一个“,如果没有引号,则只需两个连续的逗号,然后不向该数据字段读取任何内容,并移动到下一个 我在大学三年级上计算机科学课,所以我对编程有点了解,但不是所有的东西,所以尽量不要用正确的方法把我从水里吹出来。这是一个个人项目,不是任何类型的家庭作业,你知道的 到目前为止,我使用的函数如下所示C++ 如何在c+中读取文件时忽略字符+;,c++,file-io,ifstream,C++,File Io,Ifstream,我正试图编写一个程序,将我有一个文本文件,其中有一堆联系信息,并将其存储在一个数组中供以后使用。文本文件没有新行,只是格式为“姓氏”、“姓氏、名字”、“电话号码”、“电子邮件地址”、“家庭地址”、“姓氏、名字”、“电话号码”、“电子邮件地址”、“姓名”、“电话号码”、“电子邮件地址” 所以我想从文件中读取并获取所有数据成员并保存它们,问题是有时它在“name”中有名称/编号,有时它只有一组空引号,如“”,有时它只有空格和另一个逗号,如“Phone number”、“,所以我想能够检查是否有引号,
void Info::readFile(ifstream& in)
{
if (in.good())
{
in >> lastName;
}
else if (in.bad() || in.fail())
{
throw BadException();
}
if (in.good())
{
in >> lastName;
}
else if (in.bad() || in.fail())
{
throw BadException();
}
if (in.good())
{
in >> firstName;
}
else if (in.bad() || in.fail())
{
throw BadException();
}
if (in.good())
{
in >> phoneNumber;
}
else if (in.bad() || in.fail())
{
throw BadException();
}
//same code adding other data members
}
首先,所有stl流类都有一个强制转换为bool和operator!它为您检查badbit和failbit,所以您可以替换所有
if (in.bad() || in.fail())
与
现在,对于解析部分,您似乎希望以一种非常简单的方式分离“和”上的文本。我建议您查看字符串头中的std::getline:首先:听起来您的文件格式定义为一组由逗号分隔的重复记录。如果逗号只出现在元素之间,那么这就意味着一种相当简单的解析策略。第二:这些是引号,不是圆括号:
“
。请缩进您的代码。您的代码甚至没有显示解决问题的尝试。。。
if (!in)