atoi是把字符串转换为int型数据
atof是转换为float型
strtok是分隔字符串的
第一个例子用了sscanf, 没有用strtok#include
#include
#include
#include
#define MAX_Line 2048
int main(){
FILE *Fr;
Fr = fopen("test_Group_Box.txt", "r");
if(NULL == Fr){
printf("ERROR!\n");
return -1;
}
float t;
char Test_N_arr[MAX_Line];
// char *Test_N_arr = (char*)malloc(sizeof(char) *MAX_Line);
char str1[50], str2[50], str3[50];
// char str1, str2, str3;
// "Read Each Line of Fr and assign each fields to three pointers"
while (!feof(Fr)) {
fgets(Test_N_arr, MAX_Line, Fr);
sscanf(Test_N_arr, "%s\t%s\t%s", str1, str2, str3);
t = atof(str3);
printf("%s\t", str1);
printf("%s\t", str2);
if (strcmp(str1,"Group") == 0){
printf("%s\n", str3);
}else {
printf("%.2f\n", t);
}
}
fclose(Fr);
// free(Test_N_arr);
return 0;
}
另一个例子用了strtok#include
#include
#include
#include
#define MAX_Line 2048
int main(){
FILE *Fr;
Fr = fopen("test_Group_Box.txt", "r");
if(NULL == Fr){
printf("ERROR!\n");
return -1;
}
float t;
char *Test_N_arr = (char*)malloc(sizeof(char) *MAX_Line);
char *str;
// "Read Each Line of Fr and assign each fields to three pointers"
while (!feof(Fr)) {
fgets(Test_N_arr, MAX_Line, Fr);
str = strtok(Test_N_arr, "\t");
int i = 0;
while(str != NULL){
if( i == 2){
if(strcmp(str, "Qual\n") == 0){
printf("%s", str);
} else {
t = atof(str);
printf("%.2f\n", t);
}
}else {
printf("%s\t", str);
}
i++;
str = strtok(NULL, "\t");
}
}
fclose(Fr);
free(Test_N_arr);
return 0;
}