Нужна помощь в чтении файла с целыми числами в массив - PullRequest
0 голосов
/ 09 декабря 2011

Приведенный ниже код не читает правильные символы из файла. Есть идеи, что не так?

    ifstream inFile;
    inFile.open("chars.txt");

    char ch; //dummy variable
    char first, last;
    int first1, last1;

    for(int i=0;i<SIZE;i++)
    {
        for(int j=0;j<5;j++){
        inFile.get(first);
        inFile.get(last);

на данный момент первый и последний не являются правильными символами из файла. (при первом прохождении цикла) Возможно, это что-то простое, но я действительно плох в этом. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Вам не нужно анализировать числа вручную таким образом.Вместо использования функции get я бы рекомендовал использовать оператор извлечения >>, как в следующем примере:

#include <vector>
#include <fstream>
#include <iostream>

int main()
{
  std::vector<int> values;
  std::ifstream inFile("chars.txt");
  int temp;

  // Read the values in one at a time:
  while (inFile >> temp)
  {
    values.push_back(temp);
  }

  // Demonstrate that we got them all by printing them back out:
  for (unsigned int i = 0; i < values.size(); ++i)
  {
    std::cout << "[" << i << "]: " << values[i] << std::endl;
  }
}
0 голосов
/ 09 декабря 2011

Я не уверен, относится ли это к C ++, но у меня была эта проблема в C #.

Мне пришлось использовать Char.GetNumericValue(); для читаемого символа.

Пример кода на C #:

int myInt;
char myChar = '5';

myInt = Char.GetNumericValue(myChar);
Console.WriteLine("My character as int: "+myInt.ToString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...