2011-11-13 2 views
-4

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

Вход:

Let’s go to the movies. 

Выход:

Let’s go to the movies. 

Это то, что я до сих пор:

#include <stdio.h> 

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; 
} 

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

+1

И ваш вопрос? – themel

+2

Подсказка: есть флаг, чтобы помнить, был ли последний прочитанный символ пробелом. –

+1

Прохладный. Любые проблемы с этим? –

ответ

2

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

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

+0

Спасибо, что помогли, очевидно, они думают, что я глуп или что-то в этом духе! – Cka91405

+1

Иногда трудно быть новичком ... :) –

+0

Да, я вижу то, что совершенно несправедливо, потому что они когда-то были в моей обуви (не понимая и нуждаясь в толчке/подсказке) – Cka91405

Смежные вопросы