ОБНОВЛЕНО КОДА ПОЛНОСТЬЮ ФУНКЦИОНАЛЬНОГО ***ошибки сегментации при записи в файл
Я новичок в C/C++, и я написал кусок кода, который бы подсчитать, сколько раз программы запуска, написав " count "в файл каждый раз. Кроме того, когда я пытаюсь запустить его, я получаю ошибку сбоя seg. Кто-нибудь может сказать мне, почему?
#include <stdlib.h>
#include <stdio.h>
int main(int argc, const char * argv[]) {
FILE *fp;
printf("LINE 13 CLEAR");
fp = fopen("MyPlayground.rtf", "r");
int value;
fscanf(fp, "%d", &value);
printf("Value is %d", value);
//printf("LINE 14 CLEAR");
if(fp== NULL)
{
printf("LINE 17 CLEAR");
if(fopen("MyPlayground.rtf", "w")==NULL)
{
exit(0);
}
//fprintf(fp,"%d",0);
fclose(fp);
return 0;
}
//printf("LINE 25 CLEAR");
fp = fopen("MyPlayground.rtf", "w");
//printf("LINE 30 CLEAR");
fprintf(fp,"%d",++value);
fclose(fp);
}
EDIT: Программа работает до тех пор, пока не будет напечатана "printf (" LINE 17 CLEAR "); и после этого он дает мне ошибку «EXC-BAD-ACCESS» в следующей строке.
EDIT1: Fixed установил два различных пути
EDIT2: Добавлена проверка ошибок для второго fopen(...)
заявления.
Также не стесняйтесь прокомментировать любые ошибки стиля и вещи, которые я должен/не должен делать. Благодарю.
Проверьте, чтобы все ваши вызовы fopen и fscanf работали, изучая их возвращаемые значения. –
В каталоге '/ Desktop/hw3 /' есть разрешение на запись. – Shravan40
Проведите 30 минут, чтобы изучить отладчик вашей системы и сэкономить дни и часы написания отладочных заявлений на всю оставшуюся жизнь. Вам действительно нужно только знать, как устанавливать и очищать точки останова, входить в функции и печатать переменные ... –