我是C编程的新手,我需要编写一些从文件中获取字符的程序。我有这样的文本文件:
Grade
Joe Black A
Mark Freeman B
John White C
.
.
.
我必须从这个文件中读取成绩(A B C ...)并将其放入数组。有可能只获得这个特殊字符而不是整个文件吗?
答案 0 :(得分:2)
是。您可能会发现最简单的方法是读取(fgets)中的行,然后解析字符串(从末尾修剪空白,然后在最后一个空格后读取字符)。
答案 1 :(得分:1)
fopen()
。malloc()
为您读取的每一行分配内存。fgets()
读取文件中的每一行,但尚未到达文件末尾(feof()
)。但是你怎么知道哪个角色是等级的?如果您查找字符'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
字符)。