Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427

Работа с файлами.

05.05.2010, 19:17. Показов 5767. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем Доброго времени суток. С сегодняшнего дня в инсте стали задавать задачи, на работу с файлами. Раньше с таким не сталкивался, поэтому не знаю как решить. Вот примеры задач:

1) Дан файл целых чисел, содержащий не менее четырех элементов. Вывести первый, второй, предпоследний и последний элементы данного файла.

2) Даны имена двух файлов вещественных чисел. Известно, что первый из них существует и является непустым, а второй в текущем каталоге отсутствует. Создать отсутствующий файл и записать в него начальный и конечный элементы существующего файла (в указанном порядке).

3) Даны два файла произвольного типа. Поменять местами их содержимое.

Пожалуйста, если кто сможет, поделитесь литературой на работу с файлами в среде Си, также, был бы благодарен, если кто-нибудь привёл решение, по вышеуказанным задачам, в качестве шаблона, и объяснил код (язык Си). Заранее спасибо.

Добавлено через 3 часа 31 минуту
Тема ещё актуальна
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.05.2010, 19:17
Ответы с готовыми решениями:

Работа с файлами , хотелось бы с windows system файлами
всем привет, нужна интересная идея по программированию, работа с файлами , хотелось бы с windows system файлами, у вас есть какая-то идея?...

Лабораторная работа №5. Работа с файлами и алгоритмы сортировки
1. Написать функцию Load для считывания из текстового файла (например, Workers.txt) информации о работниках и заработной плате. В первой...

Работа с файлами(Запись,чтение,работа с данными)
Здравствуйте, никак не могу осилить файлы... Для начала вот само задание: В справочной автовокзала хранится расписание движения автобусов....

17
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
06.05.2010, 01:01
1.
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
41
42
#include <stdio.h>
#include <stdlib.h>
 
/*  
*   Дан файл целых чисел, содержащий не менее четырех элементов. 
*   Вывести первый, второй, предпоследний и последний элементы данного файла.
*/
    
#define FILE_NAME "numbers.txt"
 
int main(void){
    int numbers[2], pos;
    FILE *f;
    
    if ( ( f = fopen(FILE_NAME, "r") ) == NULL ){
        perror("fopen");
        exit(1);
    }
    if ( fscanf(f, "%d %d", numbers, numbers + 1) != 2 ){
        perror("fscanf");
        if ( fclose(f) )
            perror("fclose");
        exit(1);
    }
    printf("%d %d ", *numbers, *(numbers + 1));
    pos = 0;
    while ( fscanf(f, "%d", &numbers[pos]) == 1 )
        pos ^= 1;
    if ( ferror(f) ){
        fprintf(stderr, "Can't read from file!\n");
        if ( fclose(f) )
            perror("fclose");
        exit(1);
    }
    fclose(f);
    
    printf("%d ", numbers[pos]);
    pos ^= 1;
    printf("%d\n", numbers[pos]);
    
    exit(0);
}
со вторым ещё проще
C
1
2
3
4
5
6
7
8
9
10
11
12
...
FILE *fin, *fout;
double tmp;
...
fin = fopen("input.txt", "r");
fout = fopen("out.txt", "w");
fscanf(fin, "%lf", &tmp);
fprintf(fout, "%f\n", tmp);
while ( fscanf(fin, "%lf", &tmp) == 1 )
  ;
fprintf(fout, "%f\n", tmp);
...
а с третьим заданием - по-моему проще сначала файлы друг в дружку переименовать а потом переместить первый туда, где второй, а второй туда, где только-что был первый. Осталось только тут соответствующие API функции найти...

По поводу книжки - Керниган и Ритчи в первую очередь.
1
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
06.05.2010, 08:50  [ТС]
Помогите пожалуйста, в чём ошибка? В первой задаче пишет, что дирректории не существует. Я создал файл здесь P:\\@_АиП\\Задание 5\\1\\numbers.txt
и соответственно объявил его здесь
C
1
#define FILE_NAME "P:\\@_АиП\\Задание 5\\1\\numbers.txt"
А программа пишет нет файла или папки..(
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
06.05.2010, 09:52
Bloodykeeper, видимо, из-за русских букв в пути. В винде они как-то очень чуднО на самом деле обрабатываются... Будьте проще - пишите файл в папку с программой.

Не по теме:

Когда-то давно работал в одном околомедицинском журнале. Пришла туда авторша - барышня молодая, уселась за мак (lc2 если кто такие помнит :) ) и стала статью писать. Как дописала, спрашивает - а файлы так же, как в досовском ворде, нужно называть? - Нет, говорю, 31 буква и пиши, чё хочешь. Ну она и написала "Гимнастика в жизни Льва Толстого". Дорвалась, короче, после 8.3 :D

