Я должен получить пользовательский ввод в следующем стиле:
U word word2 word3
U word word2 word3
R word
R word
X
Я хочу записать его в файл и затем прочитать то, что было написано, но программа находится в бесконечном цикле, и файл находится в процессеСозданный, но пустой, мне кажется, что программа по какой-то причине никогда не покидает цикл while, который пишет в файл.
void write_to_file(FILE *fp){
char buffer[37];
while(fgets(buffer, 37, stdin)){
fprintf(fp, "%s", buffer);
}
fclose(fp);
}
void read_from_file(FILE *fp){
char buffer[37];
char tipo;
char input_a[6];
char input_b[26];
while(fgets(buffer, 37, fp)) {
sscanf(buffer, "%c %s %[^\n]", &tipo, input_a, input_b);
switch(tipo) {
case 'U' :
// do stuff
break;
case 'R' :
// do stuff
break;
case 'X' :
exit(0);
break;
default :
printf("Invalid Operation\n");
}
}
}
int main(){
FILE *fp = fopen("input.txt","a+");
write_to_file(fp);
read_from_file(fp);
return 0;
}
Я открыл файл с помощью a+
, потому что в случае, если файл уже существует, яхочу написать после последней строки
Заранее спасибо.