Файлы, работа с ними (ч.3) - C (СИ)
Формулировка задачи:
Пипл, помогите пожалуйста с задачами ( задачи 3,4 и 5 похожи )
ОЧЕНЬ прошу!!! HELP!!! ( ну не понимая я эти файлы =(( )
Задача 1. Даны два файла вещественных чисел с именами S1 и S2, элементы которых упорядочены по возрастанию. Объединить эти файлы в новый файл с именем S3 так, чтобы его элементы также оказались упорядоченными по возрастанию.
Задача 2. Даны три файла вещественных чисел с именами S1, S2 и S3, элементы которых упорядочены по убыванию. Объединить эти файлы в новый файл с именем S4 так, чтобы его элементы также оказались упорядоченными по убыванию.
Задача 3. Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы, расположенные после первого символа пробела, включая и этот пробел.
Задача 4. Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы, расположенные после последнего символа пробела, включая и этот пробел.
Задача 5. Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы, расположенные перед первым символом пробела, включая и этот пробел.
а как это сделать ???
Во втором тоже типо такого, только по убыванию, как это сделать ???
Люди помогите плз =((((
по первому типа такого только надо добавить чтоб элементы упорядочивались по возрастанию.
#include <stdio.h> #include <stdlib.h> #ifndef MAX_PATH #define MAX_PATH 1024 #endif #define NFILES 3 int main(void){ FILE * f[NFILES]; char n[NFILES][MAX_PATH]; int i, ch; printf("Name for output file: "); if ( scanf("%s%*c", n[0]) != 1 ){ perror("scanf"); exit(EXIT_FAILURE); } for ( i = 1; i < NFILES; ++i ){ printf("Name for input file #%d: ", i); if ( scanf("%s%*c", n[i]) != 1 ){ perror("scanf"); exit(EXIT_FAILURE); } } if ( ! ( f[0] = fopen(n[0], "w") ) ){ perror("fopen"); exit(EXIT_FAILURE); } for ( i = 1; i < NFILES; ++i ){ if ( ! ( f[i] = fopen(n[i], "r") ) ){ perror("fopen"); if ( fclose(f[0]) ) perror("fclose"); exit(EXIT_FAILURE); } while ( ( ch = fgetc(f[i]) ) != EOF ){ if ( fputc(ch, f[0]) == EOF ){ perror("fputc"); if ( fclose(f[0]) ) perror("fclose"); if ( fclose(f[i]) ) perror("fclose"); exit(EXIT_FAILURE); } } if ( fclose(f[i]) ) perror("fclose"); } if ( fclose(f[0]) ){ perror("fclose"); exit(EXIT_FAILURE); } printf("Done.\n"); exit(EXIT_SUCCESS); }
Решение задачи: «Файлы, работа с ними (ч.3)»
textual
Листинг программы
if ( ( buf = (char*)malloc(len + 1) ) == NULL )
Объяснение кода листинга программы
- В коде определен условный оператор if.
- В условии этого оператора происходит выделение памяти для строки с помощью функции malloc.
- Результат этого выделения памяти проверяется на равенство NULL.
- Если выделение памяти не удалось, то программа выполняет действия, которые должны произойти при ошибке выделения памяти.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д