東上☆海美☆「10のべき乗でDを用いるのは Fortran みみ。C/C++ は、e みみ。a.txt の中身の D を e に置換して ae.txt にしたみみ」
コード:
//
//
//
#include <stdio.h>
#include <math.h>
int
main()
{
int i, j, k, n;
#define MAX 10000
float r[MAX], z[MAX], vr[MAX], vz[MAX], vphi[MAX], E[MAX]; /* 大きめのサイズの配列を用意しておく. */
FILE *fp;
//fp = fopen("a.txt", "r");
fp = fopen("ae.txt", "r");
if(fp == NULL) {
printf("ファイルを開くことが出来ませんでした.\n");
return -1;
}
n = 0;
{
const int lenMAX = 1024;
char buf[ lenMAX ];
//while(fgetc(fp) != '\n' && !feof(fp)) ; /* 1行目を読み飛ばす */
fgets( buf , lenMAX , fp );
puts( buf );
//while(fgetc(fp) != '\n' && !feof(fp)) ; /* 2行目を読み飛ばす */
fgets( buf , lenMAX , fp );
puts( buf );
}
/* ファイルが終わりでない「かつ」配列を飛び出さないうちは,読み込みを続ける */
while ( ! feof(fp) && n < MAX) {
fscanf(fp, "%lf %lf %lf %lf %lf\n", &(r[n]), &(z[n]), &(vr[n]), &(vz[n]), &(vphi[n])) ;
printf( "@%lf %lf %lf %lf %lf\n", r[n], z[n],vr[n],vz[n],vphi[n]);
n++;
}
fclose(fp);
n = n-1; /* 上のwhileループでは,EOFの行を余分に読み込んでいるので,実際のデータ数は一つ少ない. */
/* 計算 */
for(i=0; i<n; i++) {
E[ i ] = (9.11e-31*(vr[ i ]*vr[ i ]+vz[ i ]*vz[ i ]+vphi[ i ]*vphi[ i ]))/(2.0*1.6e-19);
printf("%lf %lf %lf\n",r[ i ],z[ i ],E[ i ]);
}
return 0;
}
// end.
#
###### time= 0.77520000e-09
@-0.000000 0.000000 0.000000 0.000000 0.000000
@-91991302144.000000 0.000000 0.000000 0.000000 0.000000
@-6857104384.000000 289262853080542990000000000000000.000000 0.000000 0.000000 0.000000
@0.000000 -0.001199 0.000000 0.000000 0.000000
@-17177022838666758000000.000000 -0.000000 2.000000 0.000000 0.000000
@-3984194888016342900000000000000000.000000 0.000000 0.000000 0.000000 0.000000
@-14107479653249712000.000000 -0.000000 0.000000 0.000000 0.000000
@-0.000000 0.000000 0.000000 0.000000 0.000000
@-3596.484619 0.000000 0.000000 0.000000 0.000000
@4180918965869213600000.000000 -139361244993650040000000000000000.000000 0.000000 0.000000 0.000000
@-0.000736 0.000002 0.000000 0.000000 0.000000
@-0.000000 0.000000 0.000000 0.000000 0.000000
@-23.600742 -0.000000 0.000000 0.000000 0.000000
@-0.000000 0.243048 0.000000 0.000000 0.000000
@176434657570802390000000000000.000000 1267339154321385800000000000000000000.000000 0.000000 0.000000 0.000000
@0.000005 -0.000000 0.000000 0.000000 0.000000
@-80265805518984756000000000000000000000.000000 0.000000 0.000000 0.000000 0.000000
@-203268915200.000000 -0.000000 0.000000 0.000000 0.000000
@-10672968564736.000000 -0.264768 0.000000 0.000000 0.000000
@0.001247 0.000000 0.000000 0.000000 0.000000
@-30303388717547520.000000 1262641972200533200000000000000000.000000 0.000000 0.000000 0.000000
@-170451.484375 2265224762699462700000.000000 0.000000 0.000000 0.000000
@-0.000000 0.000000 0.000000 0.000000 0.000000
@0.004215 6383697007508728800000000000000000000.000000 0.000000 0.000000 0.000000
@-17795993067852931000000.000000 -0.000136 0.000000 0.000000 0.000000
@-0.000000 -0.000000 0.000000 0.000000 0.000000
@-0.000000 0.000000 0.000000 0.000000 0.000000
@-4.489216 0.000000 0.000000 0.000000 0.000000
@180787319656153090.000000 8997065836354943000000000000000000000.000000 0.000000 0.000000 0.000000
@1838658304.000000 -932993472390560320000000000000000.000000 0.000000 0.000000 0.000000
@0.000000 -1394798159381382800000.000000 0.000000 0.000000 0.000000
@311109815180258470000000.000000 12363.235352 0.000000 0.000000 0.000000
@-0.000000 -0.000000 0.000000 0.000000 0.000000
-0.000000 0.000000 0.000000
-91991302144.000000 0.000000 0.000000
-6857104384.000000 289262853080542990000000000000000.000000 0.000000
0.000000 -0.001199 0.000000
-17177022838666758000000.000000 -0.000000 0.000000
-3984194888016342900000000000000000.000000 0.000000 0.000000
-14107479653249712000.000000 -0.000000 0.000000
-0.000000 0.000000 0.000000
-3596.484619 0.000000 0.000000
4180918965869213600000.000000 -139361244993650040000000000000000.000000 0.000000
-0.000736 0.000002 0.000000
-0.000000 0.000000 0.000000
-23.600742 -0.000000 0.000000
-0.000000 0.243048 0.000000
176434657570802390000000000000.000000 1267339154321385800000000000000000000.000000 0.000000
0.000005 -0.000000 0.000000
-80265805518984756000000000000000000000.000000 0.000000 0.000000
-203268915200.000000 -0.000000 0.000000
-10672968564736.000000 -0.264768 0.000000
0.001247 0.000000 0.000000
-30303388717547520.000000 1262641972200533200000000000000000.000000 0.000000
-170451.484375 2265224762699462700000.000000 0.000000
-0.000000 0.000000 0.000000
0.004215 6383697007508728800000000000000000000.000000 0.000000
-17795993067852931000000.000000 -0.000136 0.000000
-0.000000 -0.000000 0.000000
-0.000000 0.000000 0.000000
-4.489216 0.000000 0.000000
180787319656153090.000000 8997065836354943000000000000000000000.000000 0.000000
1838658304.000000 -932993472390560320000000000000000.000000 0.000000
0.000000 -1394798159381382800000.000000 0.000000
311109815180258470000000.000000 12363.235352 0.000000
Embarcadero Dえv-C++ 6.2 で確認。