Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/22: Рейтинг темы: голосов - 22, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 28.03.2009
Сообщений: 12
1

Количество строк в файле

28.03.2009, 22:03. Показов 4603. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
суть задачи такова нужно посчитать кол-во строк. мое предположение: создается цикл, ставиться счетчик. но когда должен закансиваться цикл? если можно поподробнее.
все это дело пишеться на microsoft visual studio 6.0. c использованием мастера
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2009, 22:03
Ответы с готовыми решениями:

Узнать из текста в файле количество строк и наибольшее количество слов в строке
Помогите пожалуйста, подсчет строк я вроде сделал, а вот строку с наибольшим количеством слов не...

Количество строк в файле
Вот написал простенькую программу для подсчета строк в файл все работает но мучают сомнения почему...

Не считывает количество строк в файле
Проблема в заголовке. Вместо положенного числа строк, прога выдаёт всего 1. #include "stdafx.h"...

Найти количество строк в текстовом файле
я не можу написати програму для підрахування кількості стрічок в текстовому файлі. чомусь в...

28
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
28.03.2009, 22:08 2
считывание файла в режиме Си ? или Си++ ?

в Си стиле

C
1
2
3
4
FILE *F = fopen("file.dat", "rt");
int kol=0;
while (!feof(F)) kol++;
fclose(F);


в Си++ стиле
C++
1
2
3
4
ifstream fin("file.dat");
int kol=0;
while (!fin.eof()) kol++;
fin.close();
1
0 / 0 / 0
Регистрация: 28.03.2009
Сообщений: 12
28.03.2009, 22:25  [ТС] 3
не получается вот что пишет:
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(212) : error C2065: 'ifstream' : undeclared identifier
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(212) : error C2146: syntax error : missing ';' before identifier 'fin'
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(212) : error C2065: 'fin' : undeclared identifier
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(214) : error C2228: left of '.eof' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(214) : fatal error C1903: unable to recover from previous error(s); stopping compilation
Error executing cl.exe.
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
28.03.2009, 22:30 4
ну во втором случае подключить надо библиотеку

C++
1
#include <fstream.h>
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
28.03.2009, 22:31 5
когда соберёшь, для считывания юзай fgets(line, MAXLINE, fp); или fp.getline(line, MAXLINE); они обе считывают строку, считая, что она заканчивается символом '\n', MAXLINE задавай побольше, потому что если не хватит символов, она половину строки посчитает строкой, и вторую половину тоже посчитает строкой
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
28.03.2009, 22:34 6
ой точно =) пардон забыл...

Добавлено через 1 минуту 54 секунды
C
1
2
3
4
5
6
7
8
9
FILE *F = fopen("file.dat", "rt");
int kol=0;
char str[20];
while (!feof(F)) 
{
fgets(str,20,F);
kol++;
}
fclose(F);
C++
1
2
3
4
5
6
7
8
9
ifstream fin("file.dat");
int kol=0;
char str[20];
while (!fin.eof()) 
{
fin.getline(str,20);
kol++;
}
fin.close();
1
0 / 0 / 0
Регистрация: 28.03.2009
Сообщений: 12
28.03.2009, 22:42  [ТС] 7
работаю с++. он показывает одну строку, т.е. цикл только один раз проходиться
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
28.03.2009, 22:47 8
а Си код пробывал?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
28.03.2009, 22:48 9
запиши в файл строку на 25 символов
0
0 / 0 / 0
Регистрация: 28.03.2009
Сообщений: 12
28.03.2009, 22:49  [ТС] 10
то же самое кол-во строк 1
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
28.03.2009, 22:54 11
вот рабочий код для первого случая:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <process.h>
#include <iostream.h>
 
int main()
{
    FILE *F = fopen("new.txt", "rt");
 
    int kol=0;
    char str[20];
 
    while (!feof(F)) 
    {
        fgets(str,200,F);
        kol++;
    }
 
    fclose(F);
 
    cout << kol << "\n";
 
    system("pause");
    return 0;
}
Добавлено через 1 минуту 35 секунд
а вот для второго...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <process.h>
#include <fstream.h>
#include <iostream.h>
 
