我試圖數據的文本文件(如下所示),但我不斷收到錯誤參數太少錯誤在閱讀文件中
1/1/1990/0/0 774.359070
1/1/1990/0/10 772.973206
1/1/1990/0/20 739.628784
1/1/1990/0/30 680.130066
1/1/1990/0/40 618.887695
我的代碼是
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE* input;
FILE* output;
input = fopen(argv[1],"r");
output = fopen(argv[2],"w");
float date;
float value;
while(fscanf(input,"%f/%f/%f/%f/%f/%f\n",&date, &value)!= EOF)
{
}
fprintf(output,"%f\n/%f\n/%f\n/%f\n/%f\n/%f\n",date, value);
return 0;
}
這是錯誤我得到
float_search.c: In function 'main':
float_search.c:15:2: warning: too few arguments for format
float_search.c:20:2: warning: too few arguments for format
我在做什麼錯?
//更新的代碼
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE* input;
FILE* output;
input = fopen(argv[1],"r");
output = fopen(argv[2],"w");
int date1,date2,date3,date4,date5;
float value;
while(fscanf(input,"%d/%d/%d/%d/%d/%f\n",&date1,&date2,&date3,&date4,&date5, &value)!= EOF)
{
fprintf(output,"%d\n/%d\n/%d\n/%d\n/%d\n/%f\n",date1,date2,date3,date4,date5,value);
}
fprintf(output,"%d\n/%d\n/%d\n/%d\n/%d\n/%f\n",date1,date2,date3,date4,date5,value);
return 0;
}
以上是與變化更新的代碼,prinitng出來時,我得到下面的輸出
46804
/4196128
/32765
/-1590701960
/0
/0.000000
34501
我很抱歉,但從兩個地方,你的意思是argv [1]? – Jordan 2013-03-24 05:33:50
我想我明白了,你的意思是數據變量? – Jordan 2013-03-24 05:35:33
@Jordan是的,每個格式說明符(例如你寫的'%f')都需要一個輸入參數(比如'&date')。你的編譯器正在檢查它並警告你參數的數量是否與格式說明符的數量不匹配。 – nemo 2013-03-24 05:37:06