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

用C语言如何读取TXT文件中的每行的第一个数据?
txt文本数据如下
0001
0258
15963

用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++;};
...
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-03
用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++;};
...
第2个回答  2013-06-04
循环fgets读取每一行, 它会将整行数据存在一个数组里, 然后你取数组第0下标就是第一个数据..
简单代码, 请自行完善:

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

while ((fgets(buf, 100, fp) != NULL) {
printf("%c\n", buf[0]); // 0号下标就是你要数据,
}
第3个回答  推荐于2018-12-24
# 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);
}
}本回答被网友采纳
第4个回答  2013-06-04

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

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

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

相似回答