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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.72
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.08.2009, 23:05     как осущиствить чтение файла,и подсчет строк #1
видимо на форуме уже обсуждалась такая тема,но я все такие не смог найти то что мне надо,так что заранее извиняюсь за то что поворяю все...есть код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
  {
 
FILE *f;
f=fopen("c://test.txt","w");//название текста и режим .w-write
 
 
int a=strlen(f);
cout<<"\n"<<a<<"\n";
 
fclose(f);
      system("PAUSE");
 
  return 0;
  }
наверно все ясно уже....надо вывести сколько символов находится в строке...но при компиляции кричит на
Warning 1 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\projects\proba\proba\proba.cpp 21 proba
Error 2 error C2664: 'strlen' : cannot convert parameter 1 from 'FILE *' to 'const char *' d:\projects\proba\proba\proba.cpp 24 proba
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2009, 23:05     как осущиствить чтение файла,и подсчет строк
Посмотрите здесь:

Чтение файла в массив строк C++
чтение строк из файла C++
Чтение строк из файла C++
C++ Чтение строк из бинарного файла.
чтение из файла (массив строк) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
30.08.2009, 23:12     как осущиствить чтение файла,и подсчет строк #2
Про fopen компилятор просто варнинг выдал, типа правильнее юзать fopen_s. А насчет strlen почитай внимательно как она используется
Код
НАЗВАНИЕ
       strlen - вычисление длины строки

СИНТАКСИС
       #include <string.h>

       size_t strlen(const char *s);

ОПИСАНИЕ
       Функция  strlen()  вычисляет  длину  строки s, не считая завершающий
       символ ‘\0’.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
       Функция strlen() возвращает количество символов в строке s
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.08.2009, 23:16  [ТС]     как осущиствить чтение файла,и подсчет строк #3
Gravity, спасибо...но я не понял как в моем коде юзать...
Neo-n06
22 / 3 / 1
Регистрация: 21.06.2009
Сообщений: 38
30.08.2009, 23:19     как осущиствить чтение файла,и подсчет строк #4
Смотри мою тему ...

Про функции и файлы

там есть функция chtenie если в конце нее написать cout << i << ehdl;
то как раз выведет кол-во строк в файле только буфер надо сделать наверное побольше
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
30.08.2009, 23:20     как осущиствить чтение файла,и подсчет строк #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main(void)
{
    FILE *fp;
    int c, nlines = 0;
    
    if( (fp = fopen("test", "r")) == NULL)
        return 1;
    while( (c = getc(fp)) != EOF)
        if(c == '\n')
            nlines++;
    printf("lines = %d\n", nlines);
    fclose(fp);
    return 0;
}
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.08.2009, 23:23  [ТС]     как осущиствить чтение файла,и подсчет строк #6
Neo-n06, не то...

Добавлено через 2 минуты
Gravity, ТЬФУ!Я снова попултал!!!!!!я хотел написать не строки а символы!
а за код большое спасибо!...пригодится.....
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
30.08.2009, 23:27     как осущиствить чтение файла,и подсчет строк #7
Цитата Сообщение от МедведЪ Посмотреть сообщение
я хотел написать не строки а символы!
Ну инкрементируй счетчик в цикле while без сравнения символов, еще проще.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.08.2009, 23:30  [ТС]     как осущиствить чтение файла,и подсчет строк #8
Gravity, то есть так?
C++
1
2
3
4
5
6
7
8
9
10
11
FILE *f;
f=fopen("c://test.txt","w");//название текста и режим .w-write
 
 
 
int a=0;
while(f!=EOF){
    a++;}
 
cout<<"\n"<<a<<"\n";
fclose(f);
снова что то не то....вроде правильно ?
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
30.08.2009, 23:33     как осущиствить чтение файла,и подсчет строк #9
Цитата Сообщение от МедведЪ Посмотреть сообщение
снова что то не то....вроде правильно ?
Блин... FILE *f - это структура, к ней нельзя применить сравнение типа "while(f!=EOF)", для чтения из файлового указателя есть функции вроде getc выше.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.08.2009, 23:38  [ТС]     как осущиствить чтение файла,и подсчет строк #10
Gravity, хаха спасибо)))не знал
вроде работает ошибок нет...
теперь смотри что такое...зашел на этот файл написал афаыпфыпыавп,запусл прогу пишет 0,проверяю этот файл,а там пусто...хотя сам там написал и сохронил...что не так?
вот код
C++
1
2
3
4
5
6
7
8
9
10
11
FILE *f;
f=fopen("c://test.txt","w");//название текста и режим .w-write
 
 
 
int a=0;
while(getc(f)!=EOF){
    a++;}
 
