Linux+boa+cgi+c 如何在网页text文本框中读取data.txt的下一行内容
下面是我编写的代码,我没有用text文本框,只是简单的读取文件输出来了,我想请大家帮我看看,能不能用三个text的文本框,分别对应温度,湿度和时间,然后定时的文本框内容读...
下面是我编写的代码,我没有用text文本框,只是简单的读取文件输出来了,我想请大家帮我看看,能不能用三个text的文本框,分别对应温度,湿度和时间,然后定时的文本框内容读取data.txt的下一行内容。
//viewdata.c
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#define DATAFILE "/var/www/cgi-bin/data.txt"
int main(void)
{
FILE *f = fopen(DATAFILE,"r");
char ch;
char wendu[10];
char shidu[10];
char stime[20];
int i=0;
int j=0;
int k=0;
int flag=0;
if(f == NULL) //判断打开文件是否成功
{
printf("Content-type:text/html;charset=gb2312\n\n");
printf("<TITLE>错误</TITLE>");
printf("<p><EM>意外错误,无法打开文件</EM>");
}
else//打开文件成功,开始输出网页
{
printf("Content-type:text/html\n\n");
printf("<html>\n");
printf("<head><title>viewdata</title></head>\n");
printf("<body>\n");
printf("温度:");
while((ch=getc(f))!='\n') //判断是否到了一行的末尾
{
if(ch!=' '&&flag==0) //flag=0表示正在读温度
{
wendu=ch;
i++;
}
else if(flag==0)
{
wendu='\0';
flag=1;
printf("%s",wendu);
printf("<br>湿度:");
continue;
}
else if(ch!=' '&&flag==1) //flag=1表示正在读湿度
{
shidu[j]=ch;
j++;
}
else if(flag==1)
{
shidu[j]='\0';
flag=2; //flag=2表示读取时间
printf("%s<br>时间:",shidu);
continue;
}
else
{
stime[k]=ch;
k++;
}
}
stime[k]='\0';
printf("%s",stime);
printf("</body>\n");
printf("</html>");
fclose(f);
}
return 0;
}
//data.txt内容如下:
37.3 28.5 14:59:01
37.3 28.5 14:59:02
37.3 28.5 14:59:03
37.3 28.5 14:59:04
37.3 28.5 14:59:05
37.3 28.5 14:59:06
37.3 28.5 14:59:07
37.3 28.5 14:59:08
37.3 28.5 14:59:09
37.3 28.5 14:59:10
//gcc -o viewdata.cgi viewdata.c 生成cgi程序
//然后在网页中输入 http://10.1.14.196/html/viewdata.cgi后
//运行结果如下:
温度:37.3
湿度:28.5
时间:14:59:01
我只是实现了输出到网页,没有用text文本框,问问大家能否用三个文本框定时的输出下一行数据。
万分感谢大家了。 展开
//viewdata.c
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#define DATAFILE "/var/www/cgi-bin/data.txt"
int main(void)
{
FILE *f = fopen(DATAFILE,"r");
char ch;
char wendu[10];
char shidu[10];
char stime[20];
int i=0;
int j=0;
int k=0;
int flag=0;
if(f == NULL) //判断打开文件是否成功
{
printf("Content-type:text/html;charset=gb2312\n\n");
printf("<TITLE>错误</TITLE>");
printf("<p><EM>意外错误,无法打开文件</EM>");
}
else//打开文件成功,开始输出网页
{
printf("Content-type:text/html\n\n");
printf("<html>\n");
printf("<head><title>viewdata</title></head>\n");
printf("<body>\n");
printf("温度:");
while((ch=getc(f))!='\n') //判断是否到了一行的末尾
{
if(ch!=' '&&flag==0) //flag=0表示正在读温度
{
wendu=ch;
i++;
}
else if(flag==0)
{
wendu='\0';
flag=1;
printf("%s",wendu);
printf("<br>湿度:");
continue;
}
else if(ch!=' '&&flag==1) //flag=1表示正在读湿度
{
shidu[j]=ch;
j++;
}
else if(flag==1)
{
shidu[j]='\0';
flag=2; //flag=2表示读取时间
printf("%s<br>时间:",shidu);
continue;
}
else
{
stime[k]=ch;
k++;
}
}
stime[k]='\0';
printf("%s",stime);
printf("</body>\n");
printf("</html>");
fclose(f);
}
return 0;
}
//data.txt内容如下:
37.3 28.5 14:59:01
37.3 28.5 14:59:02
37.3 28.5 14:59:03
37.3 28.5 14:59:04
37.3 28.5 14:59:05
37.3 28.5 14:59:06
37.3 28.5 14:59:07
37.3 28.5 14:59:08
37.3 28.5 14:59:09
37.3 28.5 14:59:10
//gcc -o viewdata.cgi viewdata.c 生成cgi程序
//然后在网页中输入 http://10.1.14.196/html/viewdata.cgi后
//运行结果如下:
温度:37.3
湿度:28.5
时间:14:59:01
我只是实现了输出到网页,没有用text文本框,问问大家能否用三个文本框定时的输出下一行数据。
万分感谢大家了。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询