Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Jenka156
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 4
#1

Массивы и строки - C++

22.12.2008, 15:29. Просмотров 735. Ответов 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();
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2008, 15:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы и строки (C++):

Массивы и строки - C++
Помогите пожалуйста написать программу в visual studio 2005.Само задание:Написать программу коротая вводит с клавиатуры массив из 10 целых...

строки и массивы - C++
задание - написать программу, которая удаляет все цифры из строки #include &lt;iostream&gt; using namespace std; int main() { ...

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

Строки и массивы - C++
Дана строка с текстом и пустой массив.(Например в строке такой текст: programmer programmer,programmer;programmer ). Необходимо...

Массивы и строки ... - C++
Помогите пожалуйста решить задачу ... 1) В поезде 18 вагонов, в каждом из которых 36 мест. Информация о проданных на поезд билетах...

Массивы. Строки. - C++
1)Дан массив размера а(четное число). Поменять местами 1 и 2 половины массива. 2) Дана матрица MxN. Найти кол-во её строк, элементы...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.12.2008, 15:32 #2
Здрасьте... кто ж через приведение типа преобразовывает считанную строку к целому числу? Это в корне неверно. Используй atoi, например.
Otaka
1824 / 680 / 18
Регистрация: 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();
Jenka156
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 4
22.12.2008, 16:37  [ТС] #4
Да! спасибо. теперь работает. но теперь другая загвоздка. при 4-х числах работает, а вот у меня файл состоит из 500 чисел, которые нужно упорядочить. при объявлении массива x задаю размер 1000000. ошибки в программе нет, но теперь ошибка выскакивает при компиляции Debugger Exception Notification о том что 'Stack Overflow'. что это такое???
Otaka
1824 / 680 / 18
Регистрация: 11.12.2008
Сообщений: 1,019
22.12.2008, 16:41 #5
Переполнение стека. Ведь массив x то у тебя на 100 элементов.
Jenka156
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 4
22.12.2008, 17:38  [ТС] #6
Ой!!! все, разобралась! спасибо вам огромное!!!!

Добавлено через 55 минут 49 секунд
В этой задаче есть еще одна проблема. нужно измерить время работы функции упорядочивания массива. я для этого использую GetTickCount() и не могу понять, почему у мнея при каждой последующей компиляции время возрастает? может надо как то очищать таймер? если да то как?
Otaka
1824 / 680 / 18
Регистрация: 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;
Jenka156
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 4
22.12.2008, 18:22  [ТС] #8
Ух ты! спасибоооо!!!
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
22.12.2008, 18:26 #9
Цитата Сообщение от Jenka156 Посмотреть сообщение
Ух ты! спасибоооо!!!
надо иногда в документацию заглядывать, чтобы для приличия знать, что делает функция, прежде чем ее использовать. Тему закрываю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2008, 18:26
Привет! Вот еще темы с ответами:

Массивы и строки - C++
Здравствуйте, у меня есть просьба ко всем программистам владеющим С++. У меня сейчас такое положение, что если завтра (6.02.10) я не сдам...

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

Массивы и строки - C++
Люди помогите решить плиз:wall: Массивы: 1) Написать программу, которая вводит с клавиатуры двумерный массив и вычисляет сумму...

Массивы и строки - C++
Помоги пожалуйста написать программу.ТЗ:Написать программу,коротая выводит с клавиатуры массив из 10 целых чисел,считает среднее...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.12.2008, 18:26
Закрытая тема Создать тему
Опции темы

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