C中连续删除空格

时间:2011-11-13 19:11:03

标签: c whitespace

文本文件包含一堆字符。文件中没有制表符。编写一个程序,用一个空格替换两个或多个连续的空格。该程序的输入应来自一个文件,该文件的名称是通过argv [1]提供的。该程序的输出应该转到标准输出。

输入:

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 个答案:

答案 0 :(得分:2)

这可能会帮助您取得进步:
看起来你只读了一个字符之前的while循环。您可能希望在while循环中连续内部读取字符,并在到达文件末尾时停止循环。

第二个提示:
您将文件保持打开状态。退出程序前你应该怎么做?