User enter text and save to text file (end enter text using -1)
Hi! What I want to do is let the user enter some text until he/she enters -1. Then I want to print what the user wrote to a text file.
Do I somehow overwrite the buffer? I get a text file with 0 kB. So it contains no text at all. How can I make it print all the text the user typed to the file?
Code:
#include <stdio.h>
#include <string.h>
#define SIZE 1000
#define TRUE 1
#define FALSE 0
#define AMT_USERS 1
typedef struct User {
char buffer[SIZE];
FILE* file;
}User;
void input(User *user);
void printToFile(User *user);
int main() {
User user[AMT_USERS];
input(user);
return 0;
}
void input(User *user) {
int finished = FALSE;
while (finished == FALSE) {
fgets(user->buffer, SIZE, stdin);
if (strcmp(user->buffer, "-1\n") == 0) {
finished = TRUE;
}
}
printToFile(user);
}
void printToFile(User *user) {
user->file = fopen("text.txt", "w");
if (user->file == NULL) {
perror("Error");
}
while (fgets(user->buffer, SIZE, user->file) != NULL) {
fprintf(user->file, "%s", user->buffer);
}
fclose(user->file);
}