저는 몇 시간 동안이 문제를 해결하기 위해 노력했으며 도움을 받고 싶습니다. 내일 예정된 프로그램이 있습니다. 기본적으로 성 및 이름이있는 입력 파일이 있고 그 다음 네 개의 부동 소수점 숫자가 있습니다. 이것은 다음과 같습니다 :C++에서 getline을 사용하여 숫자와 이름을 읽으시겠습니까?
John W.
Smith
78.8 56.5 34.5 23.3
Jane
Doe
34.5 23.4 35.7 87.0
No
More
포인터의 배열로 이름과 성을 읽어야합니다. 지금까지 나는 각 행에서 변수 "name"을 읽으려고하고 텍스트 파일로 출력하여 데이터를 올바르게 읽었는지 확인하려고합니다. 불행히도, 플로트를 읽은 후에 멈추고, 다음 이름에서는 읽지 않습니다.
char *newPtr;
char *nameList[50] = {0};
char name[15];
int i = 0;
infile.getline(name, 15);
while (strcmp (name, "No") != 0)
{
newPtr = new char[15];
strcpy(newPtr, name);
nameList[i] = newPtr;
infile.getline(name, 15);
outfile << name << endl;
i++;
}
지금까지 출력이 단지되었습니다
존 W.
스미스
78.8 56.5 34.5 23.3
편집 : 루프는 현재 무한하지만,에서 내 결과물, 나는 아직 두 번째 이름을 실제로 처리하지 않았다는 것을 안다. 나는 첫 번째 숫자에서 멈춘다.
도움을 얻을 수 있다면 좋을 것입니다. 나는 내가 사용할 수있는 함수에 매우 제한되어있다. 나는 getline 함수를 사용해야한다고 확신한다. 나는 아무것도 사용할 수 없다.
char *newPtr;
char *NameList[6] = {0};
char Name[20];
int a = 0;
infile.getline(Name, 20);
while(strcmp(Name, sentinel) != 0)
{
newPtr = new char[20];
strcpy(newPtr,Name);
NameList[a++] = newPtr;
infile.getline(Name,20);
}
우리는 아직 문자열에 대해 가르쳐되지 않았으며 나는 우리가 이야기하지 않은 것을 사용할 수 없습니다 확신 :
그녀의 슬라이드에서, 선생님은 이름에 읽는 우리를 돕기 위해이 코드를 가지고 클래스. 지금까지 의견을 주신 모든 분들께 도움을 주셔서 감사합니다.
문제가 아니지만 메모리가 있습니다 while 루프에서 누출. 왜'std :: string'이 아닌 char 배열을 사용하고 있습니까? 또한 첫 번째'strcmp '는 할당되었지만 초기화되지 않은'name' (null 종료 문자가 없음을 의미)을 비교합니다. –
내 선생님이 수업에서 어떻게하는지 알려주는 방법입니다. 나는 또한 매우 혼란 스럽다. – kmd12
선생님이하라고 말씀하신 것에 대해 혼란 스럽다면 아마 그와 이야기해야할까요? –