탭으로 구분 된 example.txt
파일 :
1 MODEL1
2 MODEL2
3 MODEL3
내 주요:
int main()
{
int number;
char model[6];
list myList;
ifstream infile;
infile.open("example.txt");
//reading first line from file
infile >> (int)number;
infile >> model;
myList.Insert({ number, model}, 1); // error here on model
return 0;
}
myList 클래스의 의사 :
struct data{
int number;
char model[6];
};
struct Node{
data data;
...
};
Node = myNode[100]
void Insert(data x, int position)
{
myNode[position].data = x;
}
example.txt
파일 에서 두 번째 행의 문자를 읽는 데 문제가 있습니다. MODEL1, MODEL2, MODEL3을 myList로 어떻게 읽습니까?
{number, model}
멤버 변수 model
를 local의 복사본으로 초기화하려고 model
하지만 원시 배열을 복사 초기화 할 수 없습니다.
다음을 사용해야합니다 std::string
.
int main()
{
int number;
std::string model;
list myList;
ifstream infile;
infile.open("example.txt");
infile >> number;
infile >> model;
myList.Insert({number, model}, 1);
}
과
struct data
{
int number;
std::string model;
};
이것은 또한 @ user2079303 및 @JoachimPileborg가 발견 한 버퍼 오버 플로우 버그를 수정합니다.
당신은 할 수 있습니다 또한 원시 배열, 수동으로 유지 strncpy
로컬 model
멤버로 배열 model
. 그러나 이것은 C ++에서 권장되지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다