1
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
06.05.2010, 22:07  [ТС]
а можно вопрос, во втором, на место троеточий что подставлять? а то у меня ерунда выходит, может позже вылажу.

Добавлено через 5 часов 37 минут
Помощь ещё нужна...И функцию тяжеловато найти....(
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
07.05.2010, 01:09
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
а можно вопрос, во втором, на место троеточий что подставлять?
А вот, что!
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <stdio.h>
#include <stdlib.h>
 
/*
*   Даны имена двух файлов вещественных чисел. Известно, что первый из них существует и является непустым, 
*   а второй в текущем каталоге отсутствует. Создать отсутствующий файл и записать в него начальный 
*   и конечный элементы существующего файла (в указанном порядке).
*/
    
#define FIN_NAME "in.txt"
#define FOUT_NAME "out.txt"
 
int main(void){
    FILE *fin, *fout;
    double val;
    
    if ( ( fin = fopen(FIN_NAME, "r") ) == NULL ){
        perror("fopen");
        exit(1);
    }
    if ( ( fout = fopen(FOUT_NAME, "w") ) == NULL ){
        perror("fopen");
        if ( fclose(fin) )
            perror("fclose");
        exit(1);
    }
    if ( fscanf(fin, "%lf", &val) != 1 ){
        perror("fscanf");
        if ( fclose(fin) )
            perror("fclose");
        if ( fclose(fout) )
            perror("fclose");
        exit(1);
    }
    if ( fprintf(fout, "%.1f\n", val) < 1 ){
        perror("fout");
        if ( fclose(fin) )
            perror("fclose");
        if ( fclose(fout) )
            perror("fclose");
        exit(1);
    }
    while ( fscanf(fin, "%lf", &val) == 1 )
        ;
    if ( ferror(fin) ){
        fprintf(stderr, "Can't read from file!\n");
        if ( fclose(fin) )
            perror("fclose");
        if ( fclose(fout) )
            perror("fclose");
        exit(1);
    }
    if ( fclose(fin) )
        perror("fclose");
    
    if ( fprintf(fout, "%.1f\n", val) < 1 ){
        perror("fprintf");  
        if ( fclose(fout) )
            perror("fclose");
        exit(1);
    }
    if ( fclose(fout) )
        perror("fclose");
    
    printf("Ales apgemaht!\n");
    exit(0);
}
1
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
07.05.2010, 08:20  [ТС]
easybudda, блин почему же всё так запутано?? это какой-то ппц просто...подскажите пожалуйста, где на том сайте можно функции к третей задаче найти? А я вот думаю, а нельзя случаем взять ещё третий файл, и туда сначала записать содержимое первого, потом в первый записать содержимое второго, а во второй содержимое третего записать, и потом по возможности удалить третий файл.???
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
07.05.2010, 11:11
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
А я вот думаю, а нельзя случаем взять ещё третий файл, и туда сначала записать содержимое первого, потом в первый записать содержимое второго, а во второй содержимое третего записать, и потом по возможности удалить третий файл.???
Можно, по другому - то никак и не придумаешь
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
07.05.2010, 11:53
Bloodykeeper, можно, конечно, и файл лишний раз скопировать... Особенно приятно так делать, когда файлы гига по 4 - сидишь, ждёшь, и с каждой минутой всё сильнее осознаёшь, что ждать пришлось бы гораздо меньше, если осмыслить довольно простую комбинацию. Допустим, есть:
/dir1/file1
/dir2/file2
перемещаешь файлы, чтобы было
/dir1/file2
/dir2/file1
переименовываешь file2 в file1 и наоборот, получаешь
/dir1/file1
/dir2/file2
только поменявшиеся содержанием. Сложно? Не думаю. При этом, если /dir1 и /dir2 находятся на одном диске в одном разделе, то фактически содержимое файлов вообще никуда перемещаться не будет.

Не по теме:

Кстати... Пожалуйста за второе задание! ;)

