如何在同一行上保留带有空格的单词?

时间:2015-10-29 05:09:46

标签: c

我正在阅读一个文本文件,其中包含以下字词:

hi 
there
was it
fuzzy man lady

但是,每次我逐行打印出来时,我都会得到以下结果:

hi 
there 
was 
it 
fuzzy 
man  
lady

我希望这些词汇在同一行上,如:

was it
fuzzy man lady

以下是代码:

int main(int argc, char* argv []) {

    int i = 0, line = 7;
    char ch[200];

    char const* const fileName = argv[1];
    FILE *file = fopen(fileName,"r");
    while(line--){
        fscanf(file,"%s",ch);
        i++;
        printf("%s", ch);
    }

    fclose(file);

    return 0;

我猜测在检测新线路上的空格或单词时,\ n不能区分。那么我怎么能修改它来得到想要的结果呢?

提前致谢。

2 个答案:

答案 0 :(得分:2)

以下一行

fscanf(file,"%s",ch);

不读取一行文字。它只读一个字。

如果您想阅读一行文字,请使用fgets

fgets(ch, 200, file);

答案 1 :(得分:1)

fread()也可以使用。以下将能够从文件中读取最多199个字符。

fread(ch, sizeof(ch[0]), sizeof(ch)/sizeof(ch[0])-1, file);