所以我有以下代碼:獲得賽格故障用C
#include <stdio.h>
#include <ctype.h>
int main(void) {
char ch;
printf("Enter Phone Number: ");
ch = getchar();
while (ch != '\n') {
switch(ch) {
case 'A':
case 'B':
case 'C':
printf('2');
break;
case 'D':
case 'E':
case 'F':
printf('3');
break;
case 'G':
case 'H':
case 'I':
printf('4');
break;
case 'J':
case 'K':
case 'L':
printf('5');
break;
case 'M':
case 'N':
case 'O':
printf('6');
break;
case 'P':
case 'R':
case 'S':
printf('7');
break;
case 'T':
case 'U':
case 'V':
printf('8');
break;
case 'W':
case 'X':
case 'Y':
printf('9');
break;
default:
printf('%c', ch);
break;
}
ch = getchar();
}
}
,目標是:
input: CALLATT
output: 2255288
或
input: 1-800-COL-LECT
output: 1-800-265-5328
當我運行程序:
Enter Phone Number: CALLATT
Segmentation fault: 11
我做錯了什麼?
尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建最小,完整和可驗證示例。 – Olaf
「我做錯了什麼?」 - >您沒有完全啓用編譯器警告。正確啓用'printf('2');'會產生一個診斷,你會立即糾正它。節省您的時間。 – chux
使用'gcc -g -Wall'進行編譯,然後使用'gdb'調試器 –