Мой код указан ниже. Если запустить этот код, то даже если текстовый файл будет создан правильно, по какой-то причине значения нежелательной почты будут напечатаны в консоли. Когда я включаю строку, тогда только строка корректно читается и печатается в окне консоли, и я получаю ненужное значение для остальных переменных, но когда я полностью удаляю строку, я получаю правильные значения для остальных переменных. Почему возникает эта проблема и как ее исправить?
Это код:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char str[] = "a string";
char str2[50];
char ch ='a';
char ch1;
int num = 12;
int num1;
float deci = 51.15;
float deci1;
FILE *new;
new = fopen("a.txt","w");
if (new == NULL) {
printf("Error! file not found! \n");
}
fprintf(new, "%s\n", str);
fprintf(new, "%c\n", ch);
fprintf(new, "%d\n", num);
fprintf(new, "%.2f\n", deci);
fclose(new);
new = fopen("a.txt", "r");
if (new == NULL) {
printf("Error! file not found! \n");
}
fscanf(new, "%[^\n]s", str2);
//str2[7]='\0';
fflush(stdin);
fscanf(new, "%c", &ch1);
fscanf(new, "%d", &num1);
fscanf(new, "%f", &deci1);
//fclose(new);
printf("string: %s character: %c integer: %d float: %f", str2, ch1, num1, deci1);
//enter code here
fclose(new);
}