从C中的文件中读取特定字符

时间:2014-01-22 19:08:46

标签: c file scanf

我是C编程的新手,我需要编写一些从文件中获取字符的程序。我有这样的文本文件:

Grade
Joe Black A
Mark Freeman B
John White C
.
.
.

我必须从这个文件中读取成绩(A B C ...)并将其放入数组。有可能只获得这个特殊字符而不是整个文件吗?

3 个答案:

答案 0 :(得分:2)

是。您可能会发现最简单的方法是读取(fgets)中的行,然后解析字符串(从末尾修剪空白,然后在最后一个空格后读取字符)。

答案 1 :(得分:1)

  1. 使用fopen()
  2. 打开文件
  3. 使用malloc()为您读取的每一行分配内存。
  4. 使用fgets()读取文件中的每一行,但尚未到达文件末尾(feof())。
  5. 但是你怎么知道哪个角色是等级的?如果您查找字符'A' - 'F'strchr()),您还会在Joe Black和Mark Freeman的姓中找到'B''F'

    您可能会发现strtok()可以帮助您将字符串分解为每个空格中的较小部分,并假设文件中的数据正常,每行上的最后一个标记,如果它只有1个字符长,将成绩。

    (新成员的提示:如果有人发布了你觉得最好的答案,你可以“接受”他们的答案,以表达欣赏。你的声誉会感谢你。)

答案 2 :(得分:0)

#include<stdio.h>
#include<string.h>
int main(void)
{
    FILE *fp;
    char arr[100];
    int flag=1;
    fp=fopen("try.txt","r");
    while (fgets(arr,100, fp)!=NULL)
    {
        if(flag==1)
        {
            flag=0;
            continue;
        }
        printf("%c\n",arr[strlen(arr)-2]);
    }
}

请确保在文件中最后一行的最后一个字符后按Enter键,因为我们正在执行len-2(包括\n字符)。

相关问题