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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2012, 01:39   #1
kuziashagrath85
 
Регистрация: 31.07.2012
Сообщений: 5
По умолчанию Считывание из файла

Ребят, помогите, пожалуйста, новичку разобраться=)
Есть файл, в котором расположена информация примерно такого содержания
1946 12 30 0 -519 0 -490 0 9999 9 0 2 0
1946 12 31 0 -528 0 -499 0 9999 9 0 2 0
1947 1 1 0 -477 0 -383 0 -366 0 1 0 0
1947 1 2 0 -406 0 -356 0 -335 0 5 0 0
1947 1 3 0 -481 0 -408 0 -373 0 0 2 0
Нужно считать информацию из файла 4 столбца(1-столбец год, второй-месяц-3-день и 8-температура). Причем если в 8 столбце стоит значение 9999, то строку не выписывать во второй файл. Затем надо посчитать и вывести среднее арифметическое температур по годам , т.е. среднюю температуру за 47 год, 48 и т.д. Давайте по порядку-для начала я решил просто перезаписать данные построчно из одного файла в другой.
Вот мой код

Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXLEN 1024

int main(void)
{
    FILE *ifp;
   FILE *fout
    int i, maxline = 8;
    char **lines, **p, buf[MAXLEN];

    if( (ifp = fopen("U24763", "r")) == NULL) {
        perror("fopen");
        return 1;
    }
    if(fout = fopen("results"),"w"){

    }

    if( (lines = (char **) malloc(sizeof(char *) * maxline)) == NULL) {
        perror("malloc");
        return 1;
    }
    for(i = 0; ; i++) {
        if(i >= maxline) {
            maxline *= 2;
            if( (p = (char **) realloc(lines, sizeof(char *) * maxline)) == NULL) {
                perror("realloc");
                return 1;
            }
            lines = p;
        }
        if( (lines[i] = (char *) malloc(MAXLEN)) == NULL) {
            perror("malloc");
            return 1;
        }
        if(fgets(buf, sizeof(buf), ifp) == NULL)
            break;
        strcpy(lines[i], buf);
    }
    fclose(ifp);
    maxline = i + 1;
    for(i = 0; i < maxline; i++)
        printf("%s", lines[i]);
    fwrite("%s", lines[i]);
   fclose(fout);
    return 0;
}
Выдает много ошибок. Как исправить?

Последний раз редактировалось Stilet; 31.07.2012 в 07:26.
kuziashagrath85 вне форума Ответить с цитированием
Старый 31.07.2012, 07:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Выдает много ошибок.
Например?
Цитата:
Как исправить?
Вдумчиво.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.07.2012, 08:16   #3
Петррр
Форумчанин
 
Аватар для Петррр
 
Регистрация: 02.09.2011
Сообщений: 336
По умолчанию

Ошибка:
if(fout = fopen("results"),"w")
Правильно:
Код:
if(fout = fopen("results", "w"))
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
Петррр вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывание из файла (си) O'neeL Помощь студентам 2 01.06.2012 15:21
Считывание из файла. masashama Общие вопросы C/C++ 1 25.10.2011 08:13
считывание из файла vitalik560 C++ Builder 1 01.07.2011 12:53
Считывание из файла Tema_Crazzzy Visual C++ 2 09.09.2010 13:41
считывание из файла U-S Общие вопросы C/C++ 0 26.02.2010 19:42