我写了一个程序来记录一支足球队的情况。我将统计信息保存在一个文件中,并将所有匹配项记录在另一个名为“record.txt”的文件中。
在我的record.txt文件中,写入的格式为:
[对手姓名][当前日期]
我面临的问题是,有时我在一行中得到“对手名字”“日期”,有时日期从一行开始
这是我得到的图像
pic of output file
这是我的密码

time_t rawtime;
struct tm * timeinfo;
char buffer [80];

time (&rawtime);
timeinfo = localtime (&rawtime);
strftime (buffer,80,"%d/%m/%y",timeinfo);

/* current date acquired */
FILE *history;

history = fopen("record.txt", "a");

char opponent[10];   //opponent name

printf("Opponent Name: ");
fgets( opponent, 10, stdin);
fprintf(history, "Opponent: %s %s\n", opponent, buffer);

fclose(history);

最佳答案

fgets(opponent, 10, stdin);

请注意,fgets()会在按enter onstdin时读取换行符,并且不会抑制它。如果希望两个字符串在同一行中,请按如下方式抑制换行符
size_t n = strlen(opponent);
if (n > 0 && opponent[n -1] == '\n')
    opponent[n - 1] = '\0';

关于c - 写入文件时获得不同的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28415735/

10-11 06:16