从文本文件中读取数据并忽略其他文件
Reading Data from a Text File and Ignoring Others
对于我项目的一小部分,我应该使用CIN从文本文件中提取数据,而我的程序将根据命令行参数知道从哪里知道CIN。我的问题是如何提取四个数据并忽略逗号。例如,.txt文件看起来像以下
(1,2,3,.)
(2,1,3,#)
(3,1,0,.)
在这种情况下,我需要提取1,2,3和。对于第一行。然后移至第二行。当达到空白的新线时,我可以通过一段时间循环退出getline()方案。
我知道我需要使用getline(),并且能够使用getline()生成的字符串的.AT()函数提取数据。但是,当1,2或3之类的坐标可能是两位数时,我变得困惑了。发生这种情况时,我以前的算法无法使用,所以我觉得我要过度思考事物,应该有一种更简单的方法来解析此数据。
谢谢!
您只需将>>运算符用于假人'char'变量即可在分隔符中读取。假设您不在乎第四代币,并且总是一个字符:
char ch;
while (ss >> ch)
{
int a,b,c;
ss >> a >> ch >> b >> ch >> c >> ch >> ch >> ch;
}
一种简单的方法是使用sscanf,将您读取的字符串传递为第一个参数
sscanf(s, "(%d,%d,%d,%c)", &a, &b, &c))
如果您想从头开始解析字符串,只需集中图案。
在这种情况下,模式为
'(', number, ',', number, ',', number, ',', char, ')'
因此,您可以找到三个逗号,然后只需从它们之间提取三个数字。
更复杂的方法是正则。但是C 没有对此的本机支持(Boost库确实)
相关文章:
- 在其他文件中创建类时在 c++ 项目中不起作用
- 我应该将除 .cpp 以外的其他文件添加到 git 中吗?
- 如何在其他文件中使用函数
- C++ - 忽略并从其他文件获取数据
- CMake:在其他目录中找不到我的头文件
- 无法使用 CMake 从其他文件夹添加源文件
- 如何使用 C/C++ 和 system() 系统调用以外的其他方法在 Linux 中获取文件功能?
- 从文件中查找单词并替换到其他文件中
- 在命名空间中声明变量,在 main 中定义它,使其对所有其他文件可见
- 没有头文件如何使用c ++调用其他模块中的函数?
- 访问从 CPP 文件到其他头文件的静态变量
- 不能在其他文件中包含结构
- 无法打开包含文件'Graphics.hpp'没有这样的文件或目录,Visual Studio的其他包含不起作用
- 如何在 Linux 下使用 c++ 知道文件是否被其他进程使用?
- 使用函数打开文件,然后让其他函数利用该文件?
- 如何使用Winforms C#或C++.Net在不更改文件中其他内容的情况下修改jpg文件中的Orientation e
- 如何调试visual studio 2017生成的C++代码.android中的SO文件和其他第三方库
- 如何使用QXmlStreamReader解析包含对其他XML文件的引用的XML文件
- 如何在不受其他文件影响的情况下"by itself" Visual Studio 项目中运行C++文件?
- 如何将 cpp 文件中的静态函数公开给其他文件