如何将.Dat文件中的字符放入c语言中的字符字符串保持器
然后将其放入.Dat文件中。 然后从最高到最低排序。 然后输出前20名(因此,如果dat中的某些分数被忽略,则仅输出20名。) 代码中唯一的问题是如何从文件中获取它。我知道如何分类。但是我怎么得到它呢如何将.Dat文件中的字符放入c语言中的字符字符串保持器,c,C,然后将其放入.Dat文件中。 然后从最高到最低排序。 然后输出前20名(因此,如果dat中的某些分数被忽略,则仅输出20名。) 代码中唯一的问题是如何从文件中获取它。我知道如何分类。但是我怎么得到它呢 您需要在fcanf 您需要使用strcpy复制学生姓名 使用以下命令: 4 Name1 100 Name2 900 Name3 800 Name4 150 带字符串格式化程序的scanf可能有点棘手,我建议您改为执行以下操作: i = 0;
fcanf
strcpy
复制学生姓名 4
Name1 100
Name2 900
Name3 800
Name4 150
带字符串格式化程序的scanf可能有点棘手,我建议您改为执行以下操作:
i = 0;
fscanf(fptr,"%s %d", &stud.name, &stud.score);
fgetc(fptr);
while(!feof(fptr)) {
strcpy(temp[i].name,stud.name);
temp[i].score = stud.score;
fscanf(fptr,"%s %d", &stud.name, &stud.score);
fgetc(fptr);
i++;
}
system("pause");
x=sizeof(fptr);
for(int i=0;i
i = 0;
fscanf(fptr,"%s %d", &stud.name, &stud.score);
fgetc(fptr);
while(!feof(fptr)) {
strcpy(temp[i].name,stud.name);
temp[i].score = stud.score;
fscanf(fptr,"%s %d", &stud.name, &stud.score);
fgetc(fptr);
i++;
}
system("pause");
x=sizeof(fptr);
for (int i = 0; i < x; ++i)
{
char buffer[255];
if (fgets(buffer, sizeof(buffer), fptr) != NULL)
{
char *p = strchr(buffer, ' '); // find ' '
if (p!=NULL)
{
*p++ = '\0'; // terminate first string
strncpy(temp[i].name, buffer, MAX); // copy string
temp[i].name[MAX-1] = '\0'; // in case name is too long, truncate
temp[i].score = atoi(p); // get score, whitespace will be ignored
}
}
}