第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

scanf中的空間是什么意思?

scanf中的空間是什么意思?

C
繁花如伊 2019-09-26 14:43:54
scanf中的空間是什么意思?#include <stdio.h>int main(int argc, char* argv[]) {   char c;   scanf(" %c", &c);   printf("%c\n", c);   return 0;}[root@test]# ./scanf  a a[root@test]# ./scanf   h h空間是否存在似乎總是匹配的,為什么?
查看完整描述

3 回答

?
大話西游666

TA貢獻1817條經(jīng)驗 獲得超14個贊

%c不會像數(shù)字格式說明符那樣跳過空格字符。因此,如果您使用:

#include<stdio.h>int main(int argc, char* argv[]){
  char c;
  scanf("%c", &c);
  printf("%c\n", c);
  scanf("%c", &c); // Try running with and without space
  printf("%c\n", c);
  return 0;}

輸入緩沖區(qū)中的前一個空格字符很有可能會在第二個scanf中被占用,并且您將沒有機會鍵入。%c之前的空格將使scanf跳過輸入緩沖區(qū)中存在的任何空白字符,以便您能夠正確輸入輸入。有時,為了達到人們寫的相同效果:

fflush(stdin);scanf("%c" &c);

但這被認為是非常糟糕的編程,因為C標準指定fflush(stdin)的行為未定義。因此,請始終在格式字符串中使用空格,除非您也有特殊原因要捕獲空格。


查看完整回答
反對 回復 2019-09-26
?
白衣染霜花

TA貢獻1796條經(jīng)驗 獲得超10個贊

空間scanf格式的意思是“跳過所有空白”從當前位置。由于大多數(shù)scanf格式說明符在嘗試讀取任何內(nèi)容之前已經(jīng)跳過了所有空格,因此scanf大多數(shù)時間都不會在格式中使用空格。但是,當您使用不忽略空格的格式說明符時,在必要時(強制跳過)在格式中包含空格可能是有意義的。

不忽略空格的說明符是c [n。因此,在這些說明符之一之前指定一個空格會有所不同。否則,它沒有任何區(qū)別。在您的特定示例中,空白被特別忽略,因為您使用了scanf格式的空格(因為您正在使用%c)。嘗試刪除空間,然后看看會發(fā)生什么。


查看完整回答
反對 回復 2019-09-26
?
幕布斯7119047

TA貢獻1794條經(jīng)驗 獲得超8個贊

scanf文檔說:

由一個或多個空格字符組成的指令應通過讀取輸入來執(zhí)行,直到無法再讀取有效輸入為止,或者直到第一個非空格字符的字節(jié)仍未讀取。

并且

除非轉(zhuǎn)換規(guī)范包括[,c,C或n轉(zhuǎn)換說明符,否則應跳過輸入的空白字符(由isspace指定)。

這意味著需要使用格式字符串中的空格。但是,如果要讀取整數(shù),則該空間將是多余的:

/* equivalent statements */scanf(" %d %d %d", &v1, &v2, &v3);scanf("%d%d%d", &v1, &v2, &v3);


查看完整回答
反對 回復 2019-09-26
  • 3 回答
  • 0 關注
  • 601 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號