Для одной части моей домашней работы мне нужно построчно брать от пользователя входные данные и распечатывать их в выходном файле, но я всегда получаю пустой файл.
Я заставил его работать в другом сценарии, когда он читает из файла и записывает результат в файл. Но в этом случае я просто не могу понять, что я делаю неправильно.
while(-1 != (nchr = getline(&buffer, &buffer_size, stdin)))
{
if(buffer == NULL){
return EXIT_FAILURE;
}
//last line in file without \n ??
buffer[--nchr] = '\0';
char tmp[nchr];
strcpy(tmp, buffer);
if(optionI){
convertToLow(buffer);
}
if(optionS){
deblank(buffer);
}
if(optionO){
// !!!!!!!!!!!!!!!!!!!
// won't print in file
// !!!!!!!!!!!!!!!!!!!
if (is_ok(buffer)) {
fprintf(outfile,"%s is ok\n", tmp);
} else {
fprintf(outfile,"%s is not ok\n", tmp);
}
} else{
if (is_ok(buffer)) {
printf("%s is ok\n", tmp);
} else {
printf("%s is not ok\n", tmp);
}
}
}
free(buffer);
}
fclose(outfile);
fflush(stdout);
fflush(stdin);