關於使用 scanf 輸入字串

發布 科技 2024-08-21
6個回答
  1. 匿名使用者2024-02-01

    s 和 &s 都表示位址並具有相等的值。

    S 與 &s 不同,其中 s 是 char *,s 是 char (*10),後者是指向包含 10 個字元的行的指標。

    在 scanf("%s",&s);在語句中,&s 有乙個隱式強制轉換,它等效於 scanf("%s",(char *)s);

  2. 匿名使用者2024-01-31

    它對結果沒有影響,這樣使用,當您按 f5 進行除錯時,結果不會閃爍。

  3. 匿名使用者2024-01-30

    scanf("設定字串格式"、位址表);

    有三種型別的格式化字串:

    1) 格式說明符,%c,%d...。

    2. 空格:空格字元將導致 scanf() 函式在讀取操作期間從輸入中省略乙個或多個空格字元。

    3. 非空格字元:非空格字元會導致 scanf() 函式在讀取時消除與非空格字元相同的字元。

    所以,%c前面必須有乙個空格,否則系統會在變數中輸入另乙個值後讀取你輸入的回車符,導致無限迴圈。 當然,如果 scanf("%c", &varname) 是第乙個讀取語句,因此不需要空格。

  4. 匿名使用者2024-01-29

    scanf 無法輸入字串:

    由於 scanf 函式在遇到空格、換行符或製表符時將立即結束讀取,因此鍵入 hello jane,最後只讀取 jane。

    如果發現第乙個輸入的內容,scanf 不會全部讀取,只讀取第乙個空格之前的內容,即 John,後續的 Wilson 會暫時儲存在緩衝區中,當第二個 scanf 出現時,Wilson 會自動儲存在第二個 scanf 函式的變數中, 也就是說,name2=wilson。

    因此,在列印 name2 值的末尾,它顯示 wilson。 當我們輸入 C Enter 時,scanf 從緩衝區中獲取 C 並將其交給 CH,但返回值仍在緩衝區中,並沒有將其帶走,當我們輸入字串時,它被交給 CH1,因為返回值也是乙個字元。

    如何使scanf在輸入後不換行

    輸入字元時:當 scanf 中沒有空格時:不要有空格,也不要換行,因為空格和換行符是字元。

    因此,只需輸入字元,當 scanf 中有空格時:您可以有乙個沒有換行符的空格,當您輸入數字(浮點數)時:您可以換行或空格,因為它們不是數字。

    當 scanf 中沒有逗號時:沒有逗號,否則第二個數字將變為 0,當 scanf: 中有逗號時:可以有逗號。

  5. 匿名使用者2024-01-28

    s 和 &s 都表示位址並具有相等的值。

    S 與 &s 不同,其中 s 是 char *,s 是 char (*10),後者是指向包含 10 個字元的行的指標。

    在 scanf("%s",&s);在語句中,&s 有乙個隱式強制轉換,它等效於 scanf("%s",(char *)s);

  6. 匿名使用者2024-01-27

    不。 Scanf() 是 C 語言中的輸入函式。 表單: int scanf(const char * restrict format,..

    字串的格式包含 s 中的 format 指令,用於讀取字元序列,後跟乙個 null 位元組,並遇到空格字元(t、空格等)以完成讀取。

    Scanf 在輸入字串時不會收到空格,按 Enter 和 Tab 鍵,則認為輸入結束。 scanf 函式直接從輸入緩衝區獲取資料,而不是從鍵盤(即終端)緩衝區獲取資料。 如果讀取以 Carriage return() 結尾,它將一起被讀入輸入流緩衝區,因此在第一次接受輸入後,該字元將被留下。

相關回答
12個回答2024-08-21

使用字串就是使用它的第乙個位址(有時和長度,實際上,擁有第乙個位址就足夠了),無論字串有多長。 最明顯的例子是,當乙個(常量)字串作為引數及其第乙個位址傳遞時。 所以你的比較只是位址的比較。

12個回答2024-08-21

不。。。 你還沒有弄清楚 C 語言中字串的含義。 >>>More

10個回答2024-08-21

字串"the result is %d"這是存在於記憶中的全部內容。 >>>More

13個回答2024-08-21

2樓正確解,當然也可以使用cstring類中的getat函式來獲取。

9個回答2024-08-21

#include

using namespace std; >>>More