如何拆分文件中.txt字母并使用c ++使用数组进行扑克?

How to split letters in .txt file and hold'em with array with c++?

本文关键字:数组 扑克 拆分 何拆分 文件 txt      更新时间:2023-10-16

我有一个txt文件。这里是索引:

1 A D C V K O F R W 
2 Y I J M 
3 Q P 
4 E S Z N L 

我得到了一个名为string readen[9];的变量中的字母

readen[0]` = "A D C V K O F R W";
readen[1]` = "Y I J M";

像这样,它们之间是空白的。我需要一个接一个地抓住所有的字母,比如:

readen[0]` = "A";
readen[1]` = "W";

(无空白(

这是我的代码:

string read;
string readen[9];
char numbers[9];
ifstream file;
file.open("deneme.txt", ios::in);
for (int i = 0; !file.eof(); i++) 
{
numbers[i] = file.get();
file.get();
getline(file,read);
readen[i] = read;
}

正如我所说,现在是这样-->readen[0]="A D C V K O F R W">

保持readen[0] = 'A' readen[1] = 'D'的最佳方式是什么?

#include <cctype>  // std::isalpha()
#include <vector>
#include <iostream>
#include <fstream>
int main()
{
std::ifstream is{ "deneme.txt" };
std::vector<int> numbers;
std::vector<char> letters;
for (;;) {
int number;
int ch;
// as long as extraction of an integer fails extract characters
while (!(is >> number) && (is.clear(), (ch = is.get()) != EOF)) {
if(std::isalpha(static_cast<unsigned>(ch)))
letters.push_back(ch);
}
if (!is) break;
numbers.push_back(number);
}
std::cout << "Numbers: ";
for (auto const &n : numbers)
std::cout << n << ' ';
std::cout << "nLetters: ";
for (auto const &l : letters)
std::cout << l << ' ';
std::cout.put('n');
}

输出:

Numbers: 1 2 3 4
Letters: A D C V K O F R W Y I J M Q P E S Z N L

我解决了它。我放入了一个循环。每次,letters[x] = file.get(); file.get();首先取字母,然后忽略1个空白字符。