【问题标题】:How can I retrieve rows in a text file如何检索文本文件中的行
【发布时间】:2010-12-20 20:53:06
【问题描述】:

我开始使用 C 语言进行编程,但在阅读文本文件时遇到了一些问题。让我解释一下。

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

Tony 
12.23
John
09.45
Tayris
03.99

我想检索所有小于十的笔记并显示它们,但我不能...

有人可以帮助我吗?

非常感谢。

【问题讨论】:

标签: c parsing text filestream


【解决方案1】:

C 提供了四个可用于从磁盘读取文件的函数:

  1. fscanf()

    面向领域的功能。

  2. fgets()

    面向线的功能。

  3. fgetc()

    面向字符的函数

  4. fread()

    面向块的功能。

请参阅 this article 了解更多信息。

【讨论】:

  • 不,这不是家庭作业,这是我对这种编程语言的自我训练
  • 我相信您在回复 ysap 上面的评论时是这个意思。
  • 是的,我想回复 ysap 的评论
  • 为了将来参考,顶部有一个“添加评论”链接,您可以使用它来回复页面该区域的 cmets。此外,如果有人发布了回答您的问题的回复,请单击其答案旁边的复选标记。我看到你对这个网站比较陌生,所以我希望这个简短的教程对你有所帮助。
【解决方案2】:

查看fgets 函数。它将返回直到(包括)字符串字符的结尾(如果需要,您可以将其从目标字符串中剥离)。

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

这里有一个更复杂的例子。 Readline() 使用 fgets() 最多读取 MAX_LINE - 1 个字符到 缓冲区'in'。它剥离前面 空白并返回一个指向 第一个非空白字符。

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

我觉得应该够了。

【讨论】:

  • 非常感谢,我会试试这个!
猜你喜欢
  • 1970-01-01
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
  • 2019-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多