수업 과제 때문에 C++ 프로그래밍을 하고 있습니다.
파일로 입력을 받아들여 파일로 출력하는 과제인데요.
질문 들어갑니다.
1) 자료가 저장된 파일을 읽기용으로 읽어들일 때 파일 오류 처리 방법을 알려주세요. C에서는 'FILE *' 포인터가 NULL인지 확인하면 되는데 C++에서는 잘 모르겠네요. 제가 가진 책이 워낙 부실해서...
2) 파일을 읽어들일 때 빈줄을 무시하는 방법을 알려주세요.
ifstream으로 읽어들이신다면 is_open함수를 이용하시면 될겁니다.
그리고 파일내용을 어떻게 처리하시는지 모르겠지만.. 토큰단위로 처리를 하신다면
char sztmp[256]; ifstream ifs; while (!ifs.eof()) { ifs >> sztmp; }
이렇게 하시면 빈칸 빈줄 탭과 같은 문자들은 무시가 되어서 읽힙니다.
------------------------------------------------------------------------------- It's better to appear stupid and ask question than to be silent and remain stupid.
rdstate() good() eof() fail() bad()
위 함수를 쓰면 되지 않을까요?
------------------------ 냐옹~~
위의 코드는 다음과 같이 되어야 합니다.
while (ifs >> sztmp) { // do something }
제가 Borland C++ v3.1을 쓰는데요.. (예전 판이기는 하지만..)
is_open() 메쏘드는 없다고 나오는데요...
이렇게 난감할 때가...
올해에는 꼭 노트북이 생기게 해 주세요.
그렇다면 이렇게 해도 됩니다.
ifstream ifs("myFile"); if (!ifs) { // handle error }
http://cplusplus.com
저도 iostream 에 대해서는 약한 편이라 iostream 을 사용하다가 막히면 주로 위 사이트에서 참고 합니다. 보기 쉽게 잘 나와있어요. 예제도 같이 있고
감사합니다.
int main() { ifstream ifs; ifs.open("C:\\test.txt", ifstream::in); while (ifs.good()) cout << (char) ifs.get(); return 0; }
----------------------------------------- that which doesn`t kill us make us strong
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
ifstream으로 읽어들이신다면 is_open함수를 이용하시면 될겁니다
ifstream으로 읽어들이신다면 is_open함수를 이용하시면 될겁니다.
그리고 파일내용을 어떻게 처리하시는지 모르겠지만.. 토큰단위로 처리를 하신다면
이렇게 하시면 빈칸 빈줄 탭과 같은 문자들은 무시가 되어서 읽힙니다.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
rdstate()good()eof()fail()bad()
rdstate()
good()
eof()
fail()
bad()
위 함수를 쓰면 되지 않을까요?
------------------------
냐옹~~
[quote="chadr"][code:1]char sztmp[25
잘못된 방법입니다. 그 이유는
Why does my input seem to process past the end of file?
위의 코드는 다음과 같이 되어야 합니다.
eof(), fail(), bad() 같은 함수는 쓸 일이 거의 없더군요.
제가 Borland C++ v3.1을 쓰는데요.. (예전 판이기는 하지만
제가 Borland C++ v3.1을 쓰는데요.. (예전 판이기는 하지만..)
is_open() 메쏘드는 없다고 나오는데요...
이렇게 난감할 때가...
올해에는 꼭 노트북이 생기게 해 주세요.
그렇다면 이렇게 해도 됩니다.[code:1]ifstream ifs&#
그렇다면 이렇게 해도 됩니다.
http://cplusplus.com저도 iostream 에 대해
http://cplusplus.com
저도 iostream 에 대해서는 약한 편이라 iostream 을 사용하다가 막히면 주로 위 사이트에서 참고 합니다.
보기 쉽게 잘 나와있어요.
예제도 같이 있고
감사합니다.
감사합니다.
올해에는 꼭 노트북이 생기게 해 주세요.
ㅡㅡ;;;; 이렇게 하면 됩니다
int main()
{
ifstream ifs;
ifs.open("C:\\test.txt", ifstream::in);
while (ifs.good())
cout << (char) ifs.get();
return 0;
}
-----------------------------------------
that which doesn`t kill us make us strong
-----------------------------------------
that which doesn`t kill us make us strong
댓글 달기