Последовательное пустое пространство Удаление в C

Текстовый файл содержит кучу символов. В файле нет символов табуляции. Напишите программу, которая заменяет два или более последовательных пробелов одним пробелом. Ввод этой программы должен поступать из файла, имя которого было предоставлено через argv [1]. Выход из этой программы должен идти на стандартный вывод.

Входные данные:

Let's go to the movies. 

Выход:

 Let's go to the movies. 

Это то, что у меня есть до сих пор:

 #include  int main(int argc, char* argv[]){ char line; FILE* fin; int i=0; fin=fopen("textfile38", "r"); fscanf(fin,"%c",&line); while((i<=line || line ==' ')); { if(line !=' ') { putchar(line); i=i+1; } else { putchar(' '); } while(line == ' ') { i=i+1; } } printf("%c \n", getchar()); getchar(); return 0; } 

Это не дает мне результата. Я не уверен, что я сделал не так, если бы кто-нибудь мог помочь мне не просто дать мне ответ, который был бы большим спасибо.

Это может помочь вам в прогрессе:
Кажется, вы прочитали только один символ перед циклом while. Вы можете читать символы непрерывно внутри цикла while и останавливать цикл, когда конец файла достигнут.

Второй намек:
Вы оставите файл открытым. Что вы должны сделать до выхода из своей программы?