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