为啥c语言程序是对的可以运行,可是目标文件找不到?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥c语言程序是对的可以运行,可是目标文件找不到?相关的知识,希望对你有一定的参考价值。

void test(char ID[])

int i=0,a,b,c,correctanswer,score=0,t;
int useranswer[NUM],correctanswer1[NUM],a1[NUM],b1[NUM];
char sign,sign1[NUM];
srand(time(NULL));
FILE*outFile;
clock_t start,end;
start=clock()/CLOCKS_PER_SEC;
while(i<10)

a=rand()%100;
b=rand()%100;
c=rand()%4;
switch(c)

case 0:
if(a+b<100)
correctanswer=a+b; sign='+';
printf("%d %d%c%d= ",i+1,a,sign,b);
scanf("%d",&useranswer[i]);
a1[i]=a;b1[i]=b;sign1[i]=sign;correctanswer1[i]=correctanswer;
if(useranswer[i]==correctanswer1[i])
score=score+10;
i=i+1;
break;

case 1:
if(a-b>0)
correctanswer=a-b; sign='-';
printf("%d %d%c%d= ",i+1,a,sign,b);
scanf("%d",&useranswer[i]);
a1[i]=a;b1[i]=b;sign1[i]=sign;correctanswer1[i]=correctanswer;
if(useranswer[i]==correctanswer1[i])
score=score+10;
i=i+1;
break;

case 2:
if(a*b<100)
correctanswer=a*b; sign='*';
printf("%d %d%c%d= ",i+1,a,sign,b);
scanf("%d",&useranswer[i]);
a1[i]=a;b1[i]=b;sign1[i]=sign;correctanswer1[i]=correctanswer;
if(useranswer[i]==correctanswer1[i])
score=score+10;
i=i+1;
break;

case 3:
if(b!=0&&a%b==0)
correctanswer=a/b; sign='/';
printf("%d %d%c%d= ",i+1,a,sign,b);
scanf("%d",&useranswer[i]);
a1[i]=a;b1[i]=b;sign1[i]=sign;correctanswer1[i]=correctanswer;
if(useranswer[i]==correctanswer1[i])
score=score+10;
i=i+1;
break;


end=clock()/CLOCKS_PER_SEC;
printf("Your score is %d\n\n",score);
printf("The time you've costed is %d second.\n\n",end-start);
printf("prob | correctanwser |Ur answer\n");
for(i=0;i<10;i++)

printf("%-2d %-2d%c%-2d | %-7d | %-14d \n",i+1,a1[i],sign1[i],b1[i],correctanswer1[i],useranswer[i]);

outFile=fopen("record.txt","r");
fprintf(outFile,"Your previous scores are:\n");
fprintf(outFile,"%s %d %dseconds",ID,score,end-start);
fclose(outFile);

特别特别急!!!!!!求助!!!!!!

你用的应该是C++的编译器,C++对函数申明不做强制要求,如果函数没有申明,直接使用的话,会给你一个默认申明。
编译过了之后,连接器是根据函数名称进行连接,和申明关系不大,所以,连接器也能找到正确的函数进行连接。

但你这个程序,应该会生成一些warning,提示部分函数没有申明。
参考技术A outFile=fopen("record.txt","a+"); 试试追问

有了有了!!为什么呀?

追答

r是只读 你文件没有 它不会创建,你要是用r必须是文件存在 r是read的意思,没有当然没法读,你也没做错误处理,所以也没报错,a+是追加,没有会自己创建

追问

好的好的!太感谢啦!!

本回答被提问者采纳
参考技术B 源代码文件可以用任意文本编辑.
目标文件由编译器生成.具体的生成方法在不同的开发环境上是不同的.
gcc的例子:
gcc
-o
target_file
test.c
编译test.c生成可执行文件target_file
gcc
-c
test.c
编译test.c
,生成目标文件test.o,但不进行link.

为啥好多东西运行不了。出现“找不到所需的.dll文件?”

为什么好多东西运行不了。出现“找不到所需的.dll文件-dsound.dll”?

Windows Media Player
Media Player Classic
劲舞团

一点击全都出现这个。。可是开机音乐却还有!~
....我安装了``可现在又改了...变为"找不到所需的.Dll文件-DDRAW.DLL了"
还有就是"无法启动文件 DSOUND.ALL.请检查该文件,确定出问题的原因."

晕了啊....我什么都不懂啊。...T.T

估计这个东东被你搞丢了,下载一个

放到系统的system32文件夹下面就可以了

dsound.dll

http://www.dll-files.com/dllindex/dll-files.shtml?dsound

是个英文网站 上去后点
Click here to go to the download of dsound.dll
之后点
Download dsound.dll
下载一个*.zip文件把dsound.dll释放到
c:\\windows\\system32\\ 下面 就OK!
参考技术A 从新安装DirectX最新版好像是9.0c
http://dl.pconline.com.cn/html/1/5/dlid=15&dltypeid=1&pn=0&linkPage=1.html
参考技术B 清空所有临时文件
位置:系统盘/Documents and Settings/用户名(默认安装为admin...)/Local Settings(这是个隐含文件,设置显示所有文件,包括受到系统保护的操作系统文件的勾去掉)/temp(系统临时文件夹,里面全部清空)
旁边的Temporary Internet Files(ie临时文件夹,一样清空)
参考技术C 可能是有些系统文件丢失造成的,不妨把系统修复一下

以上是关于为啥c语言程序是对的可以运行,可是目标文件找不到?的主要内容,如果未能解决你的问题,请参考以下文章

为啥好多东西运行不了。出现“找不到所需的.dll文件?”

为啥我的简单目标 c 桥接头找不到文件“BraintreeCore.h”?

为啥我的简单目标 c 桥接头找不到文件“BraintreeCore.h”?

用U盘重装系统时为啥找不到映像文件路径

为啥我装了vc运行c++程序的时候老是说找不到include文件?

我安装了SQL,可是为啥找不到软件?