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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2020, 17:50   #1
studenikinvlad
Новичок
Джуниор
 
Регистрация: 19.12.2020
Сообщений: 1
По умолчанию Работа с файлом в С

Помогите с лабой! Понимаю что не правильно записываю результат символов в предложения в массив и не знаю как исправить. Программа при запуске не работает: нет ошибки, но и решения нет, просто пустая консоль. Может есть какое-то другое решение, потому что придумал я костыль, как я считаю.
Вот задание: Подсчитать для каждого предложения из исходного файла его длину в символах. Результат записать в отдельный файл: по одной строке на число (предложение). Игнорировать предложения без слов.
Вот код:
Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 255
main() {
    FILE* f;
    char s[N];
    char c;
    unsigned short line;
    line = 0;
    char name[] = "D:/laba6.txt";
    if ((f = fopen(name, "r")) == NULL)
    {
        printf("Error open file");
        return 0;
    }

    while (fgetc(f) != NULL) {
        line += 1;
    }

    int* a = (char*)malloc(line * sizeof(char));

    int i = 0;
    while (fgetc(f) != NULL) {
        while (fgetc(f) != ".") {
            line += 1;
        }
        a[i] = line;
        i++;
        line = 0;
    }

    fclose(f);


    FILE* fn;
    fn = fopen("D:/res.txt", "w");
    for (int i = 0; i < line; ++i) {
        fprintf(fn, "%f\n", a[i]);
    }
    fclose(fn);

}

Последний раз редактировалось studenikinvlad; 19.12.2020 в 18:19.
studenikinvlad вне форума Ответить с цитированием
Старый 21.12.2020, 12:40   #2
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

Цитата:
Сообщение от studenikinvlad Посмотреть сообщение
Понимаю что не правильно записываю результат символов в предложения в массив
Вы его вообще не записываете. Вы, что написали, читали?

Цитата:
Сообщение от studenikinvlad Посмотреть сообщение
while (fgetc(f) != NULL) {
line += 1;
}
Зачем вы считаете кол-во символов?

Цитата:
Сообщение от studenikinvlad Посмотреть сообщение
int* a = (char*)malloc(line * sizeof(char));
Так указатель на инт или на чар? Зачем вам буфер в размер файла?

Цитата:
Сообщение от studenikinvlad Посмотреть сообщение
while (fgetc(f) != NULL) {
Вы уже весь файл прочитали. Что еще хотите?

Цитата:
Сообщение от studenikinvlad Посмотреть сообщение
line += 1;
А кто ее обнулять будет? Или вы к первому предложению махом все символы из файла прибавить хотите... зачем?
FrosyaZZ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлом victor5133 PHP 1 23.04.2012 23:51
работа с файлом Sergey Bi. старший Общие вопросы Delphi 5 16.05.2011 10:27
Работа с файлом. Pascaler Помощь студентам 2 27.05.2010 20:46
работа с файлом lg12 Помощь студентам 7 24.08.2009 08:33
Работа с файлом D_E_N Общие вопросы Delphi 6 17.07.2009 14:03