2010-08-12 2 views
2

내가 1-10이 C 프로그램이 이스케이프 처리 된 백 슬래시를 선택하지 않는 이유는 무엇입니까?

\t 각 탭을 대체 출력에 입력을 복사하는 프로그램을 작성 K & R의 운동을하고 있어요 \b하여 각 백 스페이스와 \\하여 각 슬래시. 이렇게하면 탭과 백 스페이스를 모호하지 않게 볼 수 있습니다. 나는이 함께했다

... 어떤 이유

#include <stdio.h> 

int main() { 

    int c; 
    printf("\n"); // For readability 

    while ((c = getchar()) != EOF) { 

     switch (c) { 
      case '\t': 
       printf("\\t"); 
       break; 
      case '\b': 
       printf("\\b"); 
      case '\\': 
       printf("\\"); 
       break; 
      default: 
       printf("%c", c); 
       break; 
     } 

    } 

} 

, 그것은 백 슬래시를 터치 거부합니다. 예를 들어, Hello how\ are you?과 같이 문자열을 입력하면 프로그램의 출력은 Hello\thow\ are you?입니다. 즉, 탭을 OK로 변환하지만 백 슬래시는 변환하지 않았습니다.

내가 잘못 했나요?

+4

적어도 숙제가 먼저되는지 물어봐도 될까요? 그들의 질문이 숙제 일 뿐이라고 응답 한 수많은 사람들이 있습니다. 나는 우리가 확실하다면 그들에게 표를 붙이기위한 것이지만 확인하지는 않습니다. 그리고, 누군가 그것에 대해 거짓말을한다면, 힘들어! 그들은 표절에 대한 이러한 사이트를 모니터링하지 않는 교육자가 교육을해서는 안되기 때문에 그들이 일을 할 때 실패 할 것입니다. – paxdiablo

+0

모든 교육 담당자는 마킹 전에 설정 한 모든 질문에 대해 인터넷을 확인해야합니까? 나는 구름 멍청한 땅에서 깨어 났습니까? 아마도 그들은 각 학생의 답변을 Google에 붙여 넣기 만하면됩니다. 그럴 수도 있습니다. –

답변

5

당신은 아마 printf("\\\\"); 원하는을 대신 바로 printf("\\");입니다.

+1

힌트 : 숙제를위한 해결책을 게시하지 마십시오. –

+1

@Aaron : 저는 15K 대표 SO 사용자가 숙제로 질문을 붙이면 좋을 것입니다. – adamk

+6

이것은 숙제를위한 해결책이 아닙니다. 우리는 OP가 많은 일을 해낸 이래로 우리가 도울 수있는 작은 세부 사항입니다. 숙제가 "왜이 C 프로그램이 이스케이프 처리 된 백 슬래시를 선택하지 않는가?" 이 경우 나는 미래에 IT 산업에 대한 두려움을 :-) 그 위에, HW 태그는 다른 사람에 의해 추가되었습니다. – paxdiablo

2

백 슬래시 을 이스케이프해야합니다.

현재 당신은 백 슬래시를 인쇄하고 - 여기 당신이 그렇지 않으면 닫는 따옴표 탈출 할 두 번째 백 슬래시 탈출하고 있습니다 :

printf("\\"); 
2

사용 printf("\\\\")

+0

힌트 : 숙제를위한 해결책을 게시하지 마십시오. –

+0

숙제 일지라도이 경우에는 괜찮습니다. 그는 작업 코드를 붙여서 문제를 직접 해결하기 위해 노력했다고 밝혔습니다. – zvrba

2

소스에서 \\을 발견했을 때 C 컴파일러는 무엇을합니까?

+3

힌트 : 비 숙제에 대해 막연하지 마십시오 :-) {그냥 미묘한 잽, 제발 그만둬주세요}. – paxdiablo

관련 문제