0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
07.05.2010, 22:55  [ТС]
А можете помочь с переименовыванием и перемещением...просто я реально дуб-дерево в работе с файлами, всё никак не могу вкурить эту тему. Хочу хоть шаблончиков раздобыть. Просто в книгах пишут только сами функции и всё, ни примеров вам, НиЧеГо.( особенно для меня тяжело понять, когда начинать именно писать саму операцию в файле, а не над ним.(

Добавлено через 6 часов 54 минуты
Помощь ещё нужна.
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
08.05.2010, 23:12  [ТС]
Задача ещё не решена.
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
13.05.2010, 08:59  [ТС]
Пожалуйста подскажите функции как переименовать файл и как его переместить, не могу найти. Заранее спасибо.

Добавлено через 3 часа 43 минуты
Ну помогите кто-нить, пожалуйста.

Добавлено через 12 часов 2 минуты
.......
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
13.05.2010, 09:23
Bloodykeeper, минуту искал, не больше! http://msdn.microsoft.com/ru-r... 90%29.aspx
1
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
13.05.2010, 09:43  [ТС]
easybudda, а не подскажете функцию для перемещения файлов??
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
13.05.2010, 10:08
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
а не подскажете функцию для перемещения файлов?
Ещё одну?! О_о
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
 
#define D1 "dir1"
#define D2 "dir2"
#define F1 "file1.txt"
#define F2 "file2.txt"
 
int main(void){
    if ( rename(D1 "\\" F1, D2 "\\" F1) ){
        perror("rename");
        exit(1);
    }
    if ( rename(D2 "\\" F2, D1 "\\" F1) ){
        perror("rename");
        exit(1);
    }
    if ( rename(D2 "\\" F1, D2 "\\" F2) ){
        perror("rename");
        exit(1);
    }
    exit(0);
}
папки с файлами только создать не забудьте.
1
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
13.05.2010, 23:42  [ТС]
Не знаю что такое, в общем не работает она, у меня по крайней мере, пишет
Rename: Invalid argument
Кароче походу я инвалид...
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
#include <stdio.h>
#include <stdlib.h>
//
//Даны два файла произвольного типа. Поменять местами их содержимое.
//
 
#define D1 "P:\\1AiP\\Task 5\\6\\dir1"
#define D2 "P:\\1AiP\\Task 5\\6\\dir2"
#define F1 "P:\\1AiP\\Task 5\\6\\dir1\\file1.txt"
#define F2 "P:\\1AiP\\Task 5\\6\\dir2\\file2.txt"
 
int main(void){
        if ( rename(D1 "\\" F1, D2 "\\" F1) ){
                perror("rename");
                exit(1);
        }
        if ( rename(D2 "\\" F2, D1 "\\" F1) ){
                perror("rename");
                exit(1);
        }
        if ( rename(D2 "\\" F1, D2 "\\" F2) ){
                perror("rename");
                exit(1);
        }
        exit(0);
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
14.05.2010, 00:16
Bloodykeeper, точно уверены, что хотите на программиста учиться?
C
1
2
3
4
5
6
...
#define D1 "P:\\1AiP\\Task 5\\6\\dir1"
#define D2 "P:\\1AiP\\Task 5\\6\\dir2"
#define F1 "file1.txt"
#define F2 "file2.txt"
...
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
14.05.2010, 14:20  [ТС]
точно) наука то не простая, а нужная) да я и не совсем на программиста. "Автоматизация производственных процессов". Тут всё в куче. А преподаватели знают наверное меньше меня...и как так быть? где же это правильное "Европейское образование", когда я у двоих преподов спрашивал в чём ошибка, а оказалость файл не нужно было полностью объявлять...кароче фигня а не учёба. А самому читать что-то времени не хватает...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.05.2010, 14:20
Помогаю со студенческими работами здесь

Работа с файлами, чтение/работа со строкой
Доброго времени суток. Начал работать с C++ Builder 6. Есть текстовый файл .txt с различными строками, как можно производить...

Работа с файлами
Здравствуйте, я недавно начал работать с Oracle, сейчас вот столкнулся с проблемой... Как с помощью oracle скрипта перенести файл из...

Работа с файлами
Создать приложнние, работающее с файлом. Приложение должно выполнять следующие функции: -создавать файл,содержащий не менее 15 записей; ...

Работа с файлами
Очередной раз приветствую вас, дорогие участники сообщества, выручайте снова. Открываю файл, всё шикарно, пытаюсь в while сделать...

Работа с файлами
Помогите пожалуйста в работе с фалами Разработать программу, которая: а) создает текстовый файл F_1 с символьных строк различной...


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

Или воспользуйтесь поиском по форуму:
18
Закрытая тема Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru