2010-12-20 37 views
2

我开始使用C语言编程,并且在阅读文本文件时遇到了一些问题。让我解释。如何检索文本文件中的行

我有一个组织像这样的文件中的文本:

Tony 
12.23 
John 
09.45 
Tayris 
03.99 

我想检索不到十年的所有笔记,并显示他们,但我不能......

有谁可以帮助我吗?

非常感谢。

+0

这是功课吗?如果是这样,请妥善标记。此外,你现在有哪些代码不起作用? – ysap 2010-12-20 20:55:31

+0

@ysap,标记'家庭作业'不鼓励,请参阅:http://blog.stackoverflow.com/2010/08/the-death-of-meta-tags/ – 2010-12-20 21:00:05

回答

3

C提供了可用于从磁盘读取文件四个功能:

  1. 的fscanf()

    磁场定向功能。

  2. 与fgets()

    面向行的功能。

  3. 龟etc()

    面向字符的功能

  4. 的fread()

    面向块的功能。

有关更多信息,请参见this article

+0

不,这不是一项家庭作业,它是我对此的自我训练编程语言 – Nasty927 2010-12-20 20:58:28

+0

我相信你的意思是回复上面的ysap的评论。 – 2010-12-20 21:04:26

+0

是的,我想回复ysap的评论 – Nasty927 2010-12-20 21:11:33

2

查看fgets功能。它将返回到(包括)字符串字符的末尾(如果需要,可以从目标字符串中剥离它)。

http://people.cs.uchicago.edu/~iancooke/osstuff/ccc.html提供了一个例子:

下面是一个更复杂的例子。 Readline()使用fgets()读取 MAX_LINE - 缓冲区'in'中的1个字符到 。它删除前面的 空格,并返回指向第一个非空白字符的指针 。

char *Readline(char *in) { 
    char *cptr; 

    if (cptr = fgets(in, MAX_LINE, stdin)) { 
    /* kill preceding whitespace but leave \n 
     so we're guaranteed to have something*/ 
    while(*cptr == ' ' || *cptr == '\t') { 
     cptr++; 
    } 
    return cptr;  
    } else { 
    return 0; 
    } 
} 

这应该是足够的,我认为。

+0

非常感谢,我会试试这个! – Nasty927 2010-12-20 21:12:27