exe編譯成功
『壹』 為什麼編譯成功的程序用java.exe 運行卻顯示失敗呢
異常提示的很清楚,無法讀取文件輸入
我能想到的有兩種情況:
文件路徑錯誤,樓上已經給出了;
文件類型錯誤,不是每個.jpg的文件都是圖片的,這種情況一般是程序生成圖片錯誤,導致只有一個.jpg(或其他)的空殼,裡面沒有內容
『貳』 為什麼我的這段程序編譯通過,組件EXE文件成功但運行崩潰,謝謝~~
修改for循環條件為:
for(i=0; *p!=' ' && *p!='\0'; p++,i++)
修改後可以運行,但是結果可能不符合你的預期。你需要把你的程序的目的說出來,才能知道你要干什麼。
還有,在編程能力有限的情況下,建議由易到難,先編一些小的程序。
#include <string.h>
#include <stdio.h>
#include <ctype.h>
judge_1();
judge_2();
int number=-1;
int k=0;
char cache[50];
int main()
{
int i=0;
char code[1000];
char *p=code;
for(i=0;i<=999;i++)
code[i]='\0';
for(i=0;i<=49;i++)
cache[i]='\0';
printf(" Please inupt a string\n");
scanf("%s",code);
do
{
while (*p==' ') p++;
if(*p=='\0') break;
for(i=0; *p!=' ' && *p!='\0'; p++,i++)
cache[i]=*p;
printf("strimed string are : %s\n", cache);
printf(" The conpiled codes are:\n\n");
k=0;
judge_1();
judge_2();
printf("(");
if(number!=-1)
printf("%d",number);
else printf("error");
printf(",");
for(i=0;cache[i]!='\0';i++)
printf("%c",cache[i]);
printf(")");
for(i=0;i<=49;i++)
cache[i]='\0';
}while(p!=&code[1000]);
getchar();
//return 0;
}
judge_1() //判斷除字母和數字以外的內容
{ if(k==0)
{ if(strcmp(cache,"begin")==0) number=1;
if(strcmp(cache,"if")==0) number=2;
if(strcmp(cache,"then")==0) number=3;
if(strcmp(cache,"while")==0) number=4;
if(strcmp(cache,"do")==0) number=5;
if(strcmp(cache,"end")==0) number=6;
if(strcmp(cache,"+")==0) number=13;
if(strcmp(cache,"-")==0) number=14;
if(strcmp(cache,"*")==0) number=15;
if(strcmp(cache,"/")==0) number=16;
if(strcmp(cache,":")==0) number=17;
if(strcmp(cache,":=")==0) number=18;
if(strcmp(cache,"<")==0) number=20;
if(strcmp(cache,"<>")==0) number=21;
if(strcmp(cache,"<=")==0) number=22;
if(strcmp(cache,">")==0) number=23;
if(strcmp(cache,">=")==0) number=24;
if(strcmp(cache,"=")==0) number=25;
if(strcmp(cache,";")==0) number=26;
if(strcmp(cache,"(")==0) number=27;
if(strcmp(cache,")")==0) number=28;
if(strcmp(cache,"#")==0) number=0;
k=1;
}
}
judge_2()
{
if(k==1)
{ int i=0;
int a=0;
if(isalnum(cache[0])==1) number=10; //判斷字母
for(i=0;cache[i]!='\0';i++)
{ if(isalnum(cache[i])==0)
a=0;
else a=1;
if(a=1) number=-1; break;
}
if(a=0) number=11;
}
}
『叄』 win下emacs gcc的編譯環境下,用gcc c1.c -o c1.exe 編譯,已經編譯成功,可我想請問下,接下來要如何輸出
以下三種方法:
1. 在你輸入 「gcc c5.c -o c5」 的地方 直接輸入 ./c5 回車運行。
2. 【開始】-> 【運行】-> 輸入 cmd 。 從命令提示符進入到你的工程目錄。就是你下載編譯文件的目錄,輸入 c5回車 運行。
3. 進到你當前目錄,雙擊c5運行。
『肆』 已經編譯成功生成 .exe文件,但執行(不調試)仍產生錯誤.
編譯型:優點:運行速度快,代碼效率高,編譯後的程序不可修改,保密性較好 缺點:代碼需要經過編譯方可運行,可移植性差,只能在兼容的操作系統上運行 解釋型:優點:可移植性較好,只要有解釋環境,可在不同的操作系統上運行 缺點:運行需要解釋環境,運行起來比編譯的要慢,佔用資源也要多一些,代碼效率低,代碼修改後就可運行,不需要編譯過程
『伍』 匯編語言程序編譯連接生成exe文件成功,運行階段按要求輸入字元回車後看不到結果,屏幕消失。在線等解
呃,你開始->運行->cmd
然後轉到你的程序所在目錄下,如c:\masm\,就輸入cd c:\masm\
然後輸入你程序的名字,回車,你就看到結果了
『陸』 在Windows下編譯成功生成exe文件,但在linux卻提示 memset、strcpy等沒有聲明。是庫不一樣嗎怎麼解決
menset可是內存管理中的函數哦,不止是/linux中有定義它,/arch中幾乎每個平台下的/asm/string.h里都會重新定義它的,你用什麼架構的硬體平台就要加在那部分頭文件