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