【发布时间】:2020-12-29 11:38:10
【问题描述】:
我会Progg。从文件中读取生日和全名的简单 C 程序。 我将尝试使用高级 I/O 流。 但是我有一个问题...我使用 fscanf() 来读取文件... 但它不会像这样读取文件的完整日期:
文件: (test.txt)
01 02 1999 name1 nachname1
08 01 2000 name2 nachname2
10 02 2001 name3 nachname3
它只是读到这个:
程序输出:
1 2 1999 name1 nachname1
8 1 2000 name2 nachname2
10 2 2001 name3 nachname3
它不会在日期编号的开头显示0。
请检查我的源代码并告诉我我做错了什么。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <fcntl.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
int main()
{// MAIN START
char name[20],fname[20];
int day,month,year;
FILE *fd;
fd= fopen("test.txt","r");
// read word by word
while( fscanf(fd,"%d %d %d %s %s",&month,&day,&year,&name,&fname) != -1) // print till EOF
{
printf("\n DATA: %d %d %d %s %s\n",month,day,year,name,fname);
}
fclose(fd);
}// MAIN END
这又是我的文件 (test.txt):
01 02 1999 name1 nachname1
08 01 2000 name2 nachname2
10 02 2001 name3 nachname3
这里又是编译后程序的输出:
1 2 1999 name1 nachname1
8 1 2000 name2 nachname2
10 2 2001 name3 nachname3
编译器:GCC
操作系统:Linux
最好的问候我:) !!
【问题讨论】: