2016-10-15 4 views
0

私は、特定の番号にメッセージ表示する文字列(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;} 

を表示するCで書かれたこのコードを持っているが、私は、入力中の文字列または文字を入力すると、それは私を与えますナンセンスの数字がたくさんあります。数字の代わりにデフォルトで入力した文字列を表示する方法はありますか?

EDIT: 入力

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++の部分を編集しました。 –