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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2010, 19:27   #1
KIrich iz Che
Пользователь
 
Аватар для KIrich iz Che
 
Регистрация: 29.03.2010
Сообщений: 19
По умолчанию Не могу понять суть ошибки

Нужно из файла считать данные о структуре и поместить в таблицу.. при запуске выдает только таблицу и ошибку
Цитата:
Необработанное исключение в "0x10296af2 (msvcr90d.dll)" в "lab3.exe": 0xC0000005: Нарушение прав доступа при записи "0x00000000".
помогите плиз с ошибкой, и с таблицей через мнемографику, чет я не понимаю как ее делать... заранее спасибо, вот исходный код моей проги




Код:
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"

	
struct fio1
	{
		char fam [7];
		char im9 [7];
		char ot4 [10];
};
struct rab
{
	int num;
	struct fio1 fio;
	int god;
	int staj;
	int razr;
	int nomer;
	int cex;
	int y4;
	int zarp;
}b[3];

int main()
{
	
	FILE *a;
	int i;
	int f[4];
	if((a=fopen("basa.txt","r"))!= NULL)
		printf("              Ishodnie danniye");
		printf("\n\311\315\315\315\313\315\315\315\315\315\315\315\315\315\315\313\315\315\315\315\315\313\315\315\315\313\315\315\315\313\315\315\315\315\315\313\315\315\315\315\313\315\315\315\315\313\315\315\315\315\315\273");
		printf("\n\272 Tabelnii \272\272 familia\272im9       \272 ot4estvo \272god      \272sta}|{\272razr9d \272nomer \272nomer \272nomer\272zarzarobotna9 \272");
		printf("\n\272 nomer    \272    rabo4ego \272rabo4ego \272rabo4ego  \272ro}|{deni9\272raboti\272rabo4ego\272rabo4ego\272cexa\272y4astka\272plata \272");
		printf("\n\314\315\315\315\315\315\315\315\316\315\315\315\315\315\316\315\315\315\316\315\315\315\316\315\315\315\315\315\316\315\315\315\315\316\315\315\315\315\316\315\315\315\315\315\271");

		for(i=0;i<3;i++)
	 {fscanf(a,"%d %s %s %s %d %d %d %d %d %d %d %d",b[i].num,&b[i].fio.fam,&b[i].fio.im9,&b[i].fio.ot4,b[i].god,b[i].staj,b[i].razr,b[i].nomer,b[i].cex,b[i].y4, b[i].zarp);	
	 printf("\n\272%-7d\272%-5s\272%-3s\272%-3s\272%-5d\272%-4d\272%-4d\272%-5d\272%-5d\272%-4d\272%-4d\272%-5d\272",b[i].num,b[i].fio.fam,b[i].fio.im9,b[i].fio.ot4,b[i].god,b[i].staj,b[i].razr,b[i].nomer,b[i].cex,b[i].y4, b[i].zarp);
	 if(i<2)
	 printf("\n\314\315\315\315\315\315\315\315\316\315\315\315\315\315\316\315\315\315\316\315\315\315\316\315\315\315\315\315\316\315\315\315\315\316\315\315\315\315\316\315\315\315\315\315\271");
	
		}
fclose(a);

	getchar();
	getchar();
}
KIrich iz Che вне форума Ответить с цитированием
Старый 15.04.2010, 09:21   #2
evgn
Разрабатываюсь....
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 68
По умолчанию

Для fscanf необходимы адреса переменных... Т.е. везде нужно ставить знак &.
Код:
fscanf(a,"%d %s %s %s %d %d %d %d %d %d %d %d", &b[i].num, &b[i].fio.fam, &b[i].fio.im9, &b[i].fio.ot4, &b[i].god,
 &b[i].staj, &b[i].razr, &b[i].nomer, &b[i].cex, &b[i].y4, &b[i].zarp);
evgn вне форума Ответить с цитированием
Старый 15.04.2010, 10:21   #3
KIrich iz Che
Пользователь
 
Аватар для KIrich iz Che
 
Регистрация: 29.03.2010
Сообщений: 19
По умолчанию

Цитата:
Сообщение от evgn Посмотреть сообщение
Для fscanf необходимы адреса переменных... Т.е. везде нужно ставить знак &.
Код:
fscanf(a,"%d %s %s %s %d %d %d %d %d %d %d %d", &b[i].num, &b[i].fio.fam, &b[i].fio.im9, &b[i].fio.ot4, &b[i].god,
 &b[i].staj, &b[i].razr, &b[i].nomer, &b[i].cex, &b[i].y4, &b[i].zarp);
Теперь другая выдается
Цитата:
Необработанное исключение в "0x7c90e8e5" в "lab3.exe": 0xC0000005: Нарушение прав доступа при записи "0x00030ffc".

Последний раз редактировалось KIrich iz Che; 15.04.2010 в 10:31.
KIrich iz Che вне форума Ответить с цитированием
Старый 15.04.2010, 10:58   #4
evgn
Разрабатываюсь....
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 68
По умолчанию

Вероятно лишний %d... (переменных 11)
Код:
fscanf(a,"%d %s %s %s %d %d %d %d %d %d %d %d",
evgn вне форума Ответить с цитированием
Старый 15.04.2010, 11:46   #5
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Честно говоря, строчка со fscanf нечитаемая совершенно! Может, стоит разбить ее на несколько последовательных? Считывание fio уж точно было бы логично отделить.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 15.04.2010, 19:02   #6
KIrich iz Che
Пользователь
 
Аватар для KIrich iz Che
 
Регистрация: 29.03.2010
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Гром Посмотреть сообщение
Честно говоря, строчка со fscanf нечитаемая совершенно! Может, стоит разбить ее на несколько последовательных? Считывание fio уж точно было бы логично отделить.
да ну, у друга похожая прога, там работает все, я у него спросил говорит все правитльно вродь..
может в компе дело?
KIrich iz Che вне форума Ответить с цитированием
Старый 18.04.2010, 06:22   #7
KIrich iz Che
Пользователь
 
Аватар для KIrich iz Che
 
Регистрация: 29.03.2010
Сообщений: 19
По умолчанию

мб еще есть идеи?
KIrich iz Che вне форума Ответить с цитированием
Старый 18.04.2010, 12:14   #8
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от KIrich iz Che Посмотреть сообщение
да ну, у друга похожая прога, там работает все, я у него спросил говорит все правитльно вродь..
может в компе дело?
Не-а, в руках дело
Вам самому удобно читать такой код? Вот напишите его нормально, и сами найдете ошибку
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 18.04.2010, 13:44   #9
KIrich iz Che
Пользователь
 
Аватар для KIrich iz Che
 
Регистрация: 29.03.2010
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Blade Посмотреть сообщение
Не-а, в руках дело
Вам самому удобно читать такой код? Вот напишите его нормально, и сами найдете ошибку
говорю же, без вывода таблицы на другом компе работает все, я не понимаю почему у меня не хочет(
KIrich iz Che вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу понять Dawystrik SQL, базы данных 0 06.09.2009 19:20
Не могу понять Superlotles Помощь студентам 8 31.08.2009 20:39
Немогу понять,почему Microsoft Visual Studio 2005 (C++) выдает ошибки? FanEurovision Visual C++ 3 18.05.2009 20:06
не могу понять... Dutchman Паскаль, Turbo Pascal, PascalABC.NET 4 14.12.2006 07:14