【发布时间】:2019-07-27 20:08:30
【问题描述】:
我正在尝试制作一个字符生成器/编辑器,并且我想在控制台屏幕上显示所有已保存字符的列表。
我设法让列表正常工作,但输出有一点问题。
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void main(){
CreateDirectory("Characters",NULL);
CreateDirectory("Characters\\some random name",NULL);
CreateDirectory("Characters\\another random name",NULL);
system("dir /b/aD \Characters > character_list.txt");
FILE *f;
char Name[50];
int c, i=1;
f = fopen("character_list.txt", "r");
if(f == NULL){
printf("Could not open character list");
return;
}
printf("Choose character to edit:\n1) ");
if(f)
while((c=getc(f)) != EOF){
if(c=='\n'){
putchar(c);
printf("%d) ", ++i);
}
else putchar(c);
}
fclose(f);
return;
}
对于两个创建的字符,输出如下所示:
Choose character to edit:
1) some random name
2) another random name
3)
这就是问题所在。如何删除最后一点,使其看起来像这样?
Choose character to edit:
1) some random name
2) another random name
【问题讨论】:
-
您是否想过循环使用
fgets从文件中读取完整行而不是检查新行?