C++ 如何从文件中读取行中的特定字符?

C++ 如何从文件中读取行中的特定字符?,c++,file-io,char,C++,File Io,Char,我正在处理一个文本文件中的属性数据集,它看起来像这样: e,x,y,w,t,a,f,c,b,k,e,c,s,s,w,w,p,w,o,p,n,s,g e,f,y,y,t,l,f,c,b,w,e,r,s,y,w,w,p,w,o,p,n,y,p e,b,s,w,t,a,f,c,b,w,e,c,s,s,w,w,p,w,o,p,n,s,g e,b,s,w,t,a,f,c,b,w,e,c,s,s,w,w,p,w,o,p,k,s,m e,x,y,n,t,l,f,c,b,w,e,r,s,y,w,w,p,w,o,

我正在处理一个文本文件中的属性数据集,它看起来像这样:

e,x,y,w,t,a,f,c,b,k,e,c,s,s,w,w,p,w,o,p,n,s,g
e,f,y,y,t,l,f,c,b,w,e,r,s,y,w,w,p,w,o,p,n,y,p
e,b,s,w,t,a,f,c,b,w,e,c,s,s,w,w,p,w,o,p,n,s,g
e,b,s,w,t,a,f,c,b,w,e,c,s,s,w,w,p,w,o,p,k,s,m
e,x,y,n,t,l,f,c,b,w,e,r,s,y,w,w,p,w,o,p,k,y,g
e,b,s,w,t,a,f,c,b,k,e,c,s,s,w,w,p,w,o,p,k,s,g
e,x,f,g,f,n,f,c,n,g,e,e,s,s,w,w,p,w,o,p,n,y,u
e,b,s,y,t,l,f,c,b,k,e,c,s,s,w,w,p,w,o,p,n,s,g

现在,我正试图找出如何轻松地读取给定列中的字符(例如,每行的第5个字母)。但是我不知道怎么做。有人知道我能做什么吗?

考虑到您处理的数据集只有一个字符,而不是任意大小,您可以推断每个字符后面都有一个逗号,因此

1个字符=2个文件空间不计算所需字符

如果您想阅读第5行,它将是文件中的
(4*2+1)
点。您可以将该行读入字符串并在字符串中找到它,或者每次只从文件中提取一个字符,直到达到所需的数字

cout << "What column would you like to read from? ";
cin >> num;
int Length = (num - 1) * 2 + 1;
char ColumnLetter;
for(int i = 0; i < Length; i++)
{
  inFile >> ColumnLetter;
}
cout>num;
整数长度=(num-1)*2+1;
字符列字母;
for(int i=0;i>专栏信;
}

如果数据中没有空格,每个符号都用逗号分隔,字符串的结尾是一个符号“\n”,则可以执行类似操作:

#include <iostream>
#include <fstream>

using std::ifstream;

ifstream file;
const int LINE_WIDTH; //number of your chars in line (without commas)

char GetFromFile(int row, int position) //row and position indexes start from 0!
{
  file.seekg(row * (LINE_WIDTH * 2) + position * 2);
  return file.get();
}

int main()
{
    file.open("data.txt", ios::binary);

    char c = GetFromFile(10, 3);

    file.close();
    return 0;
}
#包括
#包括
使用std::ifstream;
ifstream文件;
const int线宽//行中的字符数(不带逗号)
char GetFromFile(int行,int位置)//行和位置索引从0开始!
{
参见kg(行*(线宽*2)+位置*2);
返回file.get();
}
int main()
{
open(“data.txt”,ios::binary);
charc=GetFromFile(10,3);
file.close();
返回0;
}

不,只需逐行阅读,然后选择所需字符。使用CSV阅读器。