写入文件时获得不同的输出
Getting different output while writing to file
我编写了一个程序来保存足球队的统计数据。我将统计数据保存在一个文件中,并在另一个名为 "record.txt" 的文件中记录所有匹配项。
在我的record.txt文件中,写的格式是:
[opponent name] [current date]
我面临的问题是,有时我在一行中得到 "opponent name" "date",有时日期在新行开始
这是我得到的图片
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);
请注意,当您在 stdin
上按回车键时,fgets()
会读取换行符,而您并没有抑制它。如果您希望同一行中的两个字符串抑制换行符,如
size_t n = strlen(opponent);
if (n > 0 && opponent[n -1] == '\n')
opponent[n - 1] = '[=11=]';
我编写了一个程序来保存足球队的统计数据。我将统计数据保存在一个文件中,并在另一个名为 "record.txt" 的文件中记录所有匹配项。
在我的record.txt文件中,写的格式是:
[opponent name] [current date]
我面临的问题是,有时我在一行中得到 "opponent name" "date",有时日期在新行开始
这是我得到的图片 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);
请注意,当您在 stdin
上按回车键时,fgets()
会读取换行符,而您并没有抑制它。如果您希望同一行中的两个字符串抑制换行符,如
size_t n = strlen(opponent);
if (n > 0 && opponent[n -1] == '\n')
opponent[n - 1] = '[=11=]';