방금 C를 배우는 과정을 시작했고 명령 줄 인수 문제로 부딪 혔습니다. 할당은 다음과 같습니다 (더 많은 내용이 있지만 처음에는 명령 줄 인수에 대한 부분입니다).
- 프로그램에서 단일 음수가 아닌 단일 명령 줄 인수를 받아 들여야합니다.
- 프로그램이 명령 줄 인수없이 또는 하나 이상의 명령 줄 인수없이 실행되면 프로그램에서 사용자가 선택한 오류 메시지를 인쇄하고 1을 반환해야합니다.
- 다음과 같이 가정 할 수 있습니다. 사용자가 명령 줄 인수를 제공하면 음수가 아닌 정수 (예 : 1)가됩니다. 그것이 실제로 숫자인지 확인할 필요가 없습니다. 명령 줄 인수 조건 pset2 caesar
#include <stdio.h>
#include <cs50.h>
#include <string.h>
int main(int key, string plain[]) {
if (key < 0 || plain[key] > 1)
{
printf("error\n");
return 1;
}
else
등 ... 코드가 계속됩니다.
이제 여러 가지를 시도했지만 wall.The 컴파일러에서 실행중인 if 조건을 받아들이고 싶지 않아요, 포인터와 정수 사이의 비교 오류가있다 배정 목록에있는 굵게 표시된 조건을 나타냅니다. 그래서 나는 명령 행 인자의 argv 부분이 사용자가 넣은 문자열의 배열이라는 것을 이해했다. 그래서 나의 생각은 사용자가 하나 이상의 문자열을 주었을 때 오류 메시지를 주어야한다는 것을 컴파일러에게 알려주기 위해서였다. 그래서 나는 "plain [key]> 1)"이라고 표시됩니다. 아니면 커맨드 라인 논쟁에 대한 제 이해가 완전히 끝났습니까? 감사.
'plain [key] '는'int'가 아닌'string' 일 것입니다. –
'plain [key]'가 범위를 벗어난 것 같습니다. 'main'에 전달되는 매개 변수를 확인해야합니다. – Gerhardh
C에는'string' 유형이 없습니다. 그게 뭐야? 'main'의 시그니처는'int main (int, int * [])'이거나 마지막 aprameter는 int **가 될 수 있습니다. – Olaf