2013-04-10 71 views
0

我有2個問題。字符數組到整數

在這裏,在C++參考

#include <stdio.h> 

int main() 
{ 
    char sentence []="Rudolph is 12 years old"; 
    char str [20]; 
    int i; 

    sscanf (sentence,"%s %*s %d",str,&i); <--- 
    printf ("%s -> %d\n",str,i); 

    return 0; 
} 

問題1.到底是什麼%* S在做什麼?

我的程序我在建立一個哈希表。

它查詢在

q- quit 
i <int> - inserts integer //must be on same line 
d <int> - deletes integer //must be on same line 
etc.... 

For example: 

in order to insert "35" I would have to type: 

i 35 

問題2.用戶或者類型將在C++以來「Q」兩者「Q」和「我35」參考工作具有與它沒有整數?

char choice[10]; 
char option; 
int i; 

sscanf(choice, "%c %d", &option, &i); 

將這工作如果 'Q' 被輸入(沒有整數附後)以及在 「i 35」 被輸入(W /整數附後)?

回答

2

這意味着它應該從流中跳過該類型。因此,例如,輸入流是:

"Rudolph is 12 years old" 

第一%s將捕獲"Rudolph",所述%*s將「讀出,但忽略」 "is"(即,不將其存儲在一個變量中),然後將%d將讀取並捕獲12

我不太清楚你的第二個問題是什麼意思。我相信你問的是"%s %*s %d"格式將與輸入中的"q"一起工作。在這種情況下,您應該使用不同的格式,例如"%s""%c"作爲單個字符。

作爲對您更新的問題的迴應,您可以輕鬆地嘗試並查看。在我的測試中,它的輸入爲"q"sscanf離開int單獨但在"q"中讀取。

+0

我會編輯我的帖子,使其更清晰 – juice 2013-04-10 23:51:44

+0

已更新的答案。 – 2013-04-11 00:01:27