读书人

C语言怎么从文本文件中读出数字来

发布时间: 2012-04-11 17:42:33 作者: rapoo

C语言如何从文本文件中读出数字来?
而且这些数字还有可能是分数,读出后转化为浮点数存储在一个数组里:
比如,1.txt中存储着四个数字:
1/2 -1/2
-1 1

请问C语言程序如何写?万分感谢!

[解决办法]
fscanf(fp,"%*[-0-9./]",buf);
[解决办法]

C/C++ code
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>/*假设文件存在d盘一个名字叫做sss.txt的文件中,内容为:1/5 2 3-1 -3 41/2 3/5 6/4 -8  主要是txt文件数据内容不固定,和有分数存在,所以主要是如何处理分数:先读取字符串,  然后判断字符串里面是否有'/',如果有则说明是分数,分别找出分子和分母然后相除即可。*/int main(){    int i = 0;    float num[10];    float temp[2];    char d = '/';    char *p, *q;    char *str = (char*)malloc(10*sizeof(char));    FILE *fp;    if(NULL == (fp = fopen("d:/sss.txt", "r")))        return -1;    while(EOF != (fscanf(fp, "%s", str)))    {        p=strtok(str, &d);//判断是否存在'/'字符        temp[0] = atof(str);//取分子        if(NULL != (q = strtok(NULL, &d)))//取分母        {            temp[1] = atof(q);            num[i] = temp[0]/temp[1];//相除        }        else            num[i] = temp[0];        i++;    }    for(int j=0; j<10; j++)        printf("%f  ", num[j]);    free(str);    return 0;} 

读书人网 >C语言

热点推荐