문자열 비교가 올바르게 비교되지 않는 이유를 알 수 없습니다. 이것은 C.C에서 문자열 비교가 올바르게 작동하지 않습니다
입니다 그것은 다음과 같이 설정 파일에서 읽는 것:
1 - ls
2 - cd
3 - history
내가 입력하면이 'C'로 시작 마지막으로 사용 된 문자열을 잡아하고 실행하는 가정 것 c를! 명령. 그러나 if (strcmp (()) = 0) 행에는 절대 들어 가지 않습니다. 내 코드의
부분은 여기에 있습니다 :
char currLine[MAXINPUTLINE];
else if (isalpha(input[1])){
int count = 1;
fileRead = fopen(".simpleshell_history", "r");
while(fscanf(fileRead, "%s\n", currLine) != EOF){
printf(input+1);
printf(currLine);
if(strcmp((input+1), currLine) == 0){
printf("%s\n", currLine);
parse(currLine);
}
}
}
이 while 루프 인쇄에서의 printf, 나는이 문제를 해결하는 방법을 알아낼 수 없습니다 나는 잠시 동안 붙어 봤는데 무엇인가 . 내가
c
1c
-c
lsc
2c
-c
cdc
3c
-c
historyc
4c
-c
!c!c
를? – klm123
무엇을 의미합니까? 지금은 if 문으로 가서 currLine을 출력한다고 가정하고 있지만 while 루프를 통해서만 반복하고 if 문으로는 진행하지 않습니다. – user2318083
당신은 거기에 printf를 가지고 있습니다. 그들은 무엇을 인쇄합니까? – klm123