如何在 C++ 中读取文件时忽略字符
how to ignore a character while reading from a file in c++
我正在尝试编写一个程序,该程序将获取我拥有的文本文件,其中包含一堆联系信息并将其存储在数组中以供以后使用。 文本文件没有新行 它只是采用"姓氏"、"姓氏、名字"、"电话号码"、"电子邮件地址"、"家庭住址"的格式, "姓氏、名字"、"电话号码"、"电子邮件地址"、",","
所以我想从文件中读取并获取所有数据成员并保存它们,问题是有时它在"名称"中有名称/编号,有时它只有一组空引号,例如",有时它只有空格和另一个逗号,如"电话号码",,",所以我希望能够检查是否有引号,如果有,然后读取数据直到下面的",如果没有引号,只有两个连续的逗号,那么在该数据字段中不读取任何内容并移动到下一个。
我在大学读计算机科学课的大三,所以我对编程有所了解,但不是所有事情,所以尽量不要用正确的方式把我从水里吹出来。这是一个个人项目,不是任何类型的家庭作业,只是为了让你知道。
到目前为止,我拥有的功能如下所示
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 和运算符 ! 为您检查坏位和故障位,因此您可以替换所有
if (in.bad() || in.fail())
跟
if (!in)
现在对于解析部分,您似乎想以一种非常简单的方式将您得到的文本分开 " 和 。我建议你查看字符串标头中的 std::getline:http://www.cplusplus.com/reference/string/string/getline/
相关文章:
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 如何在C++中确定文本文件中的元素是字符还是数字
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 如何从文本文件中读取数值,直到遇到字符类型?
- 使用 fopen 打开 .pak 文件并使该文件应用于 const 无符号字符* (C++)
- 如何像在 C++ 中处理数组一样对 .txt 文件中的字符进行寻址?
- 尝试将字符串从文件读取到无符号字符向量中
- 如何在C++中反转文本文件中字符的顺序?
- 生成随机.txt文件,10行,10列。充满随机:"*"、"#"、"@"。然后将随机字符替换为'P'
- 如何存储 unicode 字符并将其输出到文件?
- 无法将整个文本文件复制到字符数组
- 仅读取文件末尾的最后 3 个字符,并将其另存为 int
- 将未签名的字符写入输出文件
- 从我的 2DgridArray 中的文本文件中获取每个字符
- ifstream 读取的字符与文件中写入的字符不同
- VSCode C++调试文件名中包含中文字符的文件时插件损坏
- 从文本文件 (C++) 生成字符矩阵
- 使用指针编译代码后,.cpp文件将变为随机字符
- 在c++中读取文件时,它如何自动将字符放入字符数组,将数字放入整数变量
- 跨平台UTF-8字符文件数据编码/解码