2016-10-15 43 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++部分。 –

相关问题