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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2011, 01:43   #1
madmaniac
Форумчанин
 
Регистрация: 09.12.2010
Сообщений: 115
По умолчанию Цыкл. Зацыклился.

Помогите разобраться в цикле.
По идее должно все работать. Но зацыкливаеться

Код:
       
               ifstream info_f("info5.DAT");
		fstream file("infOUT.html");
		
		info_f.open("info5.DAT");
			
			int t=1; //количество строк
		
		while (!info_f.eof()){
			char c;
			
			info_f.get(c);
			if (c='\n') t++;
		}
		
		cout << t <<  endl;
Господа - учитесь юзать поисковые машины
web-обитель | авто
madmaniac вне форума Ответить с цитированием
Старый 08.10.2011, 06:40   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от madmaniac Посмотреть сообщение
По идее должно все работать.
- это по чьей же такой идее? По моей идее, например, тут ошибок как в синем море рыбок..

Код:
       
               ifstream info_f("info5.DAT");  // что это за скобки тут? и что в этих скобках?
		fstream file("infOUT.html");  // а это зачем?..  ладно, это пусть..
		
		info_f.open("info5.DAT");  // после открытия желательно проверять, открылся ли файл
			
			int t=1; //количество строк
		
		while (!info_f.eof()){
			char c;
			
			info_f.get(c);    //  это НЕ чтение.  Паскалевская привычка?
			if (c='\n') t++;   // самая типичная из всех ошибок..  надо "=="
		}
		
		cout << t <<  endl;
[/QUOTE]
Короче, вот тебе рабочий код, разбирайся.
Код:
    ifstream info_f;
    info_f.open("info5.DAT");
    if (info_f.is_open()) {
        int t=0; //количество строк
        while (!info_f.eof()){
            char c;
            info_f.read(&c,1);
            t+= c=='\n';
        }
        cout << t <<  endl;
    }
    else cout << "problem opening file" << endl;
Но я бы не стал так делать.. IMHO, лучше в данной ситуации использовать getline().
Предпочитаю на "ты".

Последний раз редактировалось TinMan; 08.10.2011 в 07:04.
TinMan вне форума Ответить с цитированием
Старый 08.10.2011, 09:15   #3
Wild_klas
Форумчанин
 
Аватар для Wild_klas
 
Регистрация: 13.10.2010
Сообщений: 109
По умолчанию

if (c == '\n')
Учусь учиться.
Wild_klas вне форума Ответить с цитированием
Старый 08.10.2011, 13:34   #4
madmaniac
Форумчанин
 
Регистрация: 09.12.2010
Сообщений: 115
По умолчанию

Спасибо за ответ.
Привычка действительно паскалевская
будем дерзать.
Господа - учитесь юзать поисковые машины
web-обитель | авто
madmaniac вне форума Ответить с цитированием
Старый 08.10.2011, 23:54   #5
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от madmaniac Посмотреть сообщение
будем дерзать.
Давай, успехов тебе
+1
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цыкл который выводит в триколонки Вадим Величко PHP 8 11.07.2011 20:51
Цыкл ip-шек Небесный PHP 5 04.06.2011 23:24
Расспаралелить цыкл NastyaV Помощь студентам 4 24.03.2011 19:53
цыкл не работает... Natok Помощь студентам 9 28.05.2009 11:54