Ввод данных двух отдельных значений из txt файла в массив

0

Поэтому я читаю данные из текстового файла и помещаю его в массив. Мой код работает отлично и выводит данные, за исключением того, что вместо вывода таких данных, как

Q 5

он выводит это так

Q
5

Это часть более высокого значения, когда я помещаю все значения в очередь и сортирую их на основе численного значения, которое в приведенном выше примере будет 5. Но мне просто нужна помощь, пытаясь заставить данные выходить, как

Q 5

Вот мой код:

#include <iostream>
#include <fstream>

using namespace std;


int main()
{
const int alphabet = 52;
char letter[alphabet];
int count = 0;

ifstream dataIn;
dataIn.open("CharInput.txt");
if (!dataIn)
{
    cout << "Error opening data file\n";
}
else
{
    while (count < alphabet && dataIn >> letter[count])
        count++;

    dataIn.close();

    cout << "The letters and their position are: " << endl;
    for (int stuff = 0; stuff < count; stuff++)
    {
        cout << letter[stuff] << endl;
    }
}

system("PAUSE");
return 0;
}

Файл данных - это имена CharInput.txt и имеет:

26
Q 5
W 3
E 8
R 7
T 2
Y 9
U 0
I 9
O 6
P 1
A 2
S 2
D 4
F 3
G 6
H 9
J 8
K 0
L 3
Z 1
X 5
C 7
V 4
B 7
N 2
M 8
  • 0
    Я чувствую, что это что-то довольно легко, но я не могу думать об этом сейчас
Теги:
iostream

1 ответ

0
Лучший ответ

Данные выводятся в строках, потому что вы печатаете их, заканчивая на std::endl, который по его имени заканчивает текущую строку.

Вместо этого используйте пробел между каждым элементом и его счетчиком:

for (int stuff = 0; stuff < count; stuff += 2)
{
    cout << letter[stuff] << " " << letter[stuff + 1] << std::endl;
}
  • 0
    Это сработало, спасибо !! но теперь он выводит 26 Q 5 W 3 E 8 ... M 8. Есть ли способ заставить их выстроиться в линию, как Q 5, а затем под ним, где есть W 3?
  • 0
    @Danielll Поставь cout << endl; каждая вторая итерация.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню