❶ c語言編寫程序後,為什麼執行時自動關閉
出現這種情況與溢出造成的有關 ,可以設置斷點觀察下,在哪裡自動關閉。常見的容易溢出的原因是第一個是數組下標越界,第二個是除數為0當然還有其他的。
常見的原因因為程序沒有設置暫停,運行完了之後,就自動關閉。可以在程序最後加上getchar();或者 system(pause)。實現程序暫停的效果。
pause是cmd中的一個命令,通過system函數調用執行。這樣程序會在執行這個之後結束,換句話說就是按任意鍵退出,而不會直接退出。
(1)c語言工作空間關閉擴展閱讀
圓周長的程序的源代碼如下
#include<stdio.h>
#define PI 3.14void main()
{
float r; //半徑
float c;//周長printf("請輸入半徑:");
scanf("%f",&r);
c = 2 * PI * r;
printf("圓的周長為:%f ", c);
}
❷ 怎麼用C語言寫一個關閉後台某進程的程序
//kill進程from名字
BOOL KillProcessFromName(LPCSTR lpProcessName)
{
//創建進程快照(TH32CS_SNAPPROCESS表示創建所有進程的快照)
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
//PROCESSENTRY32進程快照的結構體
PROCESSENTRY32 pe;
//實例化後使用Process32First獲取第一個快照的進程前必做的初始化操作
pe.dwSize = sizeof(PROCESSENTRY32);
//下面的IF效果同:
//if(hProcessSnap == INVALID_HANDLE_VALUE) 無效的句柄
if(!Process32First(hSnapShot,&pe))
{
return FALSE;
}
CString strProcessName = lpProcessName;
//將字元串轉換為小寫
strProcessName.MakeLower();
//如果句柄有效 則一直獲取下一個句柄循環下去
while (Process32Next(hSnapShot,&pe))
{
//pe.szExeFile獲取當前進程的可執行文件名稱
CString scTmp = pe.szExeFile;
//將可執行文件名稱所有英文字母修改為小寫
scTmp.MakeLower();
//比較當前進程的可執行文件名稱和傳遞進來的文件名稱是否相同
//相同的話Compare返回0
if(!scTmp.Compare(strProcessName))
{
//從快照進程中獲取該進程的PID(即任務管理器中的PID)
DWORD dwProcessID = pe.th32ProcessID;
HANDLE hProcess = ::OpenProcess(PROCESS_TERMINATE,FALSE,dwProcessID);
::TerminateProcess(hProcess,0);
CloseHandle(hProcess);
return TRUE;
}
scTmp.ReleaseBuffer();
}
strProcessName.ReleaseBuffer();
return FALSE;
}
以殺死qq程序為例,我們可以通過下列方式:
KillProcessFromName("qq.exe");
❸ 為什麼C語言會出現文件關閉失敗的情況
C語言關閉文件用int fclose(FILE* fp)函數,可能有多種失敗原因。
1、錯誤的參數。傳遞給fclose的參數不是來自fopen、freopen或者tmpfile函數返回的正確文件指針。如果用上述三個函數打開文件不成功而不檢查返回的文件指針是否正確,甚至沒有給文件指針賦值,最後再傳給fclose的時候也會關閉文件失敗。
2、重復關閉文件。如果在前面的執行流程的某個分支里把文件已經關閉了,在後面重復執行fclose關閉這個文件,也導致關閉失敗。
3、磁碟空間滿或者磁碟故障。在寫文件過程中,文件內容並沒有真正存入磁碟空間,而是保留在緩沖區中,以便提高訪問速度。到關閉文件時,系統要把緩沖區中的數據真正寫入到磁碟上,如果磁碟空間滿了或者磁碟有故障,關閉文件就會失敗。
4、設備文件異常。C語言支持操作系統把各種設備虛擬成的設備文件。關閉這些設備文件時,如果設備異常(比如設備斷開了),關閉文件也可能會失敗。
❹ C語言如何關閉應用程序的窗口
可以使用system + taskkill來關閉進程。
例如:
system("taskkill -f -im qq.exe"); //調用system函數,使用dos當中的taskkill命令關閉qq進程。windows操作系統下system () 函數。
函數名: system
功 能: 發出一個DOS命令
用 法: int system(char *command);
system函數已經被收錄在標准c庫stdlib.h中,可以直接調用。在DOS中,taskkill是用來終止進程的。
具體的命令規則如下:
TASKKILL [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]
描述:一個或多個任務或進程結束。 可以按進程 ID 或圖像名結束進程。
❺ 關於C語言關閉窗口的問題
#include<stdio.h>
#include<stdlib.h>
intmain()
{
charm='a';
do{
printf("%c",m);
system("pause");
system("exit");//主要是這里
}
while(!m)
;
return0;
}
在IDE里永遠不會關閉,生成exe再運行就可以了
❻ c語言軟體中,左邊的方框關閉了如何打開,如圖斜線所視,謝謝啦
圖呢 選加斜線單元格輸入文字文字比姓名 績雙擊單元格選姓名——右鍵——設置單元格格式——字體——勾選標——確定 同理選績——右鍵——設置單元格格式——字體——勾選標(掉標)——確定 設置字體些加字型大小即圖 圖" class="illustration_alink"
❼ c語言怎麼關閉正在運行的應用程序
可以通過system 函數,調用dos命令taskkill實現關閉正在運行的應用程序。
如
system("taskkill /im notepad.exe");
會關閉記事本應用。
system("taskkill \F /pid 1234 \T");
會強制結束pid為1234的進程及其子進程。
關於taskkill的詳細描述如下:
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]
參數列表:
/S system 指定要連接到的遠程系統。
/U [domain\]user 指定應該在哪個用戶上下文
執行這個命令。
/P [password] 為提供的用戶上下文指定密碼。如果忽略,提示輸入。
/F 指定要強行終止的進程。
/FI filter 指定篩選進或篩選出查詢的的任務。
/PID process id 指定要終止的進程的PID。
/IM image name 指定要終止的進程的圖像名。通配符 '*'可用來指定所有圖像名。
/T Tree kill: 終止指定的進程和任何由此啟動的子進程。
/? 顯示幫助/用法。
篩選器:
篩選器名 有效運算符 有效值
----------- --------------- --------------
STATUS eq, ne 運行 | 沒有響應
IMAGENAME eq, ne 圖像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 會話編號
CPUTIME eq, ne, gt, lt, ge, le CPU 時間,格式為
hh:mm:ss。
hh - 時,
mm - 鍾,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 內存使用,單位為 KB
USERNAME eq, ne 用戶名,格式為
[domain\]user
MODULES eq, ne DLL 名
SERVICES eq, ne 服務名
WINDOWTITLE eq, ne 窗口標題
注意: 只有帶有篩選器的情況下,才能跟 /IM 切換使用通配符 '*'。
注意: 遠程進程總是要強行終止,
不管是否指定了 /F 選項。
❽ 用VC如何編譯多個單獨的C程序!
在同一工程中加.cpp文件即可
比如你的工程中有兩個.cpp文件(如圖)(PS:用VC6可能按「添加文件到工程」時會崩潰,你可看網頁鏈接)
注意,調用其它.cpp的函數時到先聲明該函數
❾ C語言的程序用任務管理器關不掉怎麼辦
任務管理器 不要選應用程序那欄,死掉的程序結束不掉很正常。要選擇進程,比如找到aaaaaa.exe,把它結束掉
❿ C語言中有些程序的運行窗口沒有辦法關閉,用windows任務管理器也沒有辦法關閉,什麼原因,怎樣關閉
我也遇到過,只有重啟。。。不過我是用turboc寫的時候才出現的,vc++並沒有出現過,或許是軟體的問題,建議用dev-c++、win-tc之類的編譯器!挺好用的
-物聯網校企聯盟技術部