从文件中读取几个变量类型
reading several variable types from file
我有一个文件,如下所示:
5,4,A
6,3,A
8,7,B
7,6,B
5,2,A
9,7,B
我正在尝试创建一个类函数,该函数读取一行并将内容分别插入x、y和featClass中。变量类型为int x、y和char featClass。从那时起,我可以创建一个名为sample1的类的对象,它将在文件中的相应行中包含x、y和featClass。
为了澄清,每一行代表一个样本。我将为每个采样线创建一个我类的对象,并将对象命名为sample1、sample2等…
在将代码插入类函数之前,我编写了主要用于读取文件的代码,以确保它正常工作。然而,当我运行程序并将第一行读取到x、y和featClass中时,每个变量的结果值分别为1,0、P,这与第一行5,4、A不匹配。
这是我到目前为止的代码:
#include <iostream>
#include <cmath>
#include <fstream>
#include <cstdlib>
using namespace std;
int main()
{
//init variables
int x,y;
char featClass;
//get x,y, and output params from input file
char filename[50];
ifstream sampleFile("sampleFile.txt");
//cin.getline(filename,50);
sampleFile.open(filename);
if(!sampleFile.is_open())//check if file is not open
{
exit(EXIT_FAILURE);//terminates program if file is not opened correctly
};
while(sampleFile.peek() == ',')
{
sampleFile.ignore(1);`
sampleFile >> x >> y >> featClass;
};
cout << x << " " << y << " " << featClass << endl;
return 0;
}
我想知道为什么我的代码将1,0,p输出到x,y和featclass中。
我注意到sampleFile.ignore(1)之后有一个`;我要做的是制作一个for语句,遍历每个字符,寻找"1"的匹配项,如果找到了,就删除它
您应该使用getline()读取整行,而不是cin.peek()
。
while(getline(sampleFile, line))
{
//do stuff here
};
然后,解析该行,并使用stringstream
将值存储到x、y和featClass中
因此,您的代码(读取文件并解析它)将类似于以下内容:
char ch; <-- include this for comma
while(getline(sampleFile, line))
{
//do stuff here
stringstream sstream(line);
//this is for your particular problem as your file format is --> int, int, char
sstream >> x >> ch >> y >> ch >> featClass;
cout << x << " " << y << " " << featClass << endl;
};
查看此链接以阅读和了解有关stringstream
的更多信息
http://www.eecis.udel.edu/~后膛/progteam/stringstream.html
相关文章:
- 声明 2 个变量
- 我可以创建一个包含两个变量的 for 循环,但时间复杂度仍然为 O(n) 吗?
- 为我的 c++ 类介绍制作一个三角形分类器.我有几个问题
- 使用 make 编译 MPI,几个命名空间错误,例如"错误:未知类型名称'使用'?
- 如何返回或护理项目清单基于几个类别
- 我们如何在文本文件中找到C++中的几个单词?
- 关于 std::bitset 构造函数的几个问题?
- 在C++的一行中初始化多个变量
- (C++)虽然循环一次不起作用,但我引入了多个变量
- 如何在单行语句中C++递减多个变量?
- 我有几个关于参考变量的问题
- 如何将几个变量复制到其他变量
- C++ 两个线程,共享几个整数变量
- 初始化几个用逗号","分隔的变量
- 从几个变量中创建字符串
- C++健全性检查失败:几个变量/内存位置被更改为垃圾,即使我从未访问过它们
- 从文件中读取几个变量类型
- 在 C++ 中易变:我是否应该定义一个可能被几个线程更改的变量作为易失性
- 使用类只是为了维护几个常量变量是个好主意吗?
- 如何定义几个源文件访问的Linux内核变量