Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2012, 09:16   #1
kibcat
 
Регистрация: 16.05.2012
Сообщений: 5
По умолчанию считывание строки из файла

нужно считать строку в массив из файла,длина строки больше 4000, файл содержит последовательность нулей и единиц, при считывании считывает какуюто белиберду, пробовал считывать всю строку сразу через getline() и посимвольно в цикле через get()
Код:
# include <iostream>
# include <string.h>
# include <fstream>
using namespace std;
void main()
{
	char m[5000];
	int test[2]={0,1};
	int i,l,km,j=0;
	for(i=0;i<5000;i++)m[i]=2; //присваиваем каждому элементу массиву значение равное 2
	ifstream f1("writefile.txt");
	f1.getline(&m[0],5000);
	/*for(i=0;i<5000;i++)
	{
		if(m[i]!='\n')	m[i]=f1.get();
		
		else {m[i]='\0';break;}
	cout<<m[i]<<" ";
		system("pause");
	}
	cout<<endl;*/
	for(i=0;i<1;)
	{
		km=0;
		for(int l=0;l<2;l++)
		{
			if(m[j]==test[l]){km=1; break;}
		}
		j++;
		if(km==0){m[j]=NULL;i++;;}
	}
	i=0;
	while(i<5000)
	{
cout<<m[i];
i++;
}
system("pause");
}
kibcat вне форума Ответить с цитированием
Старый 17.05.2012, 10:39   #2
alezha
Форумчанин
 
Регистрация: 16.04.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от kibcat Посмотреть сообщение
Код:
for(int l=0;l<2;l++)
{
	if(m[j]==test[l]){km=1; break;}
}
j++;
if(km==0){m[j]=NULL;i++;;}
}
Как у Вас вообще что-то компилировалось, если стоит две точки с запятой.
А вместо getline попробуйте f1.read(m,5000);
alezha вне форума Ответить с цитированием
Старый 17.05.2012, 10:46   #3
кухнипрофф
Новичок
Джуниор
 
Регистрация: 17.05.2012
Сообщений: 1
По умолчанию

Цитата:
Сообщение от kibcat Посмотреть сообщение
нужно считать строку в массив из файла,длина строки больше 4000, файл содержит последовательность нулей и единиц, при считывании считывает какуюто белиберду, пробовал считывать всю строку сразу через getline() и посимвольно в цикле через get()
файл содержит последовательность бинарных нулей или коды char символа '0'?

есть ф-ции работы с файлами чистого C

char * fgets ( char * str, int num, FILE * stream );
читает текстовую строку

int fscanf ( FILE * stream, const char * format, ... );
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

читать бинарные данные
мой сайт http://kuhni-proff.ru

Последний раз редактировалось кухнипрофф; 17.05.2012 в 10:56.
кухнипрофф вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
считывание из файла vitalik560 C++ Builder 1 01.07.2011 12:53
Считывание строки Blad47 Помощь студентам 1 07.04.2011 20:31
Считывание файла со второй строки (delphi) CAMOBAP Помощь студентам 19 12.01.2011 23:04
Считывание с файла на С++ lamak Помощь студентам 8 01.11.2009 22:18
Считывание строки из файла до символа Stormzcooler Общие вопросы Delphi 7 18.12.2006 15:01