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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2014, 12:23   #1
DanZ
Пользователь
 
Регистрация: 31.01.2014
Сообщений: 52
Сообщение Подсчет символов в файле

Как подсчитать символы в файле и выделить память под них, у меня чето не получается(на СИ).
Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>
main(){
       int i;
char *S;
FILE *fp;

fp=fopen("priv.txt","r");

while (fgetc(fp)!=EOF){i++;}
   S= new char[i];
i=0;

while(!feof(fp)){          
    i++;
    fgets(S,i,fp);
    printf("%s",S);}
fclose(fp);

getch();}
Изображения
Тип файла: jpg проблем.jpg (120.5 Кб, 118 просмотров)

Последний раз редактировалось Stilet; 17.02.2014 в 12:47.
DanZ вне форума Ответить с цитированием
Старый 17.02.2014, 12:26   #2
DanZ
Пользователь
 
Регистрация: 31.01.2014
Сообщений: 52
По умолчанию

С постоянным массивом, все работает. Вот Код
Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>
main(){
       int i;
char S[1000];
FILE *fp;
fp=fopen("priv.txt","r");

while(!feof(fp)){          
i++;

fgets(S,i,fp);

printf("%s",S);}
fclose(fp);

    getch();}

Последний раз редактировалось Stilet; 17.02.2014 в 12:47.
DanZ вне форума Ответить с цитированием
Старый 17.02.2014, 12:29   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Чему, по-вашему, равно начальное значение i?

Второй while работать не будет, потому что файл уже будет пройден до конца (eof) - надо "перемотать" обратно к началу - см. rewind().

Во втором цикле все строки будут читаться в начало выделенного буфера.
waleri вне форума Ответить с цитированием
Старый 17.02.2014, 14:05   #4
DanZ
Пользователь
 
Регистрация: 31.01.2014
Сообщений: 52
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Чему, по-вашему, равно начальное значение i?

Второй while работать не будет, потому что файл уже будет пройден до конца (eof) - надо "перемотать" обратно к началу - см. rewind().

Во втором цикле все строки будут читаться в начало выделенного буфера.
Спасибо!!!
P.S. Привык к паскалю, там же если не задаешь нач. значение оно всегда = 0
DanZ вне форума Ответить с цитированием
Старый 17.02.2014, 22:59   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
там же если не задаешь нач. значение оно всегда = 0
Бред
Паскаль обнуляет лишь глобальные переменные, локальные он не трогает (как и любой приличный компилятор)..
Poma][a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчет количества символов в файле raroru Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 04.12.2013 17:12
Вывод, ввод, и подсчет в файле KlIm16 Общие вопросы C/C++ 0 10.04.2013 17:06
Подсчет символов в файле Sektr63 Общие вопросы C/C++ 3 16.02.2013 00:40
подсчет числа комбинации символов 'ab' во входном потоке символов (Си) skrappy_kokko Помощь студентам 4 14.09.2011 23:10
Закрытие файла из OpenDialog, подсчет символов в файле disaer Общие вопросы C/C++ 2 24.09.2010 11:10