C++ 如何在.txt文件中拆分字母并按住';带c+数组的em+;?
我有一个txt文件。以下是索引:C++ 如何在.txt文件中拆分字母并按住';带c+数组的em+;?,c++,arrays,C++,Arrays,我有一个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 我得到了一个名为stringreaden[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
1 A D C V K O F R W
2 Y I J M
3 Q P
4 E S Z N L
我得到了一个名为stringreaden[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”
保持它的状态最好的方法是什么?我解决了它。我打了个圈。每次,letters[x]=file.get();get()
首先它接受字母,然后忽略1个空白字符。请注意。您想要readen[0]=“A”
还是readen[0]=“A”
?这些是不同的东西。我知道它们是不同的,但现在不要紧。你必须在每行的开头存储整数吗?你想把所有字母都放在一个数组(一维)中吗?是的,我必须把它们分开存储。一个数组中的整数,另一个数组中的字母实际上我想保持它们像字符数字[4];字符[19]我找到了一种方法,但我做错了什么。我尝试了getline(file,read,”)
这种方式,我想我可以保留没有空格的字母,但是文本是adcvk
,我得到的是ACK
。程序停止并给出错误。@hoizery“并像char x=letters[5]那样使用它们”。您可以用同样的方法使用向量。
#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');
}