을 삭제하지 않으므로 이름과 숫자가 많은 입력 파일이 있습니다. 나는 각 문자열에서 모든 데이터를 추출 할 수 있도록 문자열을 나누기 위해 strtok을 사용하기 시작했습니다. 모든 것이 올바르게 작동하는 것처럼 보입니다. 그러나 무엇인가의 이유로 그것은 개행 문자를 버리지 않습니다.strtok는 개행 문자
int procFile(PERSON **data, FILE* fpFile)
{
// Local Declaration
char temp[1000];
char proc[15];
char *entry;
char *loc;
int success = 0;
// Statement
if(fgets(temp, sizeof(temp), fpFile))
{
(*data) = aloMem(); // free
entry = temp;
loc = strtok(entry, "()-");
strcpy(proc, loc);
loc = strtok(NULL, "()-");
strcat(proc, loc);
loc = strtok(NULL, "()-");
strcat(proc, loc);
sscanf(proc, "%ld", &(*data)->phone);
loc = strtok(NULL, "\0");
strcpy((*data)->name, loc);
success++;
printf("%s1", (*data)->name);
}
return success;
}// procFile
제대로 작동하는지 확인하기 위해 결과를 인쇄 해 보았습니다. 이것이 출력물입니다.
Brown, Joanne
1South, Frankie
1Lee, Marie
1Brown, Joanne
1Trapp, Ada Eve
1Trapp, David
1White, D. Robert
1Lee, Victoria
1Marcus, Johnathan
1Walljasper, Bryan
1Trapp, Ada Eve
1Brown, Joanne
1Andrews, Daniel
이 아니라 바로 이름 뒤에보다, 줄 바꿈에 각각의 이름 뒤에 1
를 인쇄합니다. 누군가가 내게 문제를 해결할 수있는 방법을 설명 할 수 있습니까? man fgets
따르면
에 구분 기호 목록에 t을 : \ http://stackoverflow.com/a/16000784/ 694576 – alk