我是C的初学者。我正在用c做一个简单的游戏。 我有一个.txt文件存储玩家的分数,如
gse
12
CKY
8
asf
8
FWD
7
BCS
6
BBC
5
PYS
4
NSE
3
Jaeh
2
PJH
1
我的c代码中的一个函数如下:
void ViewScoreBoard() {
int n = 0;
int c;
char buffer[NAME_LENGTH] = { 0 };
FILE *fp = fopen("scoreBoard.txt", "r");
if (fp == NULL) {
printf("no score\n");
fflush(stdin);
getchar();
return;
}
system("cls");//clears the screen
printf("=======SCORE=======\n");
if (fp){
while(fgets(buffer, sizeof buffer, fp)!=NULL){
if(n%2==0){
printf("%2d. ",n/2+1); //index
buffer[strcspn(buffer, "\n")] = 0; //stripes the newline chr
printf("%5s",buffer);
}
if(n%2==1){
printf("%5s",buffer);
}
n++;
}
fclose(fp);
}
printf("Enter AnyKeys");
Sleep(100);
getchar();
getchar();}
问题是这个。 在控制台上,分数打印精确到3(在Jaeh之前)
=======SCORE=======
1. gse 12
2. CKY 8
3. asf 8
4. FWD 7
5. BCS 6
6. BBC 5
7. PYS 4
8. NSE 3
9. Jaeh
10. 2 PJH
11. 1Enter AnyKeys
我需要2与Jaeh内联,但不知道出了什么问题...... 提前谢谢!
*** EDIT
将代码更改为char buffer[NAME_LENGTH+2] = { 0 };
,一切正常。
谢谢大家!