从文本文件里读取数字,c语言如何实现

有一个1.txt文件,存的是如下数据1:100,200,101,200,102,200......请问如何取出100开始后面的数字,并存到一个数组里?... 有一个1.txt文件,存的是如下数据 1:100,200,101,200,102,200......
请问如何取出100开始后面的数字,并存到一个数组里?
展开
 我来答
爱教育爱学习
高粉答主

2019-10-29 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:384 获赞数:112734

向TA提问 私信TA
展开全部

voidmain()

{

FILE*fin;

inta,b,c,d;

chars[20];

floatf1,f2,f3,f4;

fin=fopen("abc.txt","r");//打开

fscanf(fin,"%1d%1d%1d%1d",&a,&b,&c,&d);//按1位整型读前4个数

printf("a=%db=%dc=%dd=%d\n",a,b,c,d);

rewind(fin);//文件回绕到开始处

fscanf(fin,"%s",s);//按字符串读一串

printf("s=%s\n",s);

rewind(fin);//文件回绕到开始处

fscanf(fin,"%1f%1f%1f%1f",&f1,&f2,&f3,&f4);//按1位float型读前4个数

printf("%f%f%f%f\n",f1,f2,f3,f4);

flcose(fin);

}

abc.txt内容:

123456789

读到数组:

inty[20];

inti;

fin=fopen("abc.txt","r");

for(i=0;i<9;i++)fscanf(fin,"%1d",&y[i]);

扩展资料

C语言中文件的读取

fopen(打开文件)

相关函数open,fclose

表头文件#include<stdio.h>

定义函数FILE*fopen(constchar*path,constchar*mode);

函数说明参数路径包含包含打开的文件路径和文件名,参数模式字符串则代表着流形态。

模式有以下几种形态类别:

r:预期文件,该文件必须存在。

r+:可读写的文件,该文件必须存在。

w:只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

w+:可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a以附加的方式打开只写文件。若文件不存在,则建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

White_MouseYBZ
推荐于2017-09-18 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6617万
展开全部

设数据文件名为123.txt且在当前目录下。利用fscanf函数的选择功能,只读取文件中的int型数据,“跳过”非数字字符即能完成题面要求。举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "stdlib.h"
int main(void){
    FILE *fp;
    int ln=0,*p,x;
    if((fp=fopen("123.txt","r"))==NULL){
        printf("Open the file failure...\n");
        exit(0);
    }
    while(fscanf(fp,"%d%*[^0123456789]",&x)==1 && x!=100);//找到100位置
    if(feof(fp)){//未找到100则退出
        printf("Starting point number not found...\n");
        exit(0);
    }
    while(fscanf(fp,"%d%*[^0123456789]",&x)==1)//检测100后有多少个数,计入ln
        ln++;
    if((p=(int *)malloc((sizeof(int)+1)*ln))==NULL){//创建动态数组
        printf("Application memory failure...\n");
        exit(0);
    }
    rewind(fp);//文件指针移到开头,开始正式读文件
    while(fscanf(fp,"%d%*[^0123456789]",&x)==1 && x!=100);//跳过100前的数据
    p[0]=100,x=1;
    while(fscanf(fp,"%d%*[^0123456789]",p+x++)==1);//数据读入p[1]及以后单元
    fclose(fp);
    for(x=0;x<=ln;printf("%d ",p[x++]));//打出来看看...
    printf("\n");
    free(p);
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超级大大饼干
2018-06-26 · TA获得超过8541个赞
知道小有建树答主
回答量:117
采纳率:100%
帮助的人:1.8万
展开全部

可以通过fscanf,从文件中依次读取数据。当fscanf返回EOF时,表示读到文件结尾,这时停止读取即可。以文件中存储的为空格分隔的整型字符为例,可以写作:while(fscanf(fp,"%d",&n) != EOF)//从打开的文件指针fp指向的文件读数据,每次读一个整型,直至文件结尾。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。不同的变量类型可以用结构体(struct)组合在一起。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友df5604ebc8a
2011-07-06 · TA获得超过2701个赞
知道大有可为答主
回答量:4883
采纳率:0%
帮助的人:2713万
展开全部
void main()
{
FILE *fin;
int a,b,c,d;
char s[20];
float f1,f2,f3,f4;
fin = fopen("abc.txt","r"); // 打开
fscanf(fin,"%1d%1d%1d%1d",&a,&b,&c,&d); // 按1位整型读前4个数
printf("a=%d b=%d c=%d d=%d\n",a,b,c,d);
rewind(fin); // 文件回绕到开始处
fscanf(fin,"%s",s); // 按字符串读一串
printf("s=%s\n",s);
rewind(fin); // 文件回绕到开始处
fscanf(fin,"%1f%1f%1f%1f",&f1,&f2,&f3,&f4); // 按1位float型读前4个数
printf("%f %f %f %f\n",f1,f2,f3,f4);
flcose(fin);
}
abc.txt 内容:
123456789

读到数组:
int y[20];
int i;
fin = fopen("abc.txt","r");
for (i=0;i<9;i++) fscanf(fin,"%1d",&y[i]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-05
展开全部
void main()
{
FILE *fin;
int a,b,c,d;
char s[20];
float f1,f2,f3,f4;
fin = fopen("abc.txt","r"); // 打开
fscanf(fin,"%1d%1d%1d%1d",&a,&b,&c,&d); // 按1位整型读前4个数
printf("a=%d b=%d c=%d d=%d\n",a,b,c,d);
rewind(fin); // 文件回绕到开始处
fscanf(fin,"%s",s); // 按字符串读一串
printf("s=%s\n",s);
rewind(fin); // 文件回绕到开始处
fscanf(fin,"%1f%1f%1f%1f",&f1,&f2,&f3,&f4); // 按1位float型读前4个数
printf("%f %f %f %f\n",f1,f2,f3,f4);
flcose(fin);
}
abc.txt 内容:
123456789

读到数组:
int y[20];
int i;
fin = fopen("abc.txt","r");
for (i=0;i<9;i++) fscanf(fin,"%1d",&y[i]);
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式