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

Количество строк в файле, перезапустить поток - C++

Восстановить пароль Регистрация
 
AfftaRx
 Аватар для AfftaRx
0 / 0 / 0
Регистрация: 14.08.2013
Сообщений: 33
01.05.2014, 18:16     Количество строк в файле, перезапустить поток #1
Использую вот такой код для проверки кол-ва строк в файле
C++
1
2
3
4
5
6
while (!file.eof())
{
    if (file.get()=='\n')
        amount++;
}
file.seekg(0,file.beg);
и почему то после этого кода у меня файл закрывается, подскажите почему?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4265 / 3696 / 1243
Регистрация: 14.04.2014
Сообщений: 14,476
01.05.2014, 18:19     Количество строк в файле, перезапустить поток #2
Всю программу покажи.
AfftaRx
 Аватар для AfftaRx
0 / 0 / 0
Регистрация: 14.08.2013
Сообщений: 33
01.05.2014, 18:36  [ТС]     Количество строк в файле, перезапустить поток #3
Цитата Сообщение от nmcf Посмотреть сообщение
Всю программу покажи.
ну вот я проверял с таким кодом
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
 
void main()
{
fstream file;
int amount=1;
file.open("file.txt");
while (!file.eof())
{
    if (file.get()=='\n')
        amount++;
}
file.seekg(0,file.beg);
cout << amount << "\n";
if (!file)
{
    cerr <<"Error";
    getchar();
    exit(0);
}
else cout << "Good";
file.close();
getchar();
}

т.е. просто подсчитывает кол-во строк и потом проверяет открыт ли еще файл или нет
результат
Кликните здесь для просмотра всего текста
http://i.imgur.com/sNwH9ys.jpg

картинку почему то не может нормально вставить, все время тег [img][/img] автоматом убирает
Resume
 Аватар для Resume
113 / 103 / 34
Регистрация: 08.11.2013
Сообщений: 586
Записей в блоге: 5
01.05.2014, 18:44     Количество строк в файле, перезапустить поток #4
C++
1
2
3
4
5
6
7
8
9
    int s = 0;
    char S[256]; 
    ifstream in("input.txt");
    while (!in.eof())
    {
        in.getline(S,256); 
        s++;    
    }
    in.close();
Подсчёт количества строчек

Добавлено через 1 минуту
Проверка на имеющийся файл!
C++
1
2
3
4
5
if (!in) 
{
cout << "File \t not \t \t found\n";
return 1;    
}
AfftaRx
 Аватар для AfftaRx
0 / 0 / 0
Регистрация: 14.08.2013
Сообщений: 33
01.05.2014, 18:52  [ТС]     Количество строк в файле, перезапустить поток #5
Resume, спасибо, так работает. Но все равно интересно почему в моем коде файл закрывается после подсчета кол-ва символов "\n". По идее все правильно должно работать.
IrineK
Заблокирован
01.05.2014, 18:56     Количество строк в файле, перезапустить поток #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от AfftaRx Посмотреть сообщение
Но все равно интересно
C++
1
2
3
4
5
6
7
8
while (!file.eof())
{
    if (file.get()=='\n')
        amount++;
}
file.clear();    //чистим поток от eof
file.seekg(0,file.beg);
//...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2014, 21:15     Количество строк в файле, перезапустить поток
Еще ссылки по теме:

C++ Файл: Для заданной в файле матрицы A (n на m) определить количество строк, которые упорядочены по возрастанию
Количество строк в файле C++
Посчитать количество строк в файле (функция) C++

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

Или воспользуйтесь поиском по форуму:
AfftaRx
 Аватар для AfftaRx
0 / 0 / 0
Регистрация: 14.08.2013
Сообщений: 33
01.05.2014, 21:15  [ТС]     Количество строк в файле, перезапустить поток #7
IrineK, во, спасибо, работает
Yandex
Объявления
01.05.2014, 21:15     Количество строк в файле, перезапустить поток
Ответ Создать тему
Опции темы

Текущее время: 01:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru