C/C++에서 큰 숫자 (최대 22 자)를 대량으로 (최대 2^24) 읽어야합니다. 그런 읽기를 수행하는 방법? 번호는 공백으로 구분되며 새 줄까지 모두 읽어야합니다. getch()를 사용하여 배열을 채우거나 더 똑똑한 해결책이 있습니까?많은 양의 숫자를 읽는 방법은 무엇입니까?
4
A
답변
4
2
읽기가 단일 스레드 인 경우 getchar_unlocked()
을 사용하면 각 작업에 대한 스트림을 잠그는 오버 헤드를 피할 수 있습니다. 문자 단위로 이동하고 숫자를 누적하여 공백을 기다립니다.
int *data = new int[MAX_LEN];
int *ptr = data;
int ch;
*ptr = 0;
while ((ch = getchar_unlocked()) != '\n') {
if (ch == ' ') {
ptr++;
*ptr = 0;
} else {
*ptr = (*ptr *10) + (ch -'0');
}
}
이 조각은 오류 검사로 "중요하지 않은"물건을 무시 물론, 그러나 당신의 입력이 "소독"때 그것은 OK입니다 : 당신이 공간을 볼 때, 수를 저장하고, 현재의 값을 제로 . 예를 들어 ACM 온라인 판사가 I/O 비용을 절약하기 위해 이와 같은 것을 사용할 수 있습니다.
0
우선 정수를 저장하는 데 적절한 유형이 필요합니다. 64 비트 정수보다 크기 때문에 구조화 된 유형이 필요할 것입니다. 당신은
같은
는 사용을위한 그것의 문서를 읽고, 도서관을 직접 작성하거나 사용할 수 있습니다.그런 다음 합계, 변환, 검색 또는 전송과 같은 숫자로 원하는 것을 명확하게해야합니다. 아는 것이 있으면 정수에 사용한 데이터 유형을 조작 할 수 있습니다.
관련 문제
- 1. 많은 양의 문자열을 저장/읽는 좋은 방법은 무엇입니까?
- 2. 많은 양의 데이터를 청크로 읽는 방법?
- 3. PHP에서 많은 양의 데이터 전달하기
- 4. 데이터베이스의 많은 양의 데이터를 비교하는 방법은 무엇입니까?
- 5. 많은 양의 Google 웹 글꼴을로드하는 방법은 무엇입니까?
- 6. 많은 양의 float 데이터를 처리하는 방법은 무엇입니까?
- 7. 데이터베이스간에 많은 양의 데이터를 이동하는 방법은 무엇입니까?
- 8. 파이썬에서 숫자를 편리하게 읽는 방법은 무엇입니까?
- 9. 많은 텍스트 파일의 많은 양의 데이터 - 처리 방법은 무엇입니까?
- 10. Sql은 많은 양의 행을 업데이트합니다.
- 11. 백그라운드에서 많은 양의 데이터로드
- 12. 엄청난 양의 숫자 중에서 가장 큰 숫자를 얻는 방법은 무엇입니까?
- 13. IOS : 많은 양의 데이터가있는 앱
- 14. Drupal보기에서 더 많은 링크를 읽는 방법은 무엇입니까?
- 15. DB에 많은 양의 데이터로드 - Android
- 16. iOS에서 많은 양의 픽셀 조작
- 17. 많은 양의 텍스트 파일보기
- 18. 많은 양의 NSString
- 19. 많은 양의 데이터와 이미지를
- 20. 페이징 많은 양의
- 21. 많은 양의 데이터 처리
- 22. 많은 양의 텍스트 보내기
- 23. mongodb에 많은 양의 데이터 합산
- 24. 에서 Datagrid 로딩 많은 양의
- 25. html을 사용하여 현명한 페이지에서 많은 양의 데이터를 표시하는 방법은 무엇입니까?
- 26. 많은 양의 텍스트를 저장하고 버전 관리를 유지하는 방법은 무엇입니까?
- 27. 서버 측에서 많은 양의 사용자를 관리하는 방법은 무엇입니까?
- 28. 많은 양의 텍스트 데이터를 저장하는 가장 좋은 방법은 무엇입니까?
- 29. 많은 양의 다른 유형의 데이터를 저장하는 가장 좋은 방법은 무엇입니까?
- 30. 많은 양의 MySQL 테이블을 검색하는 가장 효율적인 방법은 무엇입니까?
메모리가 파일을 매핑하고 포인터 연산을 사용합니까? –
'C'또는'C++'? C++의 경우 스트림 및 벡터를 사용합니다. – TZHX
'stdin' 또는 파일에서? 그리고 C 나 C++을 사용하고 싶습니까? – Mike