c語言中文字結束符號怎麼輸入,c語言的語句結束標誌是什麼

2021-03-17 09:46:12 字數 5426 閱讀 9861

1樓:匿名使用者

字串結束符是'\0'

文字結束符是eof

所以lz應該用的是eof作為讀取文字的結束

2樓:湛藍水晶

windows下是ctrl+z

unix下是ctrl+d

c語言的語句結束標誌是什麼

3樓:**ile灬微光丶

c語言的語句結束標誌是分號。在c語言中分號「;」用於結束一個語句,就如同平日常用的句號「。」作用一樣。

c程式是由c語言寫的,能完成特定功能的一套完整的指令。組成這些指令的基本元素,稱為語句。一個c程式必須要有標頭檔案、一個主程式,主程式必須要以『』結尾。

兩者之間是語句文字。每行語句必須以『;』分號結尾。注意,所有標點必須用英文標點,如果用中文標點的話,程式會報錯。

程式中有時候會有雙斜線『//』,這是單行註釋符,它的右邊的語句僅僅起註釋作用,不會被執行;

此外,還有多行註釋符『/*』和『*/』,這兩個符號中間的內容不會被執行。

擴充套件資料

c語言 while(表示式)後面是沒有分號的,如果不小心加上分號,系統也不會出現編譯錯誤,但是程式卻會不停的執行空操作,形成空迴圈體,無法執行「while(表示式);」後面的程式,得不到預計的效果。例如,在累加求和的程式中while迴圈加上分號產生錯誤。

在do…while迴圈語句中while後面是有分號的,與普通的語句一樣,這個分號是用來結束語句的。如果遺漏了這個分號,程式不會通過編譯進而產生錯誤。

因此,在用do…while迴圈語句時,不要忘記在while的後面加上分號,即使忘記了,編譯器也會有所提示,而不會產生不可預見的錯誤。

注意:分號在do…while語句中代表一條語句的結束,並不代表迴圈體的結束。

4樓:風若遠去何人留

c語言中語句結束標誌為分號,且必須是英文半形下的分號,即『;』。

在c中,函式是作為最小功能單元出現的,而函式是有語句組成了。

一句語句是否結束,並不會因為換行,空行等的出現而確定,而是隻根據分號來判斷。分號是c語言中唯一的語句結束標誌。

比如判斷語句

if(expr)

printf("test\n");

其中printf("test\n");可以認為是一條完整的輸出語句。加上判斷後,不能說if(expr)是一條判斷語句,而是整體成為一條完整的判斷語句。

c語言中什麼符號作為語句的結束符

5樓:匿名使用者

c語言中,是以;(分號)作為語句的結束符的。

舉個栗子:

int main()

6樓:物理公司的

c語言中分好";"作為語句的結束符;

7樓:化魂符

"\0"是標準的語句結束符

c語言沒有結束標誌的輸入問題

8樓:匿名使用者

scanf的用法

1.scanf函式的一般形式scanf(格式控制,地址表列)

int scanf(char *format[,argument,...]);

「格式控制」的含義同printf函式;「地址表列」是由若干個地址組成的表列,可以是變數的地址,或字串首地址。

scanf()函式返回成功賦值的資料項數,出錯時則返回eof。

例題 scanf函式輸入資料。

#include

void main()

格式字元 說明

%a 讀入一個浮點值(僅c99有效)

%a 同上

%c 讀入一個字元

%d 讀入十進位制整數

%i 讀入十進位制,八進位制,十六進位制整數

%o 讀入八進位制整數

%x 讀入十六進位制整數

%x 同上

%c 讀入一個字元

%s 讀入一個字串

%f 讀入一個浮點數

%f 同上

%e 同上

%e 同上

%g 同上

%g 同上

%p 讀入一個指標

%u 讀入一個無符號十進位制整數

%n 至此已讀入值的等價字元數

% 掃描字符集合

%% 讀%符號

附加格式說明字元表修飾符 說明l/l 長度修飾符 輸入"長"資料

h 長度修飾符 輸入"短"資料

w 整型常數 指定輸入資料所佔寬度

* 星號 空讀一個資料

hh,ll同上h,l但僅對c99有效。

(b) 空白字元空白字元會使scanf()函式在讀操作中略去輸入中的一個或多個空白字元,空白符可以是space,tab,newline等等,直到第一個非 空白符出現為止。

(c) 非空白字元一個非空白字元會使scanf()函式在讀入時剔除掉與這個非空白字元相同的字元。

注:scanf()控制串知識就介紹到這裡(應該比較齊全了^_^),如有遺漏下次補上。下面將結合實際例程,一一闡述.

三、 scanf()函式的控制串的使用例

1.#include "stdio.h"

int main(void)

執行時按如下方式輸入三個值:3□4□5 ↙(輸入a,b,c的值)3,4,5 (printf輸出的a,b,c的值) (1) &a、&b、&c中的&是地址運算子,分別獲得這三個變數的記憶體地址。

(2) "%d%d%d"是按十進值格式輸入三個數值。輸入時,在兩個資料之間可以用一個或多個空格、tab鍵、回車鍵分隔。

以下是合法輸入方式:

① 3□□4□□□□5↙

② 3↙

4□5↙

③ 3(tab鍵)4↙

5↙例2.#include "stdio.h"

int main(void)

執行時按如下方式輸入三個值:3,4,5 ↙(輸入a,b,c的值)或者3,□4,□5 ↙(輸入a,b,c的值)3,□□□4,□5 ↙(輸入a,b,c的值)

......

都是合法的,但是","一定要跟在數字後面,如:

3□,4,□5 ↙就非法了,程式出錯。(解決方法與原因後面講)再如:1、sa**f()中的變數必須使用地址。 int a, b;

