读书人

C来读取文件中的不确定数字解决思路

发布时间: 2012-03-08 13:30:13 作者: rapoo

C来读取文件中的不确定数字
一个文件中有如下形式的数字
12364.1254(空格)1234564.132132(空格)6465465(完)
我想读取第一个数字12364.1254中的小数点前面的数字,并保存到一个变量中,其它的都不读取了;
还有,这个第一个数字12364.1254位是不定的,会随时间变大或者变小,或者是小数点前有5位,或者小数点前有10位;
能说一下标准C来实现我说的以上嘛?多谢

很简单的一个题~多谢

[解决办法]
不是有个空格吗,可以以空格为结束符。逐个读取直到遇到空格为止,用while
[解决办法]
伪代码,呵呵
fp=fopen();
rewind(fp);
while(!isdigit(c=getc(fp));
char tmp[];
while(isdigit(c))
{
temp[i]=c;
c=getc(fp);
}
ftoa();
[解决办法]
ftoa应该还不对,因为结果是float类型的,可以itoa吧
[解决办法]
假如说你要的变量是:
int n;
则:
fp=fopen();
rewind(fp);
while((c=getc(fp)!='-' && !isdigit(c));//可以处理负数
char tmp[];
while(isdigit(c))
{
temp[i]=c;
c=getc(fp);
}
n=itoa(tmp);//这步就是你想要的吧
[解决办法]
只要第一个数字的小数点前的数字好办:fscanf("%d",fp);
[解决办法]

C/C++ code
#include<stdio.h>#include<stdlib.h>#define MAX 255int main(){        char file_name[MAX] = "e:\\data.txt";    long n;    int flag;    FILE *fp;    if((fp=fopen(file_name, "r")) == NULL) {        printf("can't find the file(%s)!\n", file_name);        exit(1);    }    flag = fscanf(fp, "%ld", &n);    if(flag == 1) {        printf("n=%d\n", n);    }    else {        printf("读取第一个整数失败!\n");    }        return 0;} 

读书人网 >C语言

热点推荐