簡體   English   中英

如何從文件中讀取一行中的特定字符?

[英]How do I read a specific character in a line from a file?

我正在使用文本文件中的屬性數據集,看起來像這樣:

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;
}

如果數據中沒有空格,每個符號都用逗號分隔,並且字符串的末尾是一個符號“ \\ 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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM