我有以下数据文件
1.0
2.0
3.0
这是一个文件text.dat
。到目前为止,我拥有以下代码,mygetline.c
并将其编译为可执行文件mygetline
。执行它我将数据文件输入到可执行文件中,因此
./mygetline < text.dat
在 bash 终端中。
我想像这样读取数据文件并打印到标准输出该列,以及它的一些功能。这是到目前为止的代码。
#include <stdio.h>
int mygetline ( char s[], int lim )
{
int c, i;
i = 0;
while( --lim > 0 && ( c = getchar() ) != EOF && c != '\n' )
s[i++] = c;
if ( c == '\n' )
s[i++] = c;
s[i] = '\0';
return i ;
}
void main()
{
const int maxline = 10000;
int nl, length;
char line[maxline];
double value ;
nl = 0;
while ( ( length = mygetline( line, maxline ) ) != 0 ) //avoiding blanks
{
//Original error sscanf( "%lf", line, &value ) ; //trying to get each line
//as the right
//number
//FOllowing line is corrected implementation of sscanf()
sscanf( line, "%lf", &value ) ;
printf( "%lf %lf\n", value ,value*value ) ; //trying to output x & x*x
}
}
输出如下
0.000000 0.000000
0.000000 0.000000
0.000000 0.000000
我想要类似的东西
1.0 1.0
2.0 4.0
3.0 9.0
到任何精度。有没有人对我缺少什么来获得我想要的输出有任何建议?谢谢