2011-11-13 3 views
-4

텍스트 파일에 일련의 문자가 포함되어 있습니다. 파일에는 탭 문자가 없습니다. 두 개 이상의 연속 공백을 하나의 공백으로 대체하는 프로그램을 작성하십시오. 이 프로그램의 입력은 argv [1]를 통해 이름이 제공된 파일에서 가져와야합니다. 이 프로그램의 출력은 표준 출력으로 가야합니다.C에서 연속 공백 제거

입력 :

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

잘 모르겠어요 : 이것은 내가 지금까지 무엇을 가지고

Let’s go to the movies. 

아무도 나를 도와 줄 수 없다면 나에게 무슨 짓을했는지. 나에게 당신에게 감사할만한 대답을주지 말라.

+1

그리고 귀하의 질문은 무엇입니까? – themel

+2

힌트 : 마지막으로 읽은 문자가 공백인지 기억하는 플래그가 있어야합니다. –

+1

차가움. 어떤 문제가 있습니까? –

답변

2

다음은 진행하는 데 도움이 될 수 있습니다.
while 루프는 전에 앞에 읽는 것 같습니다. 문자를 계속 읽으려면 안에 while 루프가 있고 파일 끝에 도달하면 루핑이 중지됩니다.

두 번째 힌트 :
파일을 열어 두십시오. 프로그램을 종료하기 전에 무엇을해야합니까?

+0

분명히 그들이 바보 같은 것이라고 생각해 주셔서 감사합니다! – Cka91405

+1

가끔은 초보자가되기가 어렵습니다. :) –

+0

그래, 한 번 내 신발에 있었기 때문에 완전히 불공평하다는 것을 알았습니다 (이해가되지 않고 부스트/힌트가 필요함) – Cka91405