scanf 로는 string 객체를 인자로 받지 못하지 않을까요?
참고로 sync_with_stdio(false)와 cin.tie(NULL)을 한 상태의 cin이 scanf보다 빠릅니다.
char s[30];
scanf("%s", s);
s가 지역 변수라면, 배열 안의 내용은 초기화가 안 되어 있습니다.
따라서, AAA를 입력받았다면 s의 내용은 'A', 'A', 'A', '\0', 그 이후로는 모두 값을 알 수 없는 상태가 됩니다.
s가 전역 변수라면, 모든 내용이 0으로 초기화가 되어 있으므로 나머지 부분에도 모두 '\0'이 들어가 있습니다.
동적으로 쓰려면, 우선 큰 배열에 입력받아놓고 그 길이를 strlen으로 조사해서 다시 그 크기만큼을 다른 포인터에 동적할당한 다음 strcpy로 복사하는 방법이 있겠죠.
댓글을 작성하려면 로그인해야 합니다.
his130 6년 전
string s;
//cin >> s;
scanf("%s", s);
calc(s);
평소에 cin,cout 을 쓰다가 속도 때문에 scanf 로 바꾸려고 하는데요..
cin 은 오류가 안 나는데
scanf 왜 저렇게 쓰면 오류가 나는 건가요?