2016-10-15 42 views
0

我有了這個代碼用C寫的,只是對某些號碼會顯示一條消息顯示字符串,而不是在printf的數字(C)

int main(void) { 
int a, d;  
d = scanf("%d", &a); 
switch(a){ 
    case 1: 
     printf("ml' nob:\n%d\nQapla'\nnoH QapmeH wo' Qaw'lu'chugh yay chavbe'lu' 'ej wo' choqmeH may' DoHlu'chugh lujbe'lu'.\n", a); 
     break; 
    case 2: 
     printf("ml' nob:\n%d\nQapla'\nQu' buSHa'chugh SuvwI', batlhHa' vangchugh, qoj matlhHa'chugh, pagh ghaH SuvwI''e'.\n",a); 
     break; 
    case 3: 
     printf("ml' nob:\n%d\nQapla'\nqaStaHvIS wa' ram loS SaD Hugh SIjlaH qetbogh loD.\n",a); 
     break; 
    case 4: 
     printf("ml' nob:\n%d\nQapla'\nHa'DIbaH DaSop 'e' DaHechbe'chugh yIHoHQo'.\n",a); 
     break; 
    case 5: 
     printf("ml' nob:\n%d\nQapla'\nleghlaHchu'be'chugh mIn lo'laHbe' taj jej.\n",a); 
     break; 
    default: 
     printf("ml' nob:\n%d\nluj\n", a); 
     break; 
} 
return 0;} 

但是當我輸入輸入字符串或字符它給了我很多無意義的數字。有沒有辦法顯示我輸入的字符串,而不是數字。

編輯: 輸入

abc 

輸出

What i want : abc 
What it shows: 3469312 
+4

我推薦你檢查['scanf'](http://en.cppreference.com/w/c/io/fscanf)返回的結果,即'd'的值。 –

+1

請添加一個輸入和「廢話號碼」的例子。 –

+0

當我嘗試你的程序不顯示任何廢話時, – SMW

回答

-1

試試這個..!

#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 

#include <stdio.h> 
using namespace std; 
int main(void) { 
    int a, d; 
    char str[10]; 
    scanf("%s", &str); 

    char* err = NULL; 
    a = strtol(str, &err,10); 
    if (err==NULL) //Conversion Error 
     a = -1; 

    switch((int)a){ 
    case 1: 
     printf("ml' nob:\n%d\nQapla'\nnoH QapmeH wo' Qaw'lu'chugh yay chavbe'lu' 'ej wo' choqmeH may' DoHlu'chugh lujbe'lu'.\n", a); 
     break; 
    case 2: 
     printf("ml' nob:\n%d\nQapla'\nQu' buSHa'chugh SuvwI', batlhHa' vangchugh, qoj matlhHa'chugh, pagh ghaH SuvwI''e'.\n",a); 
     break; 
    case 3: 
     printf("ml' nob:\n%d\nQapla'\nqaStaHvIS wa' ram loS SaD Hugh SIjlaH qetbogh loD.\n",a); 
     break; 
    case 4: 
     printf("ml' nob:\n%d\nQapla'\nHa'DIbaH DaSop 'e' DaHechbe'chugh yIHoHQo'.\n",a); 
     break; 
    case 5: 
     printf("ml' nob:\n%d\nQapla'\nleghlaHchu'be'chugh mIn lo'laHbe' taj jej.\n",a); 
     break; 
    default: 
     printf("ml' nob:\n%s\nluj\n", str); 
     break; 
    } 
    return 0;} 
+2

這是一個完全不同的編程語言。 –

+0

iostream默認包含在內..但是沒有一個程序代碼使用C++。我已經編輯了該C++部分。 –

相關問題