用C语言如何读取TXT文件中的每行的第一个数据?
6个回答
展开全部
用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++;};
...
下面假定第一列数据作为字符串,用 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++;};
...
展开全部
用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++;};
...
下面假定第一列数据作为字符串,用 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++;};
...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
循环fgets读取每一行, 它会将整行数据存在一个数组里, 然后你取数组第0下标就是第一个数据..
简单代码, 请自行完善:
char buf[100];
FILE *fp = fopen("a.txt", "r") // 打开文件
while ((fgets(buf, 100, fp) != NULL) {
printf("%c\n", buf[0]); // 0号下标就是你要数据,
}
简单代码, 请自行完善:
char buf[100];
FILE *fp = fopen("a.txt", "r") // 打开文件
while ((fgets(buf, 100, fp) != NULL) {
printf("%c\n", buf[0]); // 0号下标就是你要数据,
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
# 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);
}
}
#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);
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
码了一段,楼主参考一下吧,主要思路就是读出来再判断
#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;
}
希望对你有帮助,望采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询