(개초보 주의)
보고 있는 책에서는 gcc를 가정하고 설명하며 fgets()를 사용하면 입력받은 문자만 입력이 됨.
근데 vs에서 같은 코드로 제대로 실행이 안되서 알고보니 끝에 \\n문자가 같이 들어감.
그래서 모든 문자를 확인해 보려고
int main()
{
char word[20];
int i;
fgets(word, 20, stdin);
size_t ln = strlen(word);
printf("length of %s: %d ", word, ln);
for (i = 0; i < ln; i++)
{
printf("%s ", word[i]);
}
return 0;
}
이렇게 하니 알수없는 에러로 종료가 돼서 검색해보니,
%s: 포인터가 들어감. 문자의 마지막이 반드시 '\\0'이어야 함.
%c: 문자 자체가 들어감
그래서 문자하나를 출력할때는 %c를 쓰거나 %.1s를 쓸 수 있음
아무튼 뒷 \\n를 제거하려면
size_t ln = strlen(word);
if (word[ln] == 10)
word[ln] = 0;
이렇게 하면 될것같읍니다
아니면 fgets()에 \\n이 안들어가게 하는 방법은 없나요?
댓글 0