新聞中心
C語(yǔ)言使用system()函數(shù)打開應(yīng)用程序,遇到的路徑問題,求助
你代碼中的路徑才需要轉(zhuǎn)義,在文本文件中是不需要,直接在文本文件中寫
站在用戶的角度思考問題,與客戶深入溝通,找到黃龍網(wǎng)站設(shè)計(jì)與黃龍網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋黃龍地區(qū)。
"C:\Program Files.....exe"
就行了
Windows下怎么用C語(yǔ)言獲取正在運(yùn)行的程序的路徑
很簡(jiǎn)單:
API函數(shù):
GetModuleFileName(模塊句柄,保存的字符數(shù)組,字符數(shù)組的大小);
一般來說,要獲取正在運(yùn)行程序的全路徑,那就在第一個(gè)參數(shù)寫個(gè)0
參數(shù)2是保存的數(shù)組,獲取的路徑將保存在這個(gè)數(shù)組
參數(shù)三是字符數(shù)組的大小
給你一個(gè)示例程序:
#include windows.h
#include stdio.h
void main()
{
char ExePlace[1024];/*保存地址的數(shù)組/
GetModuleFileName(0,ExePlace,1024);/*獲取當(dāng)前運(yùn)行全路徑*/
puts(ExePlace);/*輸出獲取到的路徑*/
}
C語(yǔ)言試題 編寫一個(gè)獲取文件路徑的函數(shù)
#include stdio.h
main()
{
char str[80]="d:\\files\\dataFiles\\data\\avatar.bmp"; // 單斜杠處填雙斜杠
int L,i;
L = strlen(str);
for (i=L-1;i=0;i--) if (str[i] == '\\') { str[i] ='\0'; break;}; // 去掉文件名就是路徑
printf("Path= %s",str);
return 0;
}
-----------
寫成函數(shù)和調(diào)用:
#include stdio.h
void fun(char *str){
int L,i;
L = strlen(str);
for (i=L-1;i=0;i--) if (str[i] == '\\') { str[i] ='\0'; break;};
}
main()
{
char str[80]="d:\\files\\dataFiles\\data\\avatar.bmp";
fun(str);
printf("Path= %s",str);
return 0;
}
C語(yǔ)言函數(shù)調(diào)用
打開Ubuntu,并在目標(biāo)路徑下開啟一個(gè)終端。 選定一個(gè)路徑,使用touch命令創(chuàng)建三個(gè)文件,function.h,function.c,test.c,分別用來做函數(shù)頭文件、函數(shù)源文件以及測(cè)試文件。 首先用vim命令與vsplit依次打開三個(gè)文件。 在頭文件中添加重復(fù)包含的宏,并添加四則運(yùn)算的函數(shù)聲明。 在function.c中將function.h包含進(jìn)來,并具體實(shí)現(xiàn)四個(gè)方法。注意出發(fā)要對(duì)除數(shù)是否為0進(jìn)行判斷。 然后編寫測(cè)試程序進(jìn)行測(cè)試。總的程序代碼如下: 保存所有的程序并退出,使用gcc進(jìn)行編譯,并運(yùn)行得到的結(jié)果如下。這就是函數(shù)的聲明、定義以及調(diào)用。 語(yǔ)言的作用域規(guī)則:是一組確定一部分代碼是否“可見”或可訪問另一部分代碼和數(shù)據(jù)的規(guī)則。 C語(yǔ)言中的每一個(gè)函數(shù)都是一個(gè)獨(dú)立的代碼塊。一個(gè)函數(shù)的代碼塊是隱藏于函數(shù)內(nèi)部的,不能被任何其它函數(shù)中的任何語(yǔ)句(除調(diào)用它的語(yǔ)句之外)所訪問(例如,用g o t o語(yǔ)句跳轉(zhuǎn)到另一個(gè)函數(shù)內(nèi)部是不可能的)。構(gòu)成一個(gè)函數(shù)體的代碼對(duì)程序的其它部分來說是隱蔽的,它既不能影響程序其它部分,也不受其它部分的影響。換言之,由于兩個(gè)函數(shù)有不同的作用域,定義在一個(gè)函數(shù)內(nèi)部的代碼數(shù)據(jù)無法與定義在另一個(gè)函數(shù)內(nèi)部的代碼和數(shù)據(jù)相互作用。
c語(yǔ)言不同路徑下的.C文件怎么相互函數(shù)調(diào)用
一種方式 是 通過 環(huán)境變量 INCLUDE, PATH, LIB 里的設(shè)置,編譯器 會(huì)到 那里去找。
用雙引號(hào)括起的方法 寫 包含 文件名字 可以 帶 詳細(xì)的 路徑。
例如:
#include "..\\DataBase\\include\\db.h"
例如:
#include "C:\\users\\public\\C\\LIB\\dbb.c"
路徑寫法 要符合自己用的操作系統(tǒng).
c語(yǔ)言如何獲得文件當(dāng)前路徑?
C語(yǔ)言里
在main函數(shù)的第二個(gè)參數(shù)里面,
保存著當(dāng)前程序運(yùn)行的目錄
也就是argv[0]
main( int argc, char *argv[])
{
printf("%s ", argv[0] );
}
就是文件當(dāng)前所在位置
不過需要注意的一點(diǎn)是
這個(gè)路徑里面保存了當(dāng)前文件的文件名
如果你只是需要路徑的話還需要自己操作一下
main(int a,char *c[])
{
char s[100];
int i;
//把路徑保存到字符串s里
strcpy(s,c[0]);
for(i=strlen(s); i0 ; i--)
if( s[i] == '\\')
{
s[i]='\0';
break;
}
//找到最后一個(gè) \ 并刪除之后的內(nèi)容
//最后輸出的s,就是當(dāng)前文件的路徑了
puts(s);
}
分享文章:c語(yǔ)言獲取函數(shù)調(diào)用路徑 c語(yǔ)言獲取函數(shù)地址
標(biāo)題來源:http://ef60e0e.cn/article/docsepg.html