Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
sswt
0 / 0 / 3
Регистрация: 31.08.2015
Сообщений: 49
1

Функция, которая считывает данный файл и перезаписывает его без отрицательных чисел

05.10.2015, 11:08. Просмотров 273. Ответов 2
Метки нет (Все метки)

Задания: Есть файл, в котором записаны числа массива
написать функцию, которая считывает данный файл и перезаписывает данный файл таким образом, чтобы там не было отрицательных чисел. У меня не выходит записать без отрицательных цыфр. Подскажите как это сделать
Мое решение:
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
26
27
28
29
30
void Ex()
{
    FILE* fileInput = fopen("D:\\file.txt", "r");
    if (fileInput == nullptr)
        return;
    FILE* fileOutput = fopen("D:\\file.txt", "w");
    if (fileOutput == nullptr)
    {
        fclose(fileInput);
        return;
    }
 
    while (true)
    {
        int ch = fgetc(fileInput);
        if (ch == EOF)
            break;
        else
            fputc(ch, fileOutput);
    }
 
    fclose(fileOutput);
    fclose(fileInput);
}
 
int main()
{
    Ex();
    return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2015, 11:08
Ответы с готовыми решениями:

Написать функцию, которая считывает данный файл и перезаписывает данный файл
Задания: Есть файл, в котором записаны числа массива написать функцию, которая считывает данный...

функция, которая считывает файл построчно
Всем привет! Делаю синтаксический анализатор, простенький, в регулярные выражения мне сказали не...

функция Writeln(f,w); не перезаписывает файл
функция Writeln(f,w); не перезаписывает файл. uses crt; var d: char;...

Есть функция которая считывает модельку из .obj формата, как к этому делу прикрутить материалы (.mtl файл)
Добрый день! Есть функция которая считывает модельку из .obj формата, подскажите пожалуйста как к...

2
anmartex
...
1790 / 1258 / 931
Регистрация: 12.02.2013
Сообщений: 2,058
05.10.2015, 11:57 2
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
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <assert.h>
 
void streamToStream(FILE* from, FILE* to) {
    int ch;
    while (fscanf(from, "%d", &ch) == 1) {
        if (0 <= ch) {
            fprintf(to, "%d ", ch);
        }
    }
}
 
int ex(const char fname[]) {
    FILE* f, * t;
    char tmpname[L_tmpnam];
 
    assert((f = fopen(fname, "r")) != NULL);
    assert((t = fopen(tmpnam(tmpname), "w")) != NULL);
 
    streamToStream(f, t);
 
    assert(fclose(f) == 0);
    assert(fclose(t) == 0);
 
    assert(remove(fname) == 0);
    assert(rename(tmpname, fname) == 0);
 
    return 0;
}
 
int main() {
    return ex("file.txt");
}
0
sswt
0 / 0 / 3
Регистрация: 31.08.2015
Сообщений: 49
05.10.2015, 19:37  [ТС] 3
Переписала, но так и не правильно работает((
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
void Ex()
{
    FILE* fileInput = fopen("D:\\file4.txt", "r");
    if (fileInput == nullptr)
        return;
    int number = 0;
    int* array = (int*)malloc((number + 1) * sizeof(int));
    while (true)
    {
        int ch = fgetc(fileInput);
        if (ch == EOF)
            break;
        else
        {
            int value;
            fscanf(fileInput, "%c", &value);
            array[number] = value;
            ++number;
        }
    }
    fclose(fileInput);
    FILE* fileOutput = fopen("D:\\file.txt", "w");
    if (fileOutput == nullptr)
    {
        fclose(fileInput);
        return;
    }
    while (number > 0){
        --number;
        fprintf(fileOutput, "%c", array[number]);
    }
    fclose(fileOutput);
    fclose(fileInput);
}
 
int main()
{
    Ex();
    return 0;
}
Добавлено через 5 часов 53 минуты
Переделала снова, но так и не правильно работает:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
void Ex()
{
    FILE* fileInput = fopen("D:\\file4.txt", "r");
    if (fileInput == nullptr)
        return;
    int number = 0;
    int* array = (int*)malloc((sizeof(array) / sizeof(int)) * sizeof(int));
    while (true)
    {
        int number;
        if (fscanf(fileInput, "%d", &number) == EOF)
            break;
        else
        {
            printf("Read number: %d", number);
        }
    }
    fclose(fileInput);
    FILE* fileOutput = fopen("D:\\file4.txt", "w");
    if (fileOutput == nullptr)
    {
        fclose(fileInput);
        return;
    }
    while (number > 0)
    {
        ++number;
        printf("%d", array[number]);
    }
    fclose(fileOutput);
    fclose(fileInput);
}
 
int main()
{
    Ex();
    
    return 0;
}
0
05.10.2015, 19:37
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2015, 19:37

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Процедура, которая перезаписывает из файла f1 положительные числа в файл f2
В текстовом файлe f1 записана последовательность целых чисел, которые разделены пропусками. Описать...

Напиcать программу, которая дописывает в данный файл 5 введенных пользователем целых чисел.
Прошу помощи в решении задачи, вот собственно этА бедА: При помощи программы &quot;блокнот&quot; создать...

Написать программу, которая создает, редактирует, перезаписывает, удаляет текстовый файл и производит поиск
В программе должно быть комментарии в тексте программы и сделать очистку всех объектов ввода...

Дан файл вещественных чисел. Найти произведение его отрицательных компонент. Переписать эти компоненты в новый файл
Дан файл вещественных чисел. Найти произведение его отрицательных компонент. Переписать эти...

Функция, которая меняет знак всех нечетных отрицательных элементов списка чисел
Функция, которая меняет знак всех нечетных отрицательных элементов списка чисел. Помогите...

Считать файл с произвольным количеством отрицательных и положительных чисел без учета комментариев
Добрый вечер, подскажите пожалуйста, каким образом можно считать файл (с произвольным количеством...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.