【发布时间】:2017-02-05 18:29:58
【问题描述】:
我正在尝试编写一个给定一些文本文件的函数,它会返回一些特定的行。但问题是其中一些没有打印出来。
我使用 fgets(var, 1500,(file*)fp) 从文件中获取每一行,然后使用 printf 打印它。
文件的内容是这样的:
收件人:马克
发件人:鲍勃
ID:0
2017 年 2 月 5 日星期日 13:21:38
主题:足球
文字:下周六早上
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void listmails(){
char To[300];
char From[300];
char Date[1500];
char Subject[300];
char ID[300];
char Text[300];
char llegible[500];
int countkong = 0;
FILE *fp;
while (countkong != -1 ){
sprintf(llegible, "%d_EDA1_email.txt", countkong); // files name are of the type 0_EDA1_email.txt, 1_EDA1_email.txt...
fp = fopen(llegible, "r");
countkong ++;
if(fp!=NULL){
fgets(To, 300, (FILE*)fp); // I don't want to do nothing wit this line, only to jump to the next line of the file
fgets(From, 300, (FILE*)fp);
printf("%s\n", From);
fgets(ID, 300, (FILE*)fp);
printf("%s\n", ID);
fgets(Date, 1500, (FILE*)fp);
fgets(Subject, 300, (FILE*)fp);
printf("%s\n", Subject);
}
}
}
int main()
{
listmails();
return 0;
}
【问题讨论】:
-
请包含完整且可编译的代码段,以及格式以便于阅读。对于初学者,您不需要在参数列表中输入
fp。只要在您致电fopen();(您没有验证)之后存在fp,fgets(From, 300, fp);就可以正常工作。最后,指向结果的链接应替换为代码段下的简单文本描述。 -
请在您的问题中包含文本输出作为文本(代码 - 缩进)。不要链接到图片。