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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2016, 14:13   #1
Юлия_1994
 
Регистрация: 09.11.2015
Сообщений: 8
По умолчанию Ошибка в С++

Подскажите, почему при запуске вылетает следующий текст в окне?
Process exited after 0.004866 seconds with return value 0?
Вот код программы:
#include <stdio.h>
#include <conio.h>

void clrscr( )
{
int i;
for( i = 0; i < 25; i++ ) putchar( '\n' );
}

struct sport
{
char name[10];
char pol[5];
char god[10];
float r;
} t1;

void input( FILE * );
void print( FILE * );
void app( FILE * );
void max_height( );

int main( int argc, char * argv[] )
{
char c;
int i;
FILE * tf;

while( i != 0 )
{
clrscr();
puts( " 1 - new file\n"
" 2 - look file\n"
" 3 - dobavlenie v file\n"
" 4 - find max height\n"
" 0 - vihod" );
c = getch();
switch( c )
{
case '1':
input( tf );
break;
case '2':
print( tf );
break;
case '3':
app( tf );
break;
case '4':
max_height( );
break;
case '0':
return 0;
default :
puts( "neverni rezgim" );
}
}
}

void input( FILE * tf )
{ char ch;
tf = fopen( "file1.dat", "wb" );
clrscr();
printf( "\n Vvod dannih \n" );

do
{ printf( "\n familiya: " );
scanf( "%s", t1.name );
printf( " pol: " );
scanf( "%s", &t1.pol );
printf( " god rozgdeniya: " );
scanf( "%s", &t1.god );
printf( " rost: " );
scanf( "%f", &t1.r );
fwrite( &t1, sizeof( t1 ), 1, tf );
printf( "\n Zakonchit? y/n " );
ch = getch();
} while( ch != 'y' );

fclose( tf );
}

void print( FILE * tf )
{
int i;
clrscr();
tf = fopen( "file1.dat", "rb" );
i = 1;
fread( &t1, sizeof( t1 ), 1, tf );

while( !feof( tf ) )
{
printf( "\n %3d familya %10s pol %5s god %5s rost %6.2f", i, t1.name, t1.pol, t1.god, t1.r );
fread( &t1, sizeof( t1 ), 1, tf );
i++;
}

getch();
}

void app( FILE * tf )
{ char ch;
tf = fopen( "file1.dat", "ab" );
clrscr();
printf( "\n Vvod dannih \n" );

do
{ printf( "\n familiya: " );
scanf( "%s", t1.name );
printf( " pol: " );
scanf( "%s", &t1.pol );
printf( " god rojdenia: " );
scanf( "%s", &t1.god );
printf( " rost: " );
scanf( "%f", &t1.r );
fwrite( &t1, sizeof( t1 ), 1, tf );
printf( " zakonchit y/n " );
ch = getch();
}
while( ch != 'y' );

fclose( tf );
}

void max_height( )
{
clrscr();

FILE * fd = fopen( "file1.dat", "rb" );

if( !fd )
return;

struct sport temp_buff,
max;

max.r = 0;

while( fread( &temp_buff, sizeof( struct sport ), 1, fd ) )
{
if( temp_buff.r > max.r )
max = temp_buff;
}

fclose( fd );

printf( "%s %s %s %6.2f\n", max.name, max.pol, max.god, max.r );
getch();
}
Юлия_1994 вне форума Ответить с цитированием
Старый 03.03.2016, 14:26   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Ну обнулил компилятор в дебаге локальную переменную i и что? Это стандартное поведение... в ней вообще может быть что угодно.
p51x вне форума Ответить с цитированием
Старый 03.03.2016, 15:02   #3
Юлия_1994
 
Регистрация: 09.11.2015
Сообщений: 8
По умолчанию

А почему программа тогда не работает?
Юлия_1994 вне форума Ответить с цитированием
Старый 03.03.2016, 15:08   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну так поэтому и работает не так, как вы хотели.

i не инициализировано. Задайте ей какое-то значение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.03.2016, 15:38   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,830
По умолчанию

Цитата:
А почему программа тогда не работает?
Она работает и делает именно то, что вы написали. Переменная i == 0 и прога пошла на выход.
p51x вне форума Ответить с цитированием
Старый 03.03.2016, 15:45   #6
Юлия_1994
 
Регистрация: 09.11.2015
Сообщений: 8
По умолчанию

Спасибо! Разобралась.
Юлия_1994 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java. Ошибка. Компилируется, но не запускается. Ошибка duplicate class. Проблема не в коде. nevender Общие вопросы по Java, Java SE, Kotlin 2 13.02.2016 13:24
Воспользовался excel надстройками и после этого начала появляться ошибка «ошибка 13 Type Misscmatch» malinov1maxim Microsoft Office Excel 5 27.01.2016 23:17
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Ошибка run-time Error 1004 общая ошибка ODBC kaval88 Microsoft Office Excel 0 27.02.2011 20:20
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58