Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
eyesandsky
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 7
#1

Переполнение при считывании из файла - C++

03.10.2012, 22:35. Просмотров 488. Ответов 7
Метки нет (Все метки)

Подскажите пожалуйста, где ошибка, вот код чтения из файла:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
void read_file(void)
{
int mass[n];
FILE* file = fopen("arr.txt", "r"); 
if (file)
{
for(int i=0; i<n; i++)
fscanf(file, "%d", &mass[i]);
fclose(file);
}
for(int i = 0; i<n; i++)
 cout <<mass [i]<< " ";
 cout << "\n ";
}
 
int _tmain(int argc, _TCHAR* argv[])
{
 int mass [n];
 int a[n],tmp;
 int number;
 std::cout<<"select the method of sorting:\n classic sort - 1\n bubble sort - 2\n qwik sort -3\n";
    
 read_file(); //здесь он выводит правильный массив из файла, а при следующем использовании массива
выводит переполнение
 
 cin >> number;
 {
  if (number == 1)
     {        
      for (int i=0;i<n;i++) 
      a[i] = mass[i]; 
 
      classicsort (a,0,n-1);
      for (int i=0;i<n;i++)
      cout<< a[i] << " ";
      cout << "\n";
     }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2012, 22:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Переполнение при считывании из файла (C++):

Переполнение строки при считывании из файла
Считываю я строки из файла, в котором их 500 тысяч. Если строка начинается на...

Проблема при считывании из файла
Пишу простенькую программу по криптографии. В результате шифрования получается...

Лишние биты при считывании файла
Нужно порциями по 63 байта считать текст из файла. &quot;in&quot; - мой открытый файл для...

При считывании из файла не выводится отчество
Необходимо прочитать из файла фамилию студента, имя и отчество. И вывеси на...

Лишние символы при считывании файла
Считываю структуру с файла и вывожу в консоль, при выводе появляются лишние...

Ошибка при считывании двоичного файла
При считывании из .EXE файла возникает ошибка, а возникает она когда...

7
I.M.
566 / 549 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
03.10.2012, 22:41 #2
При каком следующем использовании? из кода я увидел, что данные из файла заносятся в локальный массив внутри функции и дальше никуда не идут
0
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2012, 22:44 #3
Локальный массив создаёте. Где потом вы его собираетесь использовать, если после выхода из функции read_file() его уже нет? В main() int mass [n]; это не тот массив, что в read_file(). Объявляйте его глобально.
0
eyesandsky
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 7
03.10.2012, 23:08  [ТС] #4
если mass [n] не тот, то какой нужен?
просто если переставить вывод массива из функции уже в саму программу например. то сразу выовдится переполненный массив:

C++
1
2
3
4
read_file();
 for(int i = 0; i<n; i++)
 cout <<mass [i]<< " ";
 cout << "\n ";
0
I.M.
566 / 549 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
03.10.2012, 23:10 #5
надо в функцию передавать указатель на ваш массив и уже в функции заполнять его
0
eyesandsky
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 7
03.10.2012, 23:11  [ТС] #6
И как это сделать?))
0
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2012, 23:16 #7
Цитата Сообщение от eyesandsky Посмотреть сообщение
если mass [n] не тот, то какой нужен?
Глобально объявите один массив (до main()):
C++
1
2
3
4
5
const int n = 10;
int mass[n];
....
int main()
{}
и используйте его и в main() и в read_file().
0
eyesandsky
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 7
05.10.2012, 18:14  [ТС] #8
спасибо, разобралась
0
05.10.2012, 18:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2012, 18:14
Привет! Вот еще темы с решениями:

Неверная кодировка при считывании из файла
Проблема такая, при считывание из файла идет кракозябра, как это...

Разъясните ошибки при считывании файла
не пойму что от меня требуется тут) пол года изучаем язык) часть ошибок...

Сбивается указатель при считывании из файла
Сбивается указатель, считывается не то значение (вместо '1' считывается пробел...

Конец файла при потоковом считывании
if (fin.eof()==0){ cout &lt;&lt; &quot;aaa&quot;; int asa; asa = (int)buf;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru