#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *cognome=NULL;
char *nome=NULL;
char *email=NULL;
char *password=NULL;
char *password2=NULL;
FILE *file_utenti=NULL;
file_utenti=fopen("Utenti.dat","a+");
struct utente
{
char cognome[25];
char nome[25];
char email[80];
char password[64];
char password2[64];
};
struct utente Utente;
file_utenti=fopen("Utenti.dat","r");
if(file_utenti!=NULL)
printf("%s\n","File aperto correttamente in lettura");
else
printf("%s\n","Impossibile leggere sul file utenti");
while(fread(&Utente, sizeof(Utente), 1, file_utenti))
{
printf("%s\t",Utente.cognome);
printf("%s\t",Utente.nome);
printf("%s\t",Utente.email);
printf("%s\t",Utente.password);
printf("%s\t",Utente.password2);
printf("\n");
}
fclose(file_utenti);
return 0;
}
如果我将其作为cgi脚本运行,则不会输入while,但是如果我在/ var / www / cgi-bin /目录中运行它,则可以完美运行。它打开文件,打印所有记录,然后退出 当然,我在cgi脚本中使用了html标记。我的意思是,我用一个表格来显示文件中的数据 但是它只写标签表
答案 0 :(得分:0)
以下建议的代码:
#include <string.h>
现在,建议的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
struct utente
{
char cognome[25];
char nome[25];
char email[80];
char password[64];
char password2[64];
};
struct utente Utente;
FILE *file_utenti=fopen("Utenti.dat","r");
if( file_utenti )
printf("%s\n","File aperto correttamente in lettura");
else
{ // fopoen failed
perror("Impossibile leggere sul file utenti");
exit( EXIT_FAILURE );
}
while(fread( &Utente, sizeof(Utente), 1, file_utenti) )
{
printf("%s\t",Utente.cognome);
printf("%s\t",Utente.nome);
printf("%s\t",Utente.email);
printf("%s\t",Utente.password);
printf("%s\t",Utente.password2);
printf("\n");
}
fclose(file_utenti);
return 0;
}
但是,该问题无法明确每个字符串是否通过NUL字节终止。如果未以NUL字节终止,则代码将输出垃圾。