int main()
{
    ifstream fin("new.txt");
    int kol=0;
    char str[20];
 
    while (!fin.eof()) 
    {
        fin.getline(str,200);
        kol++;
    }
    fin.close();
 
    cout << kol << "\n";
 
    system("pause");
    return 0;
}
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
28.03.2009, 23:06 12
а теперь в файл запиши несколько строк

one
two
three
0
0 / 0 / 0
Регистрация: 28.03.2009
Сообщений: 12
28.03.2009, 23:34  [ТС] 13
ни чего не помогает
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
28.03.2009, 23:36 14
кода которые я привел, у меня работают 100%
0
0 / 0 / 0
Регистрация: 28.03.2009
Сообщений: 12
28.03.2009, 23:40  [ТС] 15
а у меня 23 ошибки

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
name=DlgOpen.GetPathName();
 
ifstream fin(name);
    int kol=0;
    char str1[25];
 
    while (!fin.eof()) 
    {
        fin.getline(str1,25);
        kol++;
    }
    fin.close();
 
    //сout << kol << "\n";
    system("pause");
 
}
 
 
m_k=k;
может что то не так подгоняю
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
28.03.2009, 23:50 16
а ошибки можешь показать?
0
0 / 0 / 0
Регистрация: 28.03.2009
Сообщений: 12
28.03.2009, 23:56  [ТС] 17
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(233) : warning C4018: '!=' : signed/unsigned mismatch
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(236) : error C2065: 'File' : undeclared identifier
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(236) : error C2228: left of '.ReadString' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(256) : error C2065: 'lvi' : undeclared identifier
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(256) : error C2228: left of '.mask' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(257) : error C2065: 'Name' : undeclared identifier
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(257) : error C2228: left of '.Format' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(258) : error C2065: 'strItem' : undeclared identifier
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(259) : error C2228: left of '.iItem' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(260) : error C2228: left of '.iSubItem' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(261) : error C2228: left of '.pszText' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(262) : error C2228: left of '.iImage' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(265) : error C2228: left of '.mask' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(266) : error C2228: left of '.Format' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(268) : error C2228: left of '.iItem' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(269) : error C2228: left of '.iSubItem' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(270) : error C2228: left of '.pszText' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(278) : error C2228: left of '.Close' must have class/struct/union type
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(281) : error C2501: 'UpdateData' : missing storage-class or type specifiers
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(282) : error C2143: syntax error : missing ';' before '}'
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(282) : error C2143: syntax error : missing ';' before '}'
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(282) : error C2143: syntax error : missing ';' before '}'
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(285) : error C2143: syntax error : missing ';' before '{'
C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë\5\5Dlg.cpp(285) : error C2447: missing function header (old-style formal list?)
Error executing cl.exe.
0
2816 / 1407 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
29.03.2009, 00:02 18
если я не ошибаюсь, то эти ошибки не связаный с кодом подсчета строк..
0
0 / 0 / 0
Регистрация: 28.03.2009
Сообщений: 12
29.03.2009, 00:03  [ТС] 19
но до этого работоло прекрасно
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
29.03.2009, 00:18 20
Код
    name = DlgOpen.GetPathName();
а что это ?

Код
warning C4018: '!=' :
ошибка при операции != , которой нет
0
29.03.2009, 00:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2009, 00:18
Помогаю со студенческими работами здесь

Подсчитать количество строк в текстовом файле
Нужно написать программу : Подсчитать количество строк в текстовом файле. Под строкой понимать...

Количество строк в файле. Синтаксический анализатор
Подскажите пожалуйста. Я написал синтаксический анализатор. Он считывает некоторое выражение из...

Как подсчитать количество строк в файле?
Подскажите пожалуйста код программы как подсчитать кол-во строк в файле

Количество строк в файле, перезапустить поток
Использую вот такой код для проверки кол-ва строк в файле while (!file.eof()) { if...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru