Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 37

Вывод списка в файл

04.11.2013, 20:52. Показов 700. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне необходимо чтобы изначально вводился список книг (автор, название, год, количество страниц), с этим все в порядке, но после этого необходимо вывести список книг изданных после заданного года. Получается так что все книги изданные после заданного года почему-то выводятся дважды кроме последней которая выводится 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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define size 50
 
FILE *fl;
struct lib{
    char aut[size];
    char tit[size];
    char year[size];
    char page[size];
}lib[size];
char name[30];
int nst=0;
int i=0;
int spisok();
char s[size];
int main(){
    int god;
    printf("vvedite imya faila "); 
    scanf("%s",&name);
    fl=fopen(name,"w");
    {
    printf("vvedite kolichestvo knig ");
    scanf("%d",&nst);
    for (int i=0;i<nst;i++){
        printf("Vvedite imya avtora ");
        scanf("%s",lib[i].aut);
        printf("Vvedite nazvanie knigi ");
        scanf("%s",lib[i].tit);
        printf("Vvedite god izdaniya ");
        scanf("%s",lib[i].year);
        printf("Vvedite kolichestvo stranic ");
        scanf("%s",lib[i].page);
    }
    printf("Vvedite god ");
    scanf("%d",&god);
    while(i<nst){
        if(atoi(lib[i].year)>=god){
        strcat(s,lib[i].aut);
        strcat(s,"\r\n");
        strcat(s,lib[i].tit);
        strcat(s,"\r\n");
        strcat(s,lib[i].year);
        strcat(s,"\r\n");
        strcat(s,lib[i].page);
        strcat(s,"\r\n");
        }
        i++;
        fputs(s,fl);
    }
    fclose(fl);
    }
    _getch();
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.11.2013, 20:52
Ответы с готовыми решениями:

Вывод связного списка в файл
Пишу программу для манипуляций со связным списком #include&lt;iostream&gt; #include&lt;fstream&gt; using namespace std; ...

Вывод списка в файл HTML
Добрый день, информацию не нашёл в интернете. Подскажите как сделать так чтобы отчёт выводил на страничку браузера. Прописывал...

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

2
30 / 30 / 9
Регистрация: 01.11.2013
Сообщений: 63
04.11.2013, 21:56
Здесь исправление твоей ошибки, смотри комментариий к коду (--->) и ф-ию memset

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
#define _CRT_SECURE_NO_WARNINGS
#include <iostream> 
// ---> это чистый Си, плюсы тут не при делах
//      так что можешь менять на библиотеку iostream на stdio.h
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define size 50
 
FILE *fl;
struct lib{
    char aut[size];
    char tit[size];
    char year[size];
    char page[size];
}lib[size];
char name[30];
int nst=0;
int i=0;
int spisok();
char s[size];
int main(){
    int god;
    printf("vvedite imya faila "); 
    scanf("%s",&name);
    fl=fopen(name,"w");
    {
    printf("vvedite kolichestvo knig ");
    scanf("%d",&nst);
    for (/*int*/ i=0;i<nst;i++){    //  ---> i уже была определена
        printf("Vvedite imya avtora ");
        scanf("%s",lib[i].aut);
        printf("Vvedite nazvanie knigi ");
        scanf("%s",lib[i].tit);
        printf("Vvedite god izdaniya ");
        scanf("%s",lib[i].year);
        printf("Vvedite kolichestvo stranic ");
        scanf("%s",lib[i].page);
    }
    printf("Vvedite god ");
    scanf("%d",&god);
    //  ---> После цикла for, i = nst, поэтому
    i = 0;
    while(i<nst){
        if(atoi(lib[i].year)>=god){
        strcat(s,lib[i].aut);
        strcat(s,"\r\n");
        strcat(s,lib[i].tit);
        strcat(s,"\r\n");
        strcat(s,lib[i].year);
        strcat(s,"\r\n");
        strcat(s,lib[i].page);
        strcat(s,"\r\n");
        }
        i++;
        fputs(s,fl);
        // ---> после каждой итерации цикла надо чистить массив s, поэтому у тебя повторения 
        memset(s, NULL, size); // ---> например так
    }
    fclose(fl);
    }
    _getch();
    return 0;
}
0
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 37
04.11.2013, 22:01  [ТС]
Огромное спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.11.2013, 22:01
Помогаю со студенческими работами здесь

Вывод списка компьютеров из AD в текстовый файл
Есть задача вывести список компьютеров из AD в текстовый файл. Нашел код для вывода списка в файл: import-Module ActiveDirectory ...

Вывод в файл списка всех вложенных директорий заданного каталога
Подсобите!! Пожалуйста!! Разработать пакетный файл для вывода в файл списка всех вложенных директорий заданного каталога. Каталог...

Вывод в текстовый файл списка файлов, отсортированного по дате последнего изменения (начиная с самого старого)
Хотелось бы узнать, какой командой можно выполнить данную операцию. Желательно чтобы вывод был в порядке новизны файлов (сначала файлы,...

Вывод списка на экран с возможностью раскрытия одного из пунктов списка
По разному пытался сформулировать вопрос, но гугл так и не дал мне даже близко чего-то подходящего. Суть такова, что на экран...

Однонаправленный список. Вывод элементов, списка. Удаление списка.
Создать однонаправленный список натуральных чисел. Найти и вывести элементы списка, кратные 3. Удалить из списка все эти элементы и вывести...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru