用C语言如何读取TXT文件中的每行的第一个数据?

用C语言如何读取TXT文件中的每行的第一个数据?txt文本数据如下0001025815963... 用C语言如何读取TXT文件中的每行的第一个数据?
txt文本数据如下
0001
0258
15963
展开
 我来答
金色潜鸟
推荐于2017-12-16 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5675万
展开全部
用fgets读入一行,用sscanf 读出第一列数据
下面假定第一列数据作为字符串,用 sscanf(buf,"%s", 。。。格式读。
类似,整型用 %d 浮点用 %f %lf ....

#include <stdio.h>
#include <stdlib.h>
main(){
char buf[100];
char col[100][30];
int n=0;
FILE *fp = fopen("a.txt", "r");
while ( fgets(buf, 100, fp) != NULL) {
if ( sscanf(buf,"%s",col[n]) == 1){printf("%s\n", col[n]); n++; };
}
return 0;
}

如果要读每行第一个数,(只读一位数 用 格式 %1d):
int x[100];
...
while ( fgets(buf, 100, fp) != NULL) {
if ( sscanf(buf,"%1d",&x[n]) == 1){ printf("%d\n",x[n]);n++;};
...
金色潜鸟
2018-03-03 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5675万
展开全部
用fgets读入一行,用sscanf 读出第一列数据
下面假定第一列数据作为字符串,用 sscanf(buf,"%s", 。。。格式读。
类似,整型用 %d 浮点用 %f %lf ....

#include <stdio.h>
#include <stdlib.h>
main(){
char buf[100];
char col[100][30];
int n=0;
FILE *fp = fopen("a.txt", "r");
while ( fgets(buf, 100, fp) != NULL) {
if ( sscanf(buf,"%s",col[n]) == 1){printf("%s\n", col[n]); n++; };
}
return 0;
}

如果要读每行第一个数,(只读一位数 用 格式 %1d):
int x[100];
...
while ( fgets(buf, 100, fp) != NULL) {
if ( sscanf(buf,"%1d",&x[n]) == 1){ printf("%d\n",x[n]);n++;};
...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuhezcb0755
2013-06-04 · TA获得超过643个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:116万
展开全部
循环fgets读取每一行, 它会将整行数据存在一个数组里, 然后你取数组第0下标就是第一个数据..
简单代码, 请自行完善:

char buf[100];
FILE *fp = fopen("a.txt", "r") // 打开文件

while ((fgets(buf, 100, fp) != NULL) {
printf("%c\n", buf[0]); // 0号下标就是你要数据,
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cindyhq2011
推荐于2018-12-24 · TA获得超过165个赞
知道答主
回答量:132
采纳率:50%
帮助的人:68.7万
展开全部
# include <stdio.h>
#include<stdlib.h>
int main()
{
FILE *ptr = fopen("e:\\stuin.txt","r");
char a[80],b[80];
while(!feof(ptr))
{
fscanf(ptr,"%s",a);//根据空格去每行第一个字符串,也可以用%d
fgets(b,sizeof(b),ptr); //若空格后还有数据,用这个处理掉
printf("%s\n",a);
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9c38907
2013-06-04 · TA获得超过421个赞
知道小有建树答主
回答量:350
采纳率:0%
帮助的人:361万
展开全部

码了一段,楼主参考一下吧,主要思路就是读出来再判断

#include<stdio.h>
int main()
{
    FILE* fp;
    int flag=1;
    char ch;
    if((fp=fopen("1.txt","r"))==NULL)
    {
        printf("can not open file\n");
        exit(0);
    }
    while(!feof(fp))    
    {
        ch=fgetc(fp);
        if(ch==10)    //这里是判断换行
            flag=1;    //有换行开启标志
        else if(flag==1)
        {
            printf("%c\n",ch); //打印另一行的第一个数据
            flag=0;            //关闭标志
        }
    }
    fclose(fp);
    return 0;
}

希望对你有帮助,望采纳。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式