在我的.txt文件中,我有以下数据。
名称:姓名
得分:0.00%
名称:姓名
得分:0.00%
名称:姓名
得分:6.67%
我尝试使用此代码
if (userAnswer1 == 3){
printf("Test History\n\n");
FILE * fPointer;
fPointer = fopen("history.txt", "r");
char singleLine[50];
while(!feof(fPointer)) {
fgets(singleLine, 50, fPointer);
puts(singleLine);
int i;
for(i=0; i>=0; i++){
if(i%2==0){
printf("\n");
}
break;
}
}
fclose(fPointer);
}
获得此输出:
名称:姓名
得分:0.00%
名称:姓名
得分:0.00%
名称:姓名
得分:6.67%
相反,我得到的输出低于。
测试历史
名称:姓名
得分:0.00%
名称:姓名
得分:0.00%
名称:姓名
得分:6.67%
得分:6.67%
最佳答案
两件事:puts
函数编写换行符;并且fgets
函数可能在缓冲区中包含换行符。
这意味着当您首先打印singleLine
时,会有一个换行符(因为fgets
放在那里),然后puts
编写自己的换行符。
删除fgets
写入缓冲区的换行符,或者不使用puts
。