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

Массивы и строки

22.12.2008, 15:29. Просмотров 768. Ответов 8
Метки нет (Все метки)

Здравствуйте! тут вот в задаче проблема есть. Задание состоит в следующем: нужно прочесть из файла последовательность чисел и эти числа поместить в целочисленный массив для работы с ним (в дальнейшем надо будет упорядочить числа по возрастанию). Так выглядит последовательность в файле:

285
109
27
207

а так должно быть:
x[1]=285
x[2]=109 и тд

Со считыванием из файла разобралась а вот с помещением имеющихся чисел в массив типа int не могу разобраться. Подскажите как можно? я использую преобразование в int из char но мне во-первых не выводит последний элемент последовательности и вобще выводит какие то странные числа...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char ch[65], c;
   ifstream in;
   in.open("number.txt");
   int x[100];
   int i=0;
   in.getline(ch, sizeof(ch));
  while (!in.eof())
   {
         x[i]=(int)ch;
         cout<<x[i]<<endl;
         in.getline(ch, sizeof(ch));
         i++;
   }
 
  in.close();
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2008, 15:29
Ответы с готовыми решениями:

массивы и строки
Ввести строку. Выяснить сколько раз в строке встречается буква &quot;а&quot;?в каком по...

массивы, строки с++
помогите пожалуйста! 1. (одномерные массивы) Найти сумму элементов массива,...

строки и массивы
задание - написать программу, которая удаляет все цифры из строки #include...

Строки и массивы
Дана строка с текстом и пустой массив.(Например в строке такой текст: ...

Массивы. Строки.
1)Дан массив размера а(четное число). Поменять местами 1 и 2 половины массива....

8
Vourhey
Почетный модератор
6493 / 2268 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
22.12.2008, 15:32 2
Здрасьте... кто ж через приведение типа преобразовывает считанную строку к целому числу? Это в корне неверно. Используй atoi, например.
0
Otaka
1829 / 687 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
22.12.2008, 15:39 3
Согласен с Vourhey, а еще ты пропускаешь самый последний элемент.
Надо как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char ch[65], c;
   ifstream in;
in.open("E:\\number.txt");
   int x[100];
   int i=0;
  while (!in.eof())
   {
         in.getline(ch, sizeof(ch));
         x[i]=atoi(ch);
         cout<<x[i]<<endl;
         i++;
   }
 
  in.close();
0
Jenka156
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 4
22.12.2008, 16:37  [ТС] 4
Да! спасибо. теперь работает. но теперь другая загвоздка. при 4-х числах работает, а вот у меня файл состоит из 500 чисел, которые нужно упорядочить. при объявлении массива x задаю размер 1000000. ошибки в программе нет, но теперь ошибка выскакивает при компиляции Debugger Exception Notification о том что 'Stack Overflow'. что это такое???
0
Otaka
1829 / 687 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
22.12.2008, 16:41 5
Переполнение стека. Ведь массив x то у тебя на 100 элементов.
0
Jenka156
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 4
22.12.2008, 17:38  [ТС] 6
Ой!!! все, разобралась! спасибо вам огромное!!!!

Добавлено через 55 минут 49 секунд
В этой задаче есть еще одна проблема. нужно измерить время работы функции упорядочивания массива. я для этого использую GetTickCount() и не могу понять, почему у мнея при каждой последующей компиляции время возрастает? может надо как то очищать таймер? если да то как?
0
Otaka
1829 / 687 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
22.12.2008, 17:51 7
Надо делать так:
C++
1
2
3
4
5
6
int start=GetTickCount();
 
//сложные вычисления
 
int end = GetTickCount();
int Res=end-start;
0
Jenka156
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 4
22.12.2008, 18:22  [ТС] 8
Ух ты! спасибоооо!!!
0
Vourhey
Почетный модератор
6493 / 2268 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
22.12.2008, 18:26 9
Цитата Сообщение от Jenka156 Посмотреть сообщение
Ух ты! спасибоооо!!!
надо иногда в документацию заглядывать, чтобы для приличия знать, что делает функция, прежде чем ее использовать. Тему закрываю.
0
22.12.2008, 18:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2008, 18:26

Массивы, строки (на С++)
1ое задание: Вычислить величину (x0y0 + x2y2 + … + x30y30)/( x1y1+ x3y3 + … +...

Массивы и строки ...
Помогите пожалуйста решить задачу ... 1) В поезде 18 вагонов, в каждом из...

Массивы и строки
Помоги пожалуйста написать программу.ТЗ:Написать программу,коротая выводит с...


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

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

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