cout<<"\n"<<a<<"\n";
fclose(f);
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
30.08.2009, 23:40     как осущиствить чтение файла,и подсчет строк #11
А зачем открывать файл для записи "w", если ты собираешься из него читать?
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
30.08.2009, 23:46  [ТС]     как осущиствить чтение файла,и подсчет строк #12
Gravity, я в этом не разбираюсь,код взял с форума...не я написал.

Добавлено через 3 минуты
Gravity, все ))))я решил вместо w написал r))спасибо большое за поддержку)
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
30.08.2009, 23:50     как осущиствить чтение файла,и подсчет строк #13
МедведЪ Если файл открывается с параметром "w" он либо создаётся заново, либо (если уже существует) обрезается до нулевой длинны, так, что можно уже ничего и не считать
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
#include <stdio.h>
 
/* определение длинны файла */
 
int main(int argc, char **argv){
    FILE *fp;
    long int fsize;
 
    if ( argc != 2 ){
        printf("Usage: %s <some_file>\n", argv[0]);
        return(1);
    }
    
    if ( (fp = fopen(argv[1], "rb")) == NULL ){
        printf("%s: Can't open file %s\n", argv[0], argv[1]);
        return(1);
    }
    
    fseek(fp, 0, SEEK_END);
    fsize = ftell(fp);
    fclose(fp);
    printf("Size of file %s is %d bytes\n", argv[1], fsize);
    
    return(0);
}
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
31.08.2009, 00:02  [ТС]     как осущиствить чтение файла,и подсчет строк #14

Не по теме:

Gravity,



Добавлено через 8 минут

Не по теме:

Gravity,


Цитата Сообщение от Gravity Посмотреть сообщение
#include <stdio.h>
int main(void)
{
FILE *fp;
int c, nlines = 0;
if( (fp = fopen("test", "r")) == NULL)
return 1;
while( (c = getc(fp)) != EOF)
if(c == '\n')
nlines++;
printf("lines = %d\n", nlines);
fclose(fp);
return 0;
}
решил дописать прогу,чтобы еще строки считала
вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
FILE *f;
f=fopen("c://test.txt","r");
 
int c=0;
int l=0;
int a=0;
while(getc(f)!=EOF){
    a++;
 
}
 
 while( (c = getc(f)) != EOF)
        if(c == '\n')
            l++;
 
 
 
cout<<"\n"<<l<<"\n";
cout<<"\n"<<a<<"\n";
пишет что 0 строк
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
31.08.2009, 00:05     как осущиствить чтение файла,и подсчет строк #15
МедведЪ, перед тем как считать строки, делай rewind(f), чтобы сместить указатель на начало файла.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
31.08.2009, 00:09  [ТС]     как осущиствить чтение файла,и подсчет строк #16
Gravity, гигантское спасибо!))))))
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
31.08.2009, 00:14     как осущиствить чтение файла,и подсчет строк #17
Чтобы подавить дурацкий warning нужно определить где-нибудь этот _CRT_SECURE_NO_WARNINGS.
Microsoft всех нагло заставляет использовать все эти fopen_s() функции.
Они не стандартны насколько я знаю и существуют только в Visual Studio 2005 и выше.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
31.08.2009, 00:19     как осущиствить чтение файла,и подсчет строк #18
А зачем два цикла делать? Оно же так в 2 раза дольше считать будет...
Кстати, если считаете символы и строки, точно \n за символ должно считаться?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
long int symbols, rows;
int c;
FILE *fp;
 
/* открыть файл, ругнуться, если неудачно */
 
symbols = 0L;
rows = 0L;
while ( (c = getc(fp)) != EOF ) {
    if ( c == '\n' )
        rows++;
    else
        symbols++
}
Ну или, если и \n за новый символ считать:
C
1
2
3
4
5
while ( (c = getc(fp)) != EOF ) {
    symbols++;
    if ( c == '\n' )
        rows++;
}
mirso
523 / 341 / 17
Регистрация: 05.04.2009
Сообщений: 709
31.08.2009, 01:17     как осущиствить чтение файла,и подсчет строк #19
МедведЪ,
Цитата Сообщение от МедведЪ Посмотреть сообщение
пишет что 0 строк
а сколько у тебя в файле "c://test.txt" должно было их быть?
Цитата Сообщение от МедведЪ Посмотреть сообщение
f=fopen("c://test.txt","r");
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2009, 01:27     как осущиствить чтение файла,и подсчет строк
Еще ссылки по теме:

C++ Чтение из файла в массив строк
Чтение строк из файла C++
Чтение строк из файла C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
31.08.2009, 01:27     как осущиствить чтение файла,и подсчет строк #20
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
2
3
4
5
6
7
...
while ( (c = getc(fp)) != EOF ) {
    if ( c == '\n' )
        rows++;
    else
        symbols++
}
C
1
2
    else
        symbols++;
Точку с запятой пропустил.
Yandex
Объявления
31.08.2009, 01:27     как осущиствить чтение файла,и подсчет строк
Ответ Создать тему
Опции темы

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