私は次のデータファイルを持っています
1.0
2.0
3.0
これはファイルですtext.dat
。私がこれまでに持っている次のコードがありmygetline.c
、実行可能ファイルにコンパイルしますmygetline
。それを実行すると、データファイルが実行可能ファイルに
./mygetline < text.dat
送られ、bashターミナルに送られます。
そのようなデータファイルを読み込んで、その列とその機能をstdoutに出力したいと思います。これがこれまでのコードです。
#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
どんな精度でも。誰かが私の希望する出力を得るために私が欠けているものについて何か提案がありますか?ありがとうございました