高手帮我看看这个程序啊? 本帖最后由 VisualEleven 于 2011-05-16 22:38:20 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 fp=fopen("C:\server.txt","r");-->fp=fopen("C:\\server.txt","r"); void output();这句是何意?早明? 调用? 打错字,不好意思void output();这句是何意?申明? 调用? 我想在 main中调用 output()这个函数 $GPGGA,071202.287,3202.3480,N,11848.8956,E,0,00,,,M,,,,0000*0F$GPRMC,071202.287,V,3202.3480,N,11848.8956,E,,,040511,,*14$GPVTG,,T,,M,,N,,K*4E$GPGGA,071203.287,3202.3480,N,11848.8956,E,0,00,,,M,,,,0000*0E$GPGSA,A,1,,,,,,,,,,,,,,,*1E$GPGSV,3,1,11,14,65,090,,31,57,321,,25,43,045,,30,39,216,*79$GPGSV,3,2,11,32,29,307,,22,27,183,,29,25,096,,16,17,214,*7C$GPGSV,3,3,11,20,07,320,,12,05,039,,18,01,163,*4D$GPRMC,071203.287,V,3202.3480,N,11848.8956,E,,,040511,,*15$GPVTG,,T,,M,,N,,K*4E主要是想对GPS的这个数据进行分类解析 #include<stdlib.h>#include<string.h>#include<stdio.h>#define DATA_MAX_LEN 114 int i; int data_len = 0; char data_buf[DATA_MAX_LEN]; bool get_data = true; bool data_ready = false; char c;void output(){ printf("-------------------------Output--------------------------\r\n\r\n"); printf("%s",data_buf); data_buf[0] = '\0';}int main(){ FILE *fp; char b; fp=fopen("C:\server.txt","r"); printf("/*--------------------Source--------------------*/\r\n\r\n"); void output(); while(!feof(fp)) { int result = 0; c =fgetc(fp); // printf("%c",c); if(get_data) { if(data_ready) { data_buf[data_len++] = c; //将接收的数据存入data_buf[]中 } result=memcmp(data_buf,"GPGSA",5); switch(c) { case 0x24: //开始符'$' data_len = 0; data_ready = true; break; case 0x0a: //结束符,回车 if(result == 0) { get_data = false; printf("%s",data_buf); printf("/*---------------------data_buf-----------------*/\r\n"); // data_buf[0] = '\0'; void output(); } break; default: break; } if (data_len>DATA_MAX_LEN) { data_len = 0; get_data = true; data_ready = false; } } } system("pause"); fclose(fp);}楼猪你懂的... 编译器为 VC++6.0主函数中为什么不能调用output()函数 #include<stdlib.h>#include<string.h>#include<stdio.h>#define DATA_MAX_LEN 114 int i; int data_len = 0; char data_buf[DATA_MAX_LEN]; bool get_data = true; bool data_ready = false; char c;void output(){ printf("-------------------------Output--------------------------\r\n\r\n"); printf("%s",data_buf); data_buf[0] = '\0';}int main(){ FILE *fp; char b; fp=fopen("C:\server.txt","r"); printf("/*--------------------Source--------------------*/\r\n\r\n"); output(); while(!feof(fp)) { int result = 0; c =fgetc(fp); // printf("%c",c); if(get_data) { if(data_ready) { data_buf[data_len++] = c; //将接收的数据存入data_buf[]中 } result=memcmp(data_buf,"GPGSA",5); switch(c) { case 0x24: //开始符'$' data_len = 0; data_ready = true; break; case 0x0a: //结束符,回车 if(result == 0) { get_data = false; printf("%s",data_buf); printf("/*---------------------data_buf-----------------*/\r\n"); // data_buf[0] = '\0'; output(); } break; default: break; } if (data_len>DATA_MAX_LEN) { data_len = 0; get_data = true; data_ready = false; } } } system("pause"); fclose(fp);}嗯 这次全了... 6楼的还是不行啊 不能调用output()啊还有错误的输出啊 void output();是声明,不是调用,要去掉void 我的分类呢$GPGGA $GPGSV $GPRMC来区分呢 有更好的优化代码写出来么 谢谢啦!! 在main函数前预定义函数原型,这是C++的形式;要不把整个output函数移动到main函数之前就可以了!ok! vs2010下怎么没有CRecordView了? 请问可以hook 进程么? 抖动算法 自绘控件 VC6远程调试出错,网上邻居里能找到远程机,但是调试的时候却连接不上? 基于对话框的图像处理 如何在每次画图前清屏? 如何改变CPropertySheet显示的字体? 各位请详细讲讲你们是怎样在客户端注册DCOM组件的! MFC fatal error C1189: #error 求助!!! 将工具条按钮变灰色,禁用状态 大家说说下面哪种设计模式好?关于类和类的关系,我的主管和副主管争论的不可开交,求大家深度剖析下,下面很清楚的描述了机制,谢谢
-->
fp=fopen("C:\\server.txt","r");
void output();这句是何意?申明? 调用?
$GPRMC,071202.287,V,3202.3480,N,11848.8956,E,,,040511,,*14
$GPVTG,,T,,M,,N,,K*4E
$GPGGA,071203.287,3202.3480,N,11848.8956,E,0,00,,,M,,,,0000*0E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,11,14,65,090,,31,57,321,,25,43,045,,30,39,216,*79
$GPGSV,3,2,11,32,29,307,,22,27,183,,29,25,096,,16,17,214,*7C
$GPGSV,3,3,11,20,07,320,,12,05,039,,18,01,163,*4D
$GPRMC,071203.287,V,3202.3480,N,11848.8956,E,,,040511,,*15
$GPVTG,,T,,M,,N,,K*4E
主要是想对GPS的这个数据进行分类解析
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
#define DATA_MAX_LEN 114 int i;
int data_len = 0;
char data_buf[DATA_MAX_LEN];
bool get_data = true;
bool data_ready = false;
char c;void output()
{
printf("-------------------------Output--------------------------\r\n\r\n");
printf("%s",data_buf); data_buf[0] = '\0';
}int main()
{
FILE *fp;
char b;
fp=fopen("C:\server.txt","r");
printf("/*--------------------Source--------------------*/\r\n\r\n");
void output();
while(!feof(fp))
{
int result = 0;
c =fgetc(fp);
// printf("%c",c);
if(get_data)
{
if(data_ready)
{
data_buf[data_len++] = c; //将接收的数据存入data_buf[]中
}
result=memcmp(data_buf,"GPGSA",5);
switch(c)
{
case 0x24: //开始符'$'
data_len = 0;
data_ready = true;
break;
case 0x0a: //结束符,回车
if(result == 0)
{
get_data = false;
printf("%s",data_buf);
printf("/*---------------------data_buf-----------------*/\r\n");
// data_buf[0] = '\0';
void output();
}
break;
default:
break;
}
if (data_len>DATA_MAX_LEN)
{
data_len = 0;
get_data = true;
data_ready = false;
}
}
}
system("pause");
fclose(fp);
}楼猪你懂的...
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
#define DATA_MAX_LEN 114 int i;
int data_len = 0;
char data_buf[DATA_MAX_LEN];
bool get_data = true;
bool data_ready = false;
char c;void output()
{
printf("-------------------------Output--------------------------\r\n\r\n");
printf("%s",data_buf); data_buf[0] = '\0';
}int main()
{
FILE *fp;
char b;
fp=fopen("C:\server.txt","r");
printf("/*--------------------Source--------------------*/\r\n\r\n");
output();
while(!feof(fp))
{
int result = 0;
c =fgetc(fp);
// printf("%c",c);
if(get_data)
{
if(data_ready)
{
data_buf[data_len++] = c; //将接收的数据存入data_buf[]中
}
result=memcmp(data_buf,"GPGSA",5);
switch(c)
{
case 0x24: //开始符'$'
data_len = 0;
data_ready = true;
break;
case 0x0a: //结束符,回车
if(result == 0)
{
get_data = false;
printf("%s",data_buf);
printf("/*---------------------data_buf-----------------*/\r\n");
// data_buf[0] = '\0';
output();
}
break;
default:
break;
}
if (data_len>DATA_MAX_LEN)
{
data_len = 0;
get_data = true;
data_ready = false;
}
}
}
system("pause");
fclose(fp);
}嗯 这次全了...
$GPGGA $GPGSV $GPRMC来区分呢 有更好的优化代码写出来么 谢谢啦!!