txt파일에 1,4,120,21043,125125, .....이런식으로
몇개인지 모르는 숫자가 오름차순으로 쫙있는데
이걸 배열에 앞에서부터 넣고싶은데 몇개인줄 모르니까 배열을 처음에 설정해줄수가없잖아
거기다가 애초에 소스안에있는거면 찾겠는데
파일에있는거라 파일입력으로 input받아야되는데 input받는 개수를 모르잖아...
어떻게 해야하지 그 동적할당인가 뭔가 해봣는데 개망함 ㅋㅋㅋ 어떻게 해야되 형들
int main()
{
ifstream input;
input.open("c:\\work.txt"); //파일경로 선택
int arraynum;
int *p = new int[arraynum];
char dot;
for(int i = 0;;i++)
{ input >> p[i] >> dot;
if(p[i]==NULL)
{break;}
}
cout << p[2];
}
파일을 열었으면 닫아야 할거아니야
vector
std::v?c?or
아 과제를 너무 쉽게 알려준다
vector 쓰라고? 꼭 그거 써야함? 그거 완전 편하게쓰라고 완성본 아님? 그거말고는 답없나? 1학년때 안배운것같은데 써도되나;; 나 좀고지식함 ㅋ 파일 닫는건 일부러 아직 안쓴거 미안해요
malloc / realloc을 못쓰면 편한걸 써야지 별 수 있나
안 배운게 무슨 소용이냐 무슨; 똥싸는 것도 배워서 할 기세네
그렇군요... 근데 vector 쓰면 끝배열이 몇번인지 알 수 있음? 끝배열이 몇번째인지는 알아야되는데.. 그래야 진짜 과제의 알고리즘을 만들 수 있는데
당연히 된다
http://www.cplusplus.com/reference/vector/vector/size/
오오 감사합니다 ㅋㅋ
for(int i = 0;numarray[i]!=NULL;i++) 질문.. 이런식으로 해서 파일입력 하려고하는데 마지막에 숫자 그다음에 넣을게 빈칸이면 그만 입력시키려고 하는데 맞는지...
근데 input >> 벡터배열이름.push_back(i) 로 햇는데 오류 error C2678: 이항 '>>' : 왼쪽 피연산자로 'std::ifstream' 형식을 사용하는 연산자가 없거나 허용되는 변환이 없습니다. IntelliSense: 이러한 피연산자와 일치하는 ">>" 연산자가 없습니다. 뜨는데 뭐가 문제지 ㅠㅠ
음.. 다른데로 입력시키고 다시 옮기는방법 어케하지... 어렵네...
http://ideone.com/dl7Exu
1 이거 아닌것 같은데 그냥 입력 아닌가요? 파일입력으로 불러와야되서
cin을 ifstream으로 바꿔도 되는지 확인해보셈
저 소스코드에 있는거 자체가 잘 이해도안되고 죄송하네요... cin을 ifstream으로 바꾼다고해도 이해가 안가는 소스를 그냥 무턱대고 쓸 순 없고 참조만 할게요... 애초에 지금 짜야되는 알고리즘은 선형탐색, 이진탐색 이라서 ... 그런데 이 과제가 ㅈ같은게 선형탐색,이진탐색은 좀 고민하면서 책,인터넷 참조하면서 하면 할 수 있을 것 같은데 txt파일에 있는 숫자입력하는게 너무 힘드네요 파일입출력을 따로 배운적이 없어서...
이건 뭐 김치찌개를 끓여야하는데 냉장고에서 김치 꺼내는 법을 모르는 격이네
EOF
모르겠으면 하지마 그게 니 학점 제대로 받는거니까
이거 x로 먼저 input 받은다음에 push_back(x) 해서 넣는건 해결함 문제는 무한루프라서 중단시켜야되는데 이걸 또 고민 ㅋㅋ
고마워 홀형 if(input.fail()){ input.ignore(); input.clear();
이렇게 if문 for문안에다가 넣어주니까 알아서 중단하더라 이거 원리는 모야?? 신기하네