Я получаю ошибку сегментации в точке вызова функции. пожалуйста, помогите с любой информацией. Я новичок в кодировании, поэтому помощь с чем-нибудь еще, что вы видите, будет так высоко оценена! Ошибка сегментации происходит в «основной» функции.Что не так с моим вызовом функции?
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
void write();
void read();
int main()
{
int x;
while(x!=2)
{
printf("Type 0 to go to write program, type 1 to go to read program, type 2 to end program\n");
scanf("%d",x);
if(x==0)
write();
if(x==1)
read();
}
return 0;
}
void write()
{
FILE *finalptr;
char name[MAX],gift[MAX];
int none;
if((finalptr=fopen("names.dat","w"))==NULL)
{
printf("File could not be opened\n");
}
else
{
printf("Enter the gifter's name2gift.\n");
printf("Enter EOF to end input.\n");
printf("? ");
scanf("%s%d%s",name,none,gift);
while(!feof(stdin))
{
fprintf(finalptr,"%s %s\n",name,gift);
printf("? ");
scanf("%s%d%s",name,none,gift);
}
fclose(finalptr);
}
}
Как общий совет, научиться использовать отладчик. – Drop
Другие общие рекомендации: не используйте имена функций, такие как 'read()' и 'write()', которые являются частью стандартной библиотеки. Также включите предупреждения компилятора и обратите внимание на полученные предупреждения - компилятор поможет вам исправить множество ошибок, если вы позволите. –
имена функций «write» и «read» являются стандартными именами, определенными в stdio.h, поэтому (были ли они мне) я бы использовал несколько уникальных имен, таких как myWrite и myRead. – user3629249