Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2016, 01:15   #1
CortesGames
Пользователь
 
Аватар для CortesGames
 
Регистрация: 23.10.2016
Сообщений: 86
По умолчанию Заполнение и вывод структуры на Си

Дали задание сделать програму которая считывает названия,цвет,тип,количество,цену краски в таком порядке с текстового файла и выводит на экран. Но где-то закралась ошибка, потому что оно выводит всё не в том порядке что нужно, оно просто глотает тип краски. Подскажите где ошибка.
Код программы:
Код:
#include <stdio.h>
#include <curses.h>
#include <string.h>
#include <ctype.h>
#define N 4

struct catalogue{
        char name[100];
        char color[100];
        char type[100];
        int value;
        int price;
};

int main(){
    struct catalogue A[N];
    FILE *fl;
    fl=fopen("file.txt","r+");
    for (int i = 0; i < N; i++) { 
        fscanf(fl, "%s", &A[i].name[100]); 
        fscanf(fl, "%s", &A[i].color[100]); 
        fscanf(fl, "%s", &A[i].type[100]);
        fscanf(fl, "%d", &A[i].value);
        fscanf(fl, "%d", &A[i].price); 
    }
    fclose(fl);
    for (int i = 0; i < N; i++) { 
        printf("Product name - %s \n",A[i].name); 
        printf("Color: %s\n", A[i].color); 
        printf("Type: %s\n", A[i].type); 
        printf("Value: %d\n", A[i].value); 
        printf("Price: %d\n", A[i].price); 
    } 
}
Вывод:
Код:
cortesgames:~/workspace/Algoritm/Lab 8/#2 $ ./main
Product name - . 
Color: Profilux
Type: Purple
Value: 3
Price: 120
Product name - 
olor: Element
Type: Blue
Value: 1
Price: 70
Product name -  
Color: Dufa
Type: Yellow
Value: 1
Price: 55
Product name -  
Color: Triora
Type: White
Value: 2
Price: 100
Текст с файла:
Код:
Profilux Purple Flat 3 120
Element Blue Flat 1 70
Dufa Yellow Frosted 1 55
Triora White Flat 2 100
Насылаю баги по фотографии

преимущественно себе
CortesGames вне форума Ответить с цитированием
Старый 27.12.2016, 20:18   #2
CortesGames
Пользователь
 
Аватар для CortesGames
 
Регистрация: 23.10.2016
Сообщений: 86
По умолчанию

Up please
Насылаю баги по фотографии

преимущественно себе
CortesGames вне форума Ответить с цитированием
Старый 27.12.2016, 21:28   #3
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Код:
        fscanf(fl, "%s", A[i].name); 
        fscanf(fl, "%s", A[i].color); 
        fscanf(fl, "%s", A[i].type);
Croessmah вне форума Ответить с цитированием
Старый 27.12.2016, 21:30   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
&A[i].name[100]
И далее - вы пытаетесь писать в несущестующий элемент за границей массива сколько-то байт. Вам везет, что оно не падает сразу.
p51x вне форума Ответить с цитированием
Старый 27.12.2016, 22:42   #5
CortesGames
Пользователь
 
Аватар для CortesGames
 
Регистрация: 23.10.2016
Сообщений: 86
По умолчанию

А как исправить?
Насылаю баги по фотографии

преимущественно себе
CortesGames вне форума Ответить с цитированием
Старый 28.12.2016, 00:10   #6
CortesGames
Пользователь
 
Аватар для CortesGames
 
Регистрация: 23.10.2016
Сообщений: 86
По умолчанию

Спасибо
Насылаю баги по фотографии

преимущественно себе
CortesGames вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение структуры,запихнуть в функцию KochI Общие вопросы C/C++ 3 06.02.2014 03:14
Заполнение структуры из двух листов tur91 Общие вопросы .NET 1 05.02.2013 16:16
Заполнение и просмотр структуры Bugrimov Общие вопросы C/C++ 7 01.11.2012 23:14
RTTI. Заполнение произвольной структуры. Delphi_ProGer Общие вопросы Delphi 4 05.08.2012 10:02
masm+winapi ->>> Заполнение структуры INPUT Wardrag Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 19.08.2010 01:30