scanf("%d%d",a,b); //錯誤

scanf("%d%d",&a,&b);2、scanf()的格式控制串可以使用其它非空白字元,但在輸入時必須輸入這些字元。例:

scanf("%d,%d",&a,&b);

輸入: 3,4 ↙(逗號與"%d,%d"中的逗號對應)

scanf("a=%d,b=%d",&a,&b);

輸入: a=3,b=4 ↙("a=","b=",逗號與"%d,%d"中的"a=","b="及逗號對應)

3、在用"%c"輸入時,空格和「轉義字元」均作為有效字元。例:

scanf("%c%c%c",&c1,&c2,&c3);

輸入:a□b□c↙

結果:a→c1,□→c2,b→c3 (其餘被丟棄)

scanf()函式接收輸入資料時,遇以下情況結束一個資料的輸入:(不是結束該scanf函式,scanf函式僅在每一個資料域均有資料,並按回車後結束)。

① 遇空格、「回車」、「跳格」鍵。

② 遇寬度結束。

③ 遇非法輸入。問題二:scanf()函式不能正確接受有空格的字串?

如: i love you!

#include

int main()

輸入:i live you!

輸出:i scanf()函式接收輸入資料時,遇以下情況結束一個資料的輸入:(不是結束該scanf函式,scanf函式僅在每一個資料域均有資料,並按回車後結束)。

① 遇空格、「回車」、「跳格」鍵。

② 遇寬度結束。

③ 遇非法輸入。所以,上述程式並不能達到預期目的,scanf()掃描到"i"後面的空格就認為對str的賦值結束,並忽略後面的"love you!".

這裡要注意是"love you!"還在鍵盤緩衝區(關於這個問題,網上我所見的說法都是如此,但是,我經過除錯發現,其實這時緩衝區字串首尾指標已經相等了,也就是說緩衝區清 空了,scanf()函式應該只是掃描stdin流,這個殘存資訊是在stdin中)。我們改動一下上面的程式來驗證一下:

#include

int main()

輸入:i love you!

輸出:i

love

you!

好了,原因知道了,那麼scanf()函式能不能完成這個任務?回答是:能!別忘了scanf()函式還有一個 % 格式控制符(如果對%不瞭解的請檢視本文的上篇),

請看下面的程式:

#include "stdio.h"

int main()

問題三:鍵盤緩衝區殘餘資訊問題

#include

int main()

while(c!='n');

} scanf("%c",&c);這句不能正常接收字元,什麼原因呢?我們用printf("c=%d\n",c);將c用int表示出來,啟用 printf("c=%d\n",c);這一句,看看scanf()函式賦給c到底是什麼,結果是 c=10 ,ascii值為10是什麼?換行即\n.

對了,我們每擊打一下"enter"鍵,向鍵盤緩衝區發去一個「回車」(\r),一個「換行"(\n),在這裡 \r被scanf()函式處理掉了(姑且這麼認為吧^_^),而\n被scanf()函式「錯誤」地賦給了c.解決辦法:可以在兩個scanf()函式之 後加個fflush(stdin);,還有加getch(); getchar();也可以,但是要視具體scanf()語句加那個,這裡就不分析了,讀者自己去摸索吧。

但是加fflush(stdin);不管什麼情 況都可行。

函式名: fflush

功 能: 清除一個流

用 法: int fflush(file *stream);#include

int main()

while(c!='n');

} 這裡再給一個用「空格符」來處理緩衝區殘餘資訊的示例:

執行出錯的程式:#include

int main()

}使用了空格控制符後:

#include

int main()

} 可以執行看看兩個程式有什麼不同。問題四 如何處理scanf()函式誤輸入造成程式死鎖或出錯?

#include

int main()

如上程式,如果正確輸入a,b的值,那麼沒什麼問題,但是,你不能保證使用者每一次都能正確 輸入,一旦輸入了錯誤的型別,你的程式不是死鎖,就是得到一個錯誤的結果,呵呵,這可能所有人都遇到過的問題吧?解決方法:scanf()函式執行成功時 的返回值是成功讀取的變數數,也就是說,你這個scanf()函式有幾個變數,如果scanf()函式全部正常讀取,它就返回幾。

但這裡還要注意另一個問 題,如果輸入了非法資料,鍵盤緩衝區就可能還個有殘餘資訊問題。

正確的例程:

#include

int main()

C語言文字結束標識問題,c語言中 文字結束符號 怎麼輸入

在c語言中,或更精確地說成c標準函式庫中表示檔案結束符 end of file 在while迴圈中以eof作為檔案結束標誌,這種以eof作為檔案結束標誌的檔案,必須是文字檔案。在文字檔案中,資料都是以字元的ascii 值的形式存放。我們知道,ascii 值的範圍是0 255,不可能出現 1,因此可以...

c語言中for迴圈怎麼理解C語言中for迴圈怎麼理解?

for迴圈是程式語言中一種開界的迴圈語句,而迴圈語句由迴圈體及迴圈的終止條件兩部分組成,for迴圈一般形式為 for 單次表示式 條件表示式 末尾迴圈體 執行的中間迴圈體可以為一個語句,也可以為多個語句,當中間迴圈體只有一個語句時,其大括號 可以省略,執行完中間迴圈體後接著執行末尾迴圈體 執行末尾迴...

C語言,我的程式為什麼執行不對,c語言中輸入一個程式後顯示無錯誤,為什麼不能執行

是陣列,本身就是地址,不必用 2 b進位制,每位上的數字最大值是b 1,因此,應該先檢視3個數各位的數字,取最大值 1作為b的最小值.3 注意,base在每次求1個數之前,要重新歸1。你求sum1,sum2,sum3前,都沒有歸1,base累積,越來越大。第一個base 1 應該在for i len...