【发布时间】:2014-07-24 01:41:54
【问题描述】:
fgets 语句没有从calendarLog 文件流中收集任何内容到events[][] 数组中。我的calendarLog.txt 里面有五行:
1/1/1 fds
2/2/2 dsa
3/3/3 sal
4/4/4 444
5/5/5 555
printf 语句被指示输出一个! 和events[counter],但是,我的输出语句只有问号,!!!!!,其中五个(如果我在 calendarLog 中添加更多行,它会打印更多的感叹号)。为什么
while(fgets(events[counter++], EVENT_DESCR_SIZE, calendarLog) != NULL)
保持真实但printf("!%s", events[counter]) 不打印events[counter]?
感谢所有帮助!
FILE *calendarLog;
char events[MAX_EVENTS][EVENT_DESCR_SIZE],
*newLinePos;
int counter = 0,
index1,
index2;
for (index1 = 0; index1 < MAX_EVENTS; index1++)
for (index2 = 0; index2 < EVENT_DESCR_SIZE; index2++)
events[index1][index2] = 0;
if ((calendarLog = fopen("calendarLog.txt", "r")) == NULL)
{
calendarLog = (fopen("calendarLog.txt", "w"));
fprintf(calendarLog, "s\n", eventObject);
}
else
{
while (fgets(events[counter++], EVENT_DESCR_SIZE, calendarLog) != NULL)
{
if ((newLinePos = strchr(events[counter], '\n')) != NULL) //takes the '\n' out
*newLinePos = '\0'; //of the events[counter]
printf("!%s", events[counter]);
}
【问题讨论】:
-
counter是最后一个的索引。 -
哦,我需要重新定位'++'谢谢
-
fprintf(calendarLog, "s\n", eventObject);看起来应该有"%s\n"作为格式字符串...