본문 바로가기

setbuf,setvbuf C언어 setbuf, setvbuf Setbuf - void setbuf (FILE * stream, char *buffer); Setbuf라는 함수는 파일 포인터를 buf만큼 사용해 준다는 의미입니다.예로 char buf[BUFSIZ];setbuf('파일이름',buf);이런식으로 되어있으면 BUFSIZ는 512사이즈이다. 따라서 파일 포인터를 512만큼 사용하겠다는 의미입니다.setbuf('파일',NULL); 이런식으로 되어있으면 함수 내부에서 필요한만큼 크기를 할당해서 사용합니다. 예제 1234567891011#include int main(void) { char buf[BUFSIZ]; FILE *fp = fopen("test.txt", "w"); setbuf(fp, buf); //파일 포인터를 버퍼.. 더보기
stdio.h 3번째 stdio.h 3번쨰 feof()는 파일이 마지막인지 알려줍니다. int feof(FILE *stream) 1234567891011121314#include int main(void) { FILE *fp; char str[1024]; fp = fopen("text.c", "r"); while (!feof(fp)) { fgets(str, 1024, fp); printf("%s", str); } fclose(fp); return 0;}cs feof()는 마지막이면 1을 아니면 0을 출력합니다. ferror() 은 파일 스트림에 오류가 생기지 않으면 0을 아니면 오류입니다.. int ferror(FILE *stream) 1234567891011121314151617#include int main(void){ .. 더보기
C++ 14일차 C++ 14일차 포인터의 깊은 복사와 얕은 복사 1234567891011121314151617#include #include using namespace std; int main(void) { int *a = new int(5); int *b = new int(3); *a = *b; //깊은 복사(값을 복사) : 주소의 값을 바꾼다. a = b; //얕은 복사(참조만 복사) : 주소를 바꾼다. delete a; delete b; return 0;}Colored by Color Scriptercs 위의 10번째 줄을 보았을때 *a = *b가 있다.*a = *b의 의미는 a라는 변수의 주소의 값을 b라는 변수의 주소의 값을 접근하여 *a는 *b값으로 바뀌게 된다. 이를 깊은 복사라 한다. 위의 11번째 줄을.. 더보기