2015-11-07 42 views
1

我試圖將scanf算術操作數轉換爲變量。我想把「+」放入變量中。我嘗試了我找到的所有東西,但迄今沒有任何工作。我最喜歡的是:掃描算術操作數c並將它們與字符串進行比較

char plus = "+"; 
char* c; 
scanf("%c", &c); 
if (strcmp(plus, c) == 0) { 
    printf("you have + in variable"); 

但這不起作用。看起來「+」沒有進入變量plus,也沒有使用scanf掃描到變量中。這有什麼竅門嗎?

回答

4

有多個錯誤在那裏:

  • 聲明一個字符加上你有char*(而不是char)初始化。
  • scanf%c需要一個char*但您提供char**
  • 你是一個在strcmp

char*如果您正在處理單個字符運營商有沒有必要做的事情更復雜的比較一個char比他們:

char plus = '+'; 
char c; 
scanf("%c",&c); 

if(plus == c) 
    printf("you have + in variable"); 
+0

IM掃描它旁邊數,如果我把+ 100到CON唯一/ scanf程序等待並且什麼都不做,我該如何解決它? (scanf(「%c%d」,&c,&last)!= 2 || last <0)printf(「fail \ n」); return 1; }; 當我把+ 100或-100時觸發,但是當我把突出100它不會被觸發... – Darlyn

+1

^^^這是一個不同的問題。傑克已經很好地回答了你原來的問題,你應該接受它。 –