卒論
下記のプログラムなのですが、入力ファイルがテキストだと上手くいくのですが
csvだとうまくいきません。
ちなみに、入力ファイル内容は
13.csv
tenb 42885415 123 255 236
tenb 42885415 252 498 452
といった内容が1500行程あります。
本当に困っていますどうか助けてください。
カンマも入ってるんです。
プログラム内容(本来はファイルを3つ入力しますが文字数の関係で1つにしています)
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
FILE *fin,*fin2,*fin3;
char n[2000][1];
double g=0,z=0,p=0,p2=0,s[2000][10],,g2=0,z2=0,r,r1,r2,r3,r4,r5,r6;
int w2=0,w1=0,w=0,a=0,b=0,i=0,j=0,k=0,m=0,u=0,y=0,a2=0,b2=0,i2=0,j2=0,k2=0,m2=0,u2=0,y2=0,i3=0,j3=0,a3=0,u3=0,y3=0,flag=0;
if((fin=fopen("13.csv","r"))==NULL){
printf("入力ファイルがオープンできません.\n");
exit(1);
}
while( flag!=1 ){
if(j2==0)
{
fscanf(fin,"%s,",&n[i2][j2]);
if(n[i2][j2] == EOF)
{
flag = 1;
}
}
else
{
fscanf(fin,"%lf,",&s[i2][j2]);
}
j2++;
if(j2>=5)
{
j2=0;
i2++;
}
}
for(i2=0;i2<=2000;i2++){
g2=sqrt((s[i2][2]*s[i2][2])+((s[i2][3])*(s[i2][3]))+(s[i2][4]*s[i2][4]));
if(g2>max2 && g2<5000)
{
max2=g2;
a2=i2;
}
}
//printf("%5lf",sqrt((c[a][0]*c[a][0])+(c[a][1]*c[a][1])+(c[a][2]*c[a][2])));
//printf("%d",a+1);
for(k2=a2-140;k2<=a2-40;k2++)
{
if(sqrt((s[k2][2]*s[k2][2])+((s[k2][3])*(s[k2][3]))+(s[k2][4]*s[k2][4]))>z2)
{
z2=sqrt((s[k2][2]-s[0][2])*(s[k2][2]-s[0][2])+((s[k2][3]-s[0][3])*(s[k2][3]-s[0][3]))+(s[k2][4]-s[0][4])*(s[k2][4]-s[0][4]));
u2=k2;
}
}
//printf("%5lf",z);
//printf("%d",k+1);
for(m2=a2+7;m2<=a2+50;m2++)
{
if(sqrt((s[m2][2]*s[m2][2])+((s[m2][3])*(s[m2][3]))+(s[m2][4]*s[m2][4]))>p2)
{
p2=sqrt((s[m2][2]-s[0][2])*(s[m2][2]-s[0][2])+(s[m2][3]-s[0][3])*(s[m2][3]-s[0][3])+(s[m2][4]-s[0][4])*(s[m2][4]-s[0][4]));
y2=m2;
}
}
printf("%5lf%5lf%5lf%5d%\n",sqrt((s[a2-1][2]*s[a2-1][2])+((s[a2-1][3])*(s[a2-1][3]))+(s[a2-1][4]*s[a2-1][4])),z2,p2,m2);
r=sqrt((s[a2-1][2]-s[0][2])*(s[a2-1][2]-s[0][2])+(s[a2-1][3]-s[0][3])*(s[a2-1][3]-s[0][3])+(s[a2-1][4]-s[0][4])*(s[a2-1][4]-s[0][4]));
fclose(fin);
お礼
早々のお返事ありがとうございます。 私も半信半疑でした。 @以降はDIONで設定するものですものね…。 ありがとうございました。
補足
伏字と言う意味ではなく、間違いなく 「アスタリスク」だとおっしゃっていました。 しかも「他社のサイトでは登録が出来、おたくだけできない」と 自信を持って言われてしまいました…