此代碼將讀取文件,並且只要該文件打印這種格式跳過線,而文件掃描多行
word,12,34
words,40,20
another,20,11
我如何得到它做相同的,如果它有一個空行在之間喜歡這樣,因爲現在它只是給了我一個分段錯誤
word,12,34
words,40,20
another,20,11
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
FILE *pdata;
char buffer[1000];
char *token, *del=",";
int value1;
double value2;
pdata = fopen ("file.data", "r");
if(pdata == NULL)
{
printf("unable to open file \n");
exit(1);
}
while(fgets(buffer, sizeof(buffer), pdata) != NULL)
{
token = strtok(buffer, del);
value1 = atoi(strtok(NULL, del));
value2 = atof(strtok(NULL, del));
printf("%s is %.3lf\n", token, value1 + value2);
}
fclose(pdata);
return 0;
}
請幫助
測試'token'是否爲NULL?如果是的話,不要在接下來的兩行執行'atoi'轉換('if(token!= NULL){value1 = ...'我認爲應該這樣做) – Floris 2013-04-21 05:20:20
如何以及在哪裏做那 – Tatan1 2013-04-21 05:26:58
即時通訊 – Tatan1 2013-04-21 05:27:16