2017-10-24 1 views
0

저는 C로 시작하는 초심자이며, 사용자로부터 세부 사항을 읽는 데 어려움이 있습니다. getDetails라는 함수가 있는데이 함수는 getDetails에 있습니다. 내가 처음이자 마지막 이름을 입력 할 수 그러나 그것은 단지 나머지를 건너 뛰고사용자로부터 트러블 정보를 받고 있습니다.

(100)로

char firstName[MAX]; 
char lastName[MAX]; 
int idIn; 
int number; 

printf("First name: "); 
scanf("%s \n", firstName); 
int len = strlen(firstName); 
firstName[len - 1] = '\0'; 

printf("Last name: "); 
scanf("%s \n", lastName); 
int len2 = strlen(lastName); 
lastName[len2 - 1] = '\0'; 

printf("ID: "); 
scanf("%d \n", &idIn); 
printf("Number: "); 
scanf("%d \n", &number); 

MAX가 정의됩니다. 나는 이것이 실제로 일어나는 이유를 정말로 볼 수 없다.

+1

@klutt 작업() '형식 문자열. –

+0

@klutt 나는 또한 먼저 생각했지만 코드에는 scanf ("% c")가없고 scanf 문자열에는 모두 '와'\ n '이 들어 있습니다. –

+0

'scanf'에서 "\ n"을 제거하십시오. – phoxis

답변

0

테스트와 % s`와`%의 d` 모두 공백을 선도 건너 ...하지만 여기에이 코드는 scanf`에 대한 완전한 cluelessness를 보여줍니다 ', 정확히 파인

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

int main() 
{ 
    char arr[100]; 
    char rra[100]; 
    int idIn; 
    int number; 

    printf("First name: "); 
    scanf("%99s", arr); 
    int len = strlen(arr); 
    //firstName[len - 1] = '\0'; 

    printf("Last name: "); 
    scanf("%99s",rra); 
    int len2 = strlen(rra); 
    //lastName[len2 - 1] = '\0'; 

    printf("ID: "); 
    scanf("%d", &idIn); 
    printf("Number: "); 
    scanf("%d", &number); 
    return 0; 
} 
+1

다른 질문에 답 하시겠습니까? –

관련 문제