라이브러리에서 빈 패킹 알고리즘 함수에 액세스하는 프로그램을 작성 중이므로 대학 시절부터 많이 사용하지 않았으므로 C가 녹슬 었습니다. 내가 호출하는 함수는 3 개의 정수 배열을 전달해야한다. 커맨드 라인에서 이걸 부를 겁니다. argv를 사용해야합니까? 아니면 STDIN? 입력 배열은 잠재적으로 각각 50 ~ 100 개의 요소가 될 수 있습니다. 어쨌든 나는 문자열을 파싱하여 배열로 가져와야 할 것이라고 생각합니다. 그렇게 할 수있는 쉬운 방법이 있습니까?정수 배열을 명령 줄에서 입력으로 제공합니다.
1
A
답변
4
대용량 배열의 경우, 일반적으로 운영체제의 제한으로 얼마나 많은 인수를 가질 수 있는지 알기 때문에 표준 입력을 사용하고 싶습니다.
또한 입력 형식이 필요합니다. 첫 번째 숫자 n
이 첫 번째 배열의 요소 수이고 그 다음에 요소 값이 오는 식입니다. 그럼 나는 다음과 같이 할 것입니다 :
#include <stdlib.h>
#include <stdio.h>
int main()
{
// you need to implement read_number yourself
int n = read_number(stdin);
// allocate array
int *array = (int*) malloc(n*sizeof(int));
// read n numbers into array
for (int i=0; i < n; ++i)
array[i] = read_number(stdin);
// and so on...
}
당신은 일반적인 생각을합니다. 너 자신 read_number
을 구현하거나 그 방법에 대한 예제를 찾아야한다. 어떻게 든 개별적인 번호를 식별해야합니다. 각 자리수를 다음 공백 문자까지 구문 분석합니다. 그런 다음 공백 문자로 표준 입력의 각 숫자를 구분할 수 있습니다.
예를 들어 아래에 @ypnos 제안 scanf 솔루션을 사용할 수 있습니다.
3
해당 요소의 경우 표준 입력을 사용해야합니다. 어쨌든 아무도 손으로 입력하지 않으며 ./program < file
만큼 쉽습니다.
구문 분석은 scanf와 큰 차이가 없습니다. 배열을 구성하는 모든 숫자 앞에 요소의 수를 입력해야한다고 정의하십시오. 그런 다음 scanf("%d", &elemcount)
을 입력 한 다음 for 루프를 elemcount로 다시 scanf
을 사용합니다. 그것의 아름다움은 scanf가 사용자가 요소 수와 다른 수 사이에 넣을 수있는 모든 공백 문자, 개행 문자 등을 처리한다는 것입니다.
관련 문제
- 1. MVC 명령 줄에서 Java
- 2. 줄에서 정수 구문 분석
- 3. 명령 줄에서
- 4. 구문 입력으로 전선의 배열을 사용하는
- 5. 명령 줄에서 값을 보내시겠습니까?
- 6. IIS에서 명령 줄에서
- 7. 명령 줄에서 오류가 발생했습니다.
- 8. 명령 줄에서 groovy 실행
- 9. 명령 줄에서 리디렉션 입력
- 10. 명령 줄에서 web.config 변경
- 11. 명령 줄에서 lua 코드를로드하십시오.
- 12. 명령 줄에서 cronjob 설치
- 13. 명령 줄에서 Django 디버깅
- 14. SWT & JFace 명령 줄에서
- 15. 명령 줄에서 함수 호출
- 16. * linux 명령 줄에서
- 17. 테스트 열거 경고를 제공합니다 : 포인터와 정수
- 18. PHP 함수 구문 조회 (명령 줄에서)
- 19. vim 명령 줄에서 vim 스크립트를 실행하십시오.
- 20. Visual Studio 명령 프롬프트 이외의 명령 줄에서 regasm.exe를 실행하는 방법?
- 21. 내가 명령 줄에서 이것을 실행하고
- 22. RAD7 프로젝트를 명령 줄에서 빌드
- 23. python 명령 줄에서 VirtualBox 제어
- 24. 명령 줄에서 addr2line을 사용하는 방법
- 25. OpenJDK 코어 덤프를 명령 줄에서?
- 26. 명령 줄에서 디버그 모드 실행
- 27. 명령 줄에서 SQLite3을 어떻게 빌드합니까?
- 28. 명령 줄에서 .NET 서비스 실행
- 29. 명령 줄에서 최신 버전으로 업데이트
- 30. 명령 줄에서 Eclipse 비교기 사용
제한된 인수의 수가 아니라 인수의 길이라고 생각합니다. – GWW
둘 다에 대한 제한이 있습니다. – ypnos