Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Работа с файлами


Автор: Josh 30.8.2006, 13:16
Ребята помогите пожалуйста, последние три задачки осталось решить на чиcтом Си. Буду очень благодарен!!!

Решить задачу: дан файл, содержащий действительные числа. Найти среднее арифметическое этих чисел

Решить задачу: дан файл, вывести его содержимое построчно на экран. В начале каждой строки вывести ее номер.

Решить задачу: дан текстовый файл, удалить из него лишние пробелы (результаты записать в другой файл).

Автор: vinter 30.8.2006, 14:32
1-я
Код

#include<stdio.h>
int main()
{
    FILE *fp;
    float dDigit = 0;
    float dMidAriph = 0;
    int iCounter = 0;
    fp = fopen("file.txt", "r");
    if(!fp)
    {
        printf("Can't open the file");
            return -1;
    }
    while(!feof(fp))
    {
        fscanf(fp, "%f", &dDigit);
        dMidAriph += dDigit; 
        iCounter++;
    }
    dMidAriph /= iCounter;
    fclose(fp);
    return 1;
}

2-я
Код

#include<stdio.h>
#include<conio.h>
int main()
{
    FILE *fp;
    char strS[256];
    int iCounter = 1;
    fp = fopen("file.txt", "r");
    if(!fp)
    {
        printf("Can't open the file");
            return -1;
    }
    while(!feof(fp))
    {
        fgets(strS, 256, fp);
        printf("%d : %s", iCounter, strS);
        iCounter++;
    }
    getch();
    fclose(fp);
    return 1;
}

3-я
Код

#include<stdio.h>
#include<ctype.h>
int main()
{
    FILE *fp;
    FILE *out;
    char strS[256];
    char strHelpS[256];
    int iCounter = 0;
    int iHelpCounter = 0;
    fp = fopen("file.txt", "r");
    out = fopen("OutFile.txt", "w");
    if(!fp)
    {
        printf("Can't open the input file");
        return -1;
    }
    if(!out)
    {
        printf("Can't open the output file");
        return -1;
    }
    while(!feof(fp))
    {
        fgets(strS, 256, fp);
        while(strS[iCounter] != '\0')
        {
            if((isspace(strS[iCounter])) && (isspace(strS[iCounter+1])))
            {
                iCounter++;
                continue;
            }
            strHelpS[iHelpCounter++] = strS[iCounter];
            iCounter++;
        }
        strHelpS[iHelpCounter] = '\0';
        fputs(strHelpS, out);
        iCounter = 0;
        iHelpCounter = 0;
    }
    fclose(fp);
    fclose(out);
    return 1;
}

Автор: Josh 30.8.2006, 14:43
vinter, Респект огромный !!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)