注册 登录
编程论坛 VC++/MFC

[求助]小弟C语言的小白,编的程序出了问题,求大侠解答

libaoxin0917 发布于 2014-07-25 16:45, 1228 次点击
#include<stdio.h>
#include<windows.h>
void A()
{    if(time.wHour==16);         
    if(time.wMinute==15);
    if(time.wSecond==0);
        printf("************\n");
}
int main()
{   
        SYSTEMTIME time;                        
    SYSTEMTIME clock;                        
    GetLocalTime(&time);
    printf("学习C语言\n");
    printf("当前时间为:%2d:%2d:%2d\n",time.wHour,time.wMinute,time.wSecond);
    return 0;
}
17 回复
#2
funyh2502014-07-25 18:14
你倒是说什么问题啊
#3
libaoxin09172014-07-26 14:42
回复 2 楼 funyh250
error C2228: left of '.wHour' must have class/struct/union type                好像说的是结构类型有错误
还有一个就是时间未申报标示符
#4
libaoxin09172014-07-26 14:44
回复 2 楼 funyh250
我是用VC 6.0写的
#5
邵帅2014-07-26 15:00
void A()这个函数没用用到吧,你的time是不是应该声明为全局变量。
#6
libaoxin09172014-07-26 16:25
回复 5 楼 邵帅
我想调用系统时间,实现简单的一个闹钟编写,可是自己定义的函数VC不认
#7
srl2014-07-26 18:07
是if语句写错??
#8
青月2014-07-27 17:29
1.你的头文件中缺少了winbase.h,所以系统不会识别time.wHour
2.void A()函数在主函数里没有调用;【可能是你的这个函数本身有错误,注释掉它之后程序运行正常】
3.main()中缺少int argc,char *argv[]【这个在当前程序中没有其实也可以,但是如果你要继续往下编程的话还是把它加上】

附上本人调试后的程序代码:
#include<stdio.h>
#include<windows.h>
#include<winbase.h>
//void A()
//{    if(time.wHour==16);         
//    if(time.wMinute==15);
//    if(time.wSecond==0);
//        printf("************\n");
//}
int main(int argc,char *argv[])
{   
    SYSTEMTIME time;                        
    SYSTEMTIME clock;                        
    GetLocalTime(&time);
    printf("学习C语言\n");
    printf("当前时间为:%2d:%2d:%2d\n",time.wHour,time.wMinute,time.wSecond);
    return 0;
}
#9
青月2014-07-27 17:35
回复 8 楼 青月
等等……不用winbase.h也可以运行,问题应该就出在voidA()上
#10
libaoxin09172014-07-28 09:16
回复 8 楼 青月
大侠能不能帮我看下我if语句到底错哪里了,小弟感激不尽
#11
funyh2502014-07-28 13:26
程序代码:
#include<stdio.h>
#include<windows.h>
#include<winbase.h>
void A()
{    if(time.wHour==16);         
   if(time.wMinute==15);
    if(time.wSecond==0);
        printf("************\n");
}
int main(int argc,char *argv[])
{   
    SYSTEMTIME time;                        
    SYSTEMTIME clock;
    while(1)                      //这里一直无限循环
    {
           A();
    }                    
    GetLocalTime(&time);
    printf("学习C语言\n");
    printf("当前时间为:%2d:%2d:%2d\n",time.wHour,time.wMinute,time.wSecond);
    return 0;
}



要确保你的程序一直询问

也可以设置多长时间询问一次 无限询问

[ 本帖最后由 funyh250 于 2014-7-28 13:28 编辑 ]
#12
libaoxin09172014-07-30 09:54
回复 11 楼 funyh250
我把程序放到了VC6.0上面运行还是有错误
#13
funyh2502014-07-30 14:23
程序代码:
#include<stdio.h>
#include<windows.h>
#include<winbase.h>
bool A(SYSTEMTIME&time)
{    if(time.wHour==14 &&  time.wMinute==22  &&  time.wSecond==0)  
    {
        printf("************\n");
        return true;
    }
     return false;
}
int main(int argc,char *argv[])
{   
    SYSTEMTIME time;                        
    SYSTEMTIME clock;
    while(1)                      //这里一直无限循环
    {
        GetLocalTime(&clock);
           if(A(clock))
               break;
    }                    
    GetLocalTime(&time);
    printf("学习C语言\n");
    printf("当前时间为:%2d:%2d:%2d\n",time.wHour,time.wMinute,time.wSecond);
    return 0;
}
#14
libaoxin09172014-07-30 16:50
回复 13 楼 funyh250
实在太谢谢版主了。跟我想要的结果一样
#15
funyh2502014-07-30 20:16
回复 14 楼 libaoxin0917
要多思考
多总结
这样肯定会有进步的
#16
libaoxin09172014-07-31 12:00
回复 15 楼 funyh250
知道了,谢谢您的教诲
#17
邵帅2014-08-01 16:21
回复 10 楼 libaoxin0917
void A()
{    if(time.wHour==16);         
    if(time.wMinute==15);
    if(time.wSecond==0);
        printf("************\n");
}

你的每个if语句后面都有;也就说if语句没有任何作用,你函数的作用就是printf("************\n")
基础啊少年!
#18
libaoxin09172014-08-14 16:22
回复 17 楼 邵帅
明白了,我犯了个极大的错误,现在懂了
1