Code/C, C++

scanf 대신 fread 사용 시 참고

Segel 2022. 3. 26. 09:43
  • scanf는 null terminate를 해 주고 그만큼의 추가 공간이 필요
  • fread는 null terminate를 해 주지 않음 -> 배열이나 할당된 공간의 초기화 또는 직접 null terminate 필요
  • scanf("%[^\n]", str)으로 \n 문자를 입력받지 않을 수 있음
  • fread는 \n까지 읽어옴

 

// 100 글자 입력
char str[102] = {}; // null terminate를 위해 +1
int len = fread(str, sizeof(*str), sizeof(str) - 2, stdin);
str[--len] = 0; //\n 무시

for (int i = 0; i < len; i++)
...

 

반응형

'Code > C, C++' 카테고리의 다른 글

가위바위보  (0) 2021.11.21
VS2019 C/C++ IntelliSense 설정  (0) 2021.04.17
malloc() 결과값의 캐스팅  (0) 2020.11.27