1. c語言中函數退出的問題
如果是你malloc開辟的,就需要手動釋放空間。
2. 請問C語言 在void函數里怎麼退出呢
1、直接使用return;語句就可以了。void類型函數只是沒有返回值,不代表不能使用return返回。
2、return表示中止當前函數的運行,並將操作權返回給調用者。如果是在main函數中,表示將操作權返回給操作系統。return 不是必須要返回一個值。當然,就算不寫return,在函數執行完畢後也會返回操作權給調用者。寫return是一種清晰的風格,可以防止一些意外的錯誤。
常式:
voidfunc(void){
......
......
return;
}
3. C語言怎麼按任意鍵退出
C語言中可以使用函數system()、getch()實現按鍵退出。
1、直接調用系統函數
system(「pause」):
system()會調用fork()產生子進程,
由子進程來調用/bin/sh-c
string
來執行參數string
字元串所代表的命令,
此命令執行完後隨即返回原調用的進程。
system(「pause」)可以實現凍結屏幕,便於觀察程序的執行結果。
2、調用getch()函數:
此函數是一個不回顯函數,當用戶按下某個字元時,函數自動讀取,無需按回車,需要include
(3)c語言退出擴展閱讀
一、使用getch函數設置退出
所在頭文件:conio.h。
函數用途:從控制台讀取一個字元,但不顯示在屏幕上。
函數原型:intgetch(void);
返回值:讀取的字元。
二、打開文件的操作通過標准庫函數
fopen
函數
fopen
的第二個參數指定了文件的訪問模式,訪問模式決定了流所許可的輸入和輸出操作。對訪問模式字元串的許可值有嚴格的限制。
該字元串的第一個字元只能為三種形式:r(read)、w(write)或者
a(append)。另可加字元b表示以二進制方式打開文件。
4. C語言如何退出函數
方法一:
main()函數寫成int型的,即int main()
然後結束的時候
只需return 0;
代表程序正常結束
方法二:
利用
if(條件)
exit();
if語句條件滿足時退出程序。
5. C語言中退出for循環的方法
可以用關鍵字break來退出for循環。
具體使用方法可以參考下例:
inti;
inta[5]={0,0,0,0,0};
for(i=0;i<5;i++)
{
a[i]=i;
if(i==3)
break;//當i=3時,退出for循環
}
//以上程序執行完後,數組a的值為0,1,2,0,0
6. C語言怎麼退出while循環
while
是一個循環體,退出循環體的方法有:
①
循環體條件
不成立,如:while(
a>0);
當
a≤0
的時候,條件
a>0不成立,while
循環結束,退出
while
循環。
②在循環體內使用無條件跳出語句(break),如
while(1){if(b>5)break;}當
b>5
的時候,程序執行
break
,跳出
while
循環體,循環體被結束。
③在循環體內使用
函數返回
語句(return),如
while(1){if(c>8)
return
(XXX);},當
c>8的時候,程序執行
return,退出函數返回到上級函數。其中
返回值
XXX
需要根據
函數類型進行返回,如
int
型函數
int
fun(),XXX
應為
int型,空返回值函數
void
fun(),XXX
可以省略。
7. c語言中強制退出語句是什麼啊
區分應用環境及功能,有以下幾種:
1 強制退出整個程序。
可以調用exit()函數。
調用該函數需要引用頭文件stdlib.h。
該函數需要一個int型的參數,用來把執行結果返回給主調進程。
比如exit(0)相當於在主函數中返回0, exit(-1)相當於在主函數中返回-1等。
2 強制退出循環。
在循環中可以通過調用break語句來實現強制跳出循環。
3 強制退出函數。
在任意函數中,均可調用return語句實現強制退出函數。如果是在主函數main中,使用return也可以做到強制退出整個程序。
8. 用c語言怎樣添加暫停和退出
getchar();
getchar 的用途是從從標准輸入流讀取一個字元,讀回車符時退出
getchar();永遠只向緩存中輸入一個字元,
getchar();的用法很多;
一種就是清空回車符 這種情況一般發生在在循環中涉及到輸入的情況
還有一種是某些編譯平台(IDE)在運行程序時並沒有在程序運行後給人看結果的時間 這時候 在程序最後加上getchar()就能造成程序的暫停 給程序員度結果的機會
用getchar時,在鍵盤上按一個字元後,要按回車才能讀取進去;用getch時,在鍵盤上按一個字元馬上就被讀取進去,不用按回車,因此可以作為「按任意鍵繼續」的執行語句。
system("pause");
使用它得加個頭文件#include<stdlib.h>
system就是調用從程序中調用系統命令(和shell命令)。
system("pause")就是從程序里調用「pause」命令;
而「pause」這個系統命令的功能很簡單,就是在命令行上輸出一行類似於「Press any key to exit」的字,等待用戶按一個鍵,然後返回
9. C語言中如何實現按任意鍵退出
直接調用系統函數 system("pause")即可:
system()會調用fork()產生子進程, 由子進程來調用/bin/sh-c string 來執行參數string 字元串所代表的命令, 此命令執行完後隨即返回原調用的進程。
system("pause")可以實現凍結屏幕,便於觀察程序的執行結果。
(9)c語言退出擴展閱讀:
C語言參考函數:
C語言isupper()函數:判斷一個字元是否是大寫字母
C語言isspace()函數:判斷一個字元是否是空白符
C語言isprint()函數:判斷一個字元是否是可列印字元
C語言islower()函數:判斷一個字元是否是小寫字母
C語言labs()函數:求整數的絕對值(針對long類型)
10. c語言退出問題
你的要求只有一個辦法可以實現,那就是信號。編寫信號程序需要一定的基礎,不知道你有沒有這個基礎。
如果你有了基礎,那看下我下面的例子,很簡單的例子,注釋也很詳細,如果你對信號一無所知,那我就沒轍了,除了信號我想不到其它辦法幫你完成這個東西。樓上幾位的ctrl+c其實就是一個信號,但那個是採用系統默認的信號,並不是自己定義的。
下面的例子採用了linux系統調用的內容,在windows下不能運行,如果你想跨平台,建議你看看C語言庫函數中的信號章節。
信號接收程序
#include "stdio.h"
#include "signal.h"
#include "sys/types.h"
#include "unistd.h"
void new_op(int, siginfo_t *, void *);
int main(int argc, char**argv) {
struct sigaction act; //用於創建新信號
struct sigaction old_act; //舊的信號
int sig;
sig = atoi(argv[1]); //第一個參數變成信號的標志,以15做第一個參數,因為信號個數有限制,且某些信號是不能從載的,例如9號信號
sigemptyset(&act.sa_mask);
act.sa_flags = SA_SIGINFO;
act.sa_sigaction = new_op; //新的信號定義的操作是new_op函數
if(sigaction(sig, &act, &old_act) < 0) { //開始從載信號
printf("install sigal error\n");
return 1;
}
while(1) {
sleep(2);
printf("Now we wait for signal\n");//信號安裝完畢,應用程序就可以自己開始執行
}
}
void new_op(int signum, siginfo_t * info, void * myact) {//信號制定的函數
printf("recive signal %d\n", signum);
exit(1);//退出
}
信號發送程序
#include "stdio.h"
#include "sys/types.h"
int main(int argc, char ** argv) {
pid_t sig = atoi(argv[1]); //進程PID標識號做第一個參數
printf("we send sig to %d\n", sig);
sigqueue(sig, 15, NULL); //15號信號發送,如果你安裝的不是15號,就指定安裝的信號
}
程序不要在windows下編譯,是通過不了的,因為我用的是linux系統調用。不過原理差不多了,換成C庫函數實現不是很難,但我賴的去看C庫函數關於信號的章節。
以上是源代碼,如果沒看懂,稍微看下我下面介紹的原理
原理:每個進程都有自己的信號表,信號是軟體對硬體中斷的一種模擬,他大致過程是這樣的,進程安裝好信號表後,會在特定的時間去檢查自己是否有信號要相應(根據不同的操作系統可能不同),在linux下,進程每次由中斷現場返回到用戶空間時候都會檢查自己是否有信號要響應,有的話就執行自己制定的操作,ctrl+c就是採用了默認的信號相應和kill 進程PID相似。
只能介紹這么多了,因為信號是個比較多的內容。僅僅是個回帖不能介紹太多,你自己去查相關的章節就能弄明白。