当前位置: 代码迷 >> C语言 >> [求助]晕!READ问题?有点乱
  详细解决方案

[求助]晕!READ问题?有点乱

热度:119   发布时间:2006-07-31 12:24:20.0
[求助]晕!READ问题?有点乱


在调用int getwidth(int fp) 或者int getheight( int fp)后 函数中的变量值 发生了改变??????????

#include <fcntl.h>
#include <io.h>
#include <stdio.h>

int change()
{
printf("\nnumber change!\n");
return 55;
}

int open64kfile(char *filename)
{
int fp;

if((fp = open(filename, O_RDONLY | O_BINARY)) == -1)
{
printf("Can't find file ""%s"".",filename);
getch();
return 0;
}
return fp;
}

int getwidth(int fp)
{
int WIDTH;

lseek(fp, 18, SEEK_SET);
read(fp, &WIDTH, 4);

return WIDTH;
}

int getheight( int fp)
{
int HEIGHT;

lseek(fp, 22, SEEK_SET);
read(fp, &HEIGHT, 4);

return HEIGHT;
}

int outquestion(int a,int b,int c)
{
int fp;

printf("a=%d,b=%d,c=%d",a,b,c);
getheight(fp=open64kfile("end.bmp"));
change();
printf("a=%d,b=%d,c=%d",a,b,c);/*变量值怎么变拉?*/
close(fp);
}

main()
{
int a=1,b=2,c=3;

outquestion(a,b,c);
getch();
}
/*---------------------------------------------------------------------------------------*/

程序运行后在调用int getwidth(int fp) 或者int getheight( int fp)后无原无故的 需要键盘输入??


#include <fcntl.h>
#include <io.h>
#include <stdio.h>

typedef struct {
int fp;
int WIDTH;
int HEIGHT;
int fix;
int outx;
int outy;
int file_x1;
int file_y1;
int file_x2;
int file_y2;
int lucency;
}BmpFile;

int open64kfile(char *filename)
{
int fp;

if((fp = open(filename, O_RDONLY | O_BINARY)) == -1)
{
printf("Can't find file ""%s"".",filename);
getch();
return 0;
}
return fp;
}

int getwidth(int fp)
{
int WIDTH;

lseek(fp, 18, SEEK_SET);
read(fp, &WIDTH, 4);

return WIDTH;
}

int getheight( int fp)
{
int HEIGHT;

lseek(fp, 22, SEEK_SET);
read(fp, &HEIGHT, 4);

return HEIGHT;
}

main()
{
BmpFile partview;

partview.fp=open64kfile("end.bmp");

getheight(partview.fp);/*这里为什么需要键盘输入?
但是把#include <io.h>去掉就不用拉??????????*/

printf("skdfd");
getch();
}


搜索更多相关的解决方案: READ  

----------------解决方案--------------------------------------------------------

int HEIGHT;

int WIDTH;
改成指针试试;
int getwidth(int fp)
{
int *WIDTH;

lseek(fp, 18, SEEK_SET);
read(fp, WIDTH, 4);

return *WIDTH;
}

我用VC调试通过~


----------------解决方案--------------------------------------------------------

先谢拉
回去试试(放假拉 在家没上网)

但是,问题是为什么?


还有个蠢问题

能告诉我怎么用VC做C程序么

怎么我的那个VC编译后不能运行啊


----------------解决方案--------------------------------------------------------

行拉


但是真想知道为什么!


----------------解决方案--------------------------------------------------------
??什么想知道为什么啊?什么行了??
----------------解决方案--------------------------------------------------------
以下是引用大水牛在2006-8-2 19:48:00的发言:
??什么想知道为什么啊?什么行了??

“为什么”是指为什么我的那个程序会出现那种错误?尤其为什么是否能成功运行要和是否去掉#include<io.h>有关?


“行了”是说你的那个方法的确让程序成功达到我要的目的拉


----------------解决方案--------------------------------------------------------
  相关解决方案