방금 C + + 학습을 시작했습니다. 나는 형식의 ICS 파일을 읽기 위해 노력하고 있어요 :C++에서 구분 기호 뒤에 파트를 구문 분석하는 방법에 대한 문제가 발생합니까?
BEGIN:VEVENT
UID:2179:203860:1:002:1:person
DTSTAMP:20170921T080000Z
SUMMARY;LANGUAGE=en-ca:BIG CITY
LOCATION:CANADA
DTSTART;TZID=Eastern Standard Time:20170914T183000
DTEND;TZID=Eastern Standard Time:20170914T203000
RRULE:FREQ=WEEKLY;UNTIL=20171201T235959;BYDAY=TH
CLASS:PUBLIC
PRIORITY:5
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
END:VEVENT
내가 각 행을 읽은했고, 특정 구분 기호를 찾으 후 일부 권리를 얻고, 벡터로 밀어 문자열을 호출 . 이 출력은해야합니까
void SimpleCalendar::initialize(){
int counter = 0;
string getLine;
ifstream readFile;
readFile.open("cal.ics");
if(readFile.fail()){
throw FileException("Error! Cannot open the file.");
}
while(!readFile.eof()){
readFile >> getLine;
size_t summ = getLine.find("SUMMARY;LANGUAGE=en-ca:");
if (summ != string::npos){
course.push_back(getLine.substr(summ+1));
cout << course[counter] << endl;
counter++;
}
}
: 은 여기에 파일을 읽어 내 방법입니다 BIG CITY
은 대신 내가 받기 ->SUMMARY;LANGUAGE=en-ca:BIG
[이유 '를 while (! readFile.eof())'잘못되었습니다.] (https://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – Barmar