#include <stdio.h>
# include <math.h>
void main()
{
int i;
double keys[5];
{
FILE *fp;
fp = fopen("e:\\datainput.txt", "rt");
if (!fp){
printf("Can not open input file.\n");
exit(-1);
}
while ( !feof(fp) )
{
fscanf(fp, "%lf ", &keys[i++]);
printf("%lf",keys[i]);
}
close(fp);
}
我文本文档datainput.txt中的数据是这样的:n行*1列科学数据,
0.0000000e+00
9.9998333e-03
1.9998667e-02
2.9995500e-02
3.9989334e-02
可是总是输出不了任何东西。我是用CCs3.3编译的,但是都是C语言应该没有问题。是我的科学数据不应当以double形式输出吗?求大神!我试过用整数形式的数据,是可以输出结果的(把形式都改成int和%d)
ããå¯ä»¥ä½¿ç¨ä¸¤ç§æ¹æ³å¾æ¹ä¾¿ç读åç§å¦è®¡æ°æ³ææ¬å¹¶è½¬å为浮ç¹æ°ï¼åå«æ¯sscanfåatofã
ããåè代ç æ¯ç¨VC2008å®ç°çï¼å æ¤åå«å形为å®ä»¬åèªç宽å符çæ¬ï¼swscanfå_wtofããã
ããå¿ é¡»è¦æ³¨æçæ¯ï¼ä½¿ç¨sscanf读åç§å¦è®¡æ°æ³æ¶ï¼å¿ 须使ç¨%lfï¼èä¸æ¯%fã
CString str = _T("1.9626E+004 2.6789E+004");你好,我试了一下您的程序,但是输出第一个数据之后就完了,没有继续读取下面的数据?
追答怎么会呢?是不是你的文档有问题?
fscanf是遇空格或者回车都会跳的,不必像楼下那样多此一举
如果还有问题试一下这个
#include <stdio.h>