My code is given below. If run this code then even though the text file gets created correctly, for some reason junk values get printed in the console. When I include the string then only the string gets read and printed correctly in the console window and I get junk value for the rest of the variables but when I remove the string completely then I get correct values for rest of the variables. Why is this issue occurring and how to fix it ?
This is the code:
#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);
}