Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 25.11.2017, 11:56   #1
kirillznatok
Новичок
 
Регистрация: 25.11.2017
Сообщений: 2
Репутация: 10
По умолчанию числа из .txt в массив через getline и atoi.

Нужно перенести числа из .txt в массив без побитового сдвига (>>) c использованием только getline и atoi.
нуждаюсь в помощи.
kirillznatok вне форума   Ответить с цитированием
Старый 25.11.2017, 12:07   #2
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,873
Репутация: 1915
По умолчанию

И в чем проблема?
waleri вне форума   Ответить с цитированием
Старый 25.11.2017, 12:18   #3
kirillznatok
Новичок
 
Регистрация: 25.11.2017
Сообщений: 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
И в чем проблема?
Код:
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
	setlocale(LC_ALL, "Russian");
	ifstream fin("INPUT.txt");
	ofstream fout("Output.txt");

	int* mas = new int[255];
	for (int i = 0; i < 255; i++)
	{
		mas[i] = 0;
	}
	int j = 0;
	while (!fin.eof())
	{
		char* buf = new char[255];
		fin.getline(buf, 255);

		for (int i = 0; i < 255; i++)
		{
			if (buf[i] == '\0')
			{
				break;
			}
			if (buf[i] == ' ')
			{
				j++;
			}
			else
			{
				if (mas[j] == 0)
				{
					mas[j] = atoi(buf + i);
				}
				fout << mas[j] << " ";
			}
		}
	}
}
некорректный вывод
kirillznatok вне форума   Ответить с цитированием
Старый 25.11.2017, 15:29   #4
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 353
Репутация: 114
По умолчанию

Мне кажется, может быть ошибка в строке
Код:
		char* buf = new char[255];
		fin.getline(buf, 255);

		for (int i = 0; i < 255; i++)
		{
			if (buf[i] == '\0')
			{
				break;
			}
не могу найти описание метода getline, но по моей логике он просто читает символы по ссылке в buf, и символ \0 может и не подставляет.
Во всяком случае, по-моему есть два getline: функция работы с файлами и метод для входного текстового потока.

Попробуйте не решать всю задачу, а сделать только чтение файла и выборку чисел.
СтудПом вне форума   Ответить с цитированием
Старый 25.11.2017, 16:01   #5
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,646
Репутация: 2631
По умолчанию

Цитата:
не могу найти описание метода getline
А вы пробовали? http://en.cppreference.com/w/cpp/io/...stream/getline
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 25.11.2017, 16:38   #6
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 353
Репутация: 114
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А вы пробовали?
Спасибо, попробовал
СтудПом вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дан двумерный массив пользователь вводит натуральные числа,массив размером N на M .Все числа из которых можно извлечь корень извлекаются все числа меньше нуля заменяются их модулем qqq`` Паскаль 9 02.10.2017 18:11
Как заполнить циклично строки через getline? Вероника99 Помощь студентам 6 30.10.2015 08:54
массив из N целых положительных чисел. Определить наименьшую цифру у каждого числа. через подпрограмму ( Free Pascal ) Алексей НТ Паскаль 1 21.05.2012 19:19
Открыть .txt файл через OpenDialog Dissembler7 Помощь студентам 2 07.04.2012 21:07
Открывание .txt через WIN32 chev-91 Assembler 1 27.05.2011 12:07


15:31.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru