Выход программы Должно быть:Чтение данных из файла в массив
Цифры: 101 102 103 104 105 106 107 108 108 110
Но мой вывод:
числа: 0 0 0 0 0 0 0 0 1606416272 32767
Это мой код:
// This program reads data from a file into an array.
#include <iostream>
#include <fstream> // To use ifstream
using namespace std;
int main()
{
const int ARRAY_SIZE = 10; // Array size
int numbers[ARRAY_SIZE]; // Array number with 10 elements
int count = 0; // Loop counter variable
ifstream inputFile; // Input file stream object
// Open the file.
inputFile.open("TenNumbers.rtf");
// Read the numbers from the file into the array.
while (count < ARRAY_SIZE && inputFile >> numbers[count]){
count++;
}
// Close the file.
inputFile.close();
// Display the numbers read:
cout << "The numbers are: ";
for (count = 0; count < ARRAY_SIZE; count++){
cout << numbers[count] << " ";
}
cout << endl;
return 0;
}
Это содержимое файла TenNumbers.rtf Читаю данные из:
101
102
103
104
105
106
107
108
109
110
UPDATE 1: Я попытался с помощью текстового файла, но результаты похожи.
Числа: 0 0 0 0 0 0 0 0 1573448712 32767
UPDATE 2: я нашел, где этот вопрос. После запуска if (inputFile.good())
я узнал, что файл не открывается.
Проверьте состояние 'inputFile' после открытия и каждый' файл_ввода >> чисел [ count] ', чтобы убедиться в отсутствии ошибок при загрузке из файла. Также подумайте, что должно произойти, если файл содержит меньше чисел ARRAY_SIZE. Я также предлагаю использовать 'std :: array' или' std :: vector', которые выполняют больше проверок в хороших отладчиках. –
Я действительно не знаю формат .rtf. Вы уверены, что сохраняет текст в формате, совместимом с ASCII? Если нет, это может быть проблемой. Быстрый взгляд на страницу вики предполагает, что он, по крайней мере, может содержать дополнительные символы форматирования. Попробуйте с обычным файлом .txt. –
Я пробовал использовать txt-файл, но результаты схожи. 'Цифры: 0 0 0 0 0 0 0 0 0 1573448712 32767' –