Я пытаюсь сохранить некоторые данные из GPS в txt-файл. Проблема в том, что сначала .txt-файл был пуст после того, как вы остановили программу, но знаете, когда я запускаю код, он как бы вводит бесконечный кучер и не печатает мне данные на экране или в .txt-файле.fprintf дает мне пустой файл в c
char add_aux_XS[50],file_name_XS[256],file_txt_name_XS[256];
FILE *Ublox_text;
char * txt_file_UB() {
printf("Name of txt file (include extension txt): \n");
scanf("%s",file_name_UB);
strcpy(add_aux_UB,"/home/debian/Desktop/Comunicacion/gps/");
sprintf(add_UB,"%s%s",add_aux_UB,file_name_UB);
return add_UB;
}
main()
{
file_txt_UB=txt_file_UB();
for(i=0;i<256;i++){file_txt_name_UB[i]=*(file_txt_UB+i);}
Ublox_text=fopen(file_txt_name_UB,"w");
fprintf(Ublox_text,"\n");
Ublox_UART=Conf_Ublox();
while(1)
{
struct UBLOX_message Read_UB=Reading_UBLOX(Ublox_UART);
printf("Valid: %c \t lat: %lf \t lon: %lf \t north: %lf \t east: %lf \n",
Read_UB.valid,Read_UB.lat,Read_UB.lon,Read_UB.north,Read_UB.east);
fprintf(Ublox_text,"%c \t %lf \t %lf \t %lf \t %lf \n",
Read_UB.valid,Read_UB.lat,Read_UB.lon,Read_UB.north,Read_UB.east);
}
fclose(Ublox_text);
close_Ublox();
}
Когда я прокомментирую fprintf
линию, программа КИ и печать на экране значения датчика.
Копирование неинициализированной строки над собой с помощью 'for (i = 0; i <256; i ++) {file_txt_name_UB [i] = * (file_txt_UB + i);}' фактически не инициализирует его с пользой. Ваша функция 'text_file_UB()' использует всевозможные неопределенные переменные - это нехорошо. Вам нужно прочитать о том, как создать MCVE ([MCVE]), а затем изменить свой вопрос, чтобы он стал одним из них. –