초보자 용 C++입니다.struct에 대한 포인터가 작동하지 않습니다.
데이터 구조를 배우고 있으며 루프 내부의 함수를 가리키는 방법을 알 수 없습니다. 예 :
struct book
{
string author;
string title;
int publicationYear;
};
void setBook(book&);
int main()
{
book bookInfo[3];
setBook(bookInfo);
return 0;
}
void setBook(book &bookToSet)
{
for(int i = 0; i < 3; i++)
{
cout << "Who is the author of the book: ";
cin >> bookToSet[i].author;
cout << "What is the title of the book: ";
cin >> bookToSet[i].title;
cout << "In what year was the book published: ";
cin >> bookToSet[i].publicationYear;
}
}
이것은 작동하지 않으며 이유가 확실하지 않습니다.
함수의 루프 안에서도 (bookToSet + 1).author
(주소 참조)을 작성하려고 시도했지만 작동하지 않았습니다.
나는 포인터와 주소로 상당히 어려움을 겪고있다.
편집 :
제목, 작성자 및 발행 연도를 인쇄하기 위해 setBooks와 비슷한 기능을 만들려고했으나 컴파일되지 않습니다. 오류가 어디 있습니까? 당신은 setBook
기능
void printBooks(book bookToPrint, int cout)
{
for(int i = 0; i < cout; i++)
{
cout << bookToPrint[i].title << " " << bookToPrint[i].author << " " << bookToPrint[i].publicationYear << endl;
}
}
"루프 내부 함수를 가리키는 방법"이 문장은 불완전한 것처럼 보입니다. 또한 "이것은 작동하지 않습니다"라는 정보가 너무 적습니다. 어떻게 작동하지 않습니까? 컴파일러 오류? 런타임 에러? 예기치 않은 결과가 있습니까? – user463035818
btw 코드에서 포인터/주소가 보이지 않고 포인터를 사용할 필요가 없습니다. – user463035818
편집 할 때'count'와'std :: cout'을 혼동하고 첫 번째 인수 유형. 배열을 함수에 전달하는 방법에 대한 자습서를 찾아 볼 수 있습니까? – Lanting