목록문법 (10)
거의 알고리즘 일기장
using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Runtime.Serialization.Formatters.Binary; using System.Threading; namespace ConsoleApp1 { class Program { static void Main(st..
using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Runtime.Serialization.Formatters.Binary; using System.Threading; namespace ConsoleApp1 { class Program { static void Main(st..
C#은 string으로 입력받아서 parsing해서 사용. 한 문자 입력받을때는 read. using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Runtime.Serialization.Formatters.Binary; using System.Threading; namespac..
아스키 파일, 바이너리 파일 특징 아스키 파일 : 입출력이 상대적으로 간단함, 느림 바이너리 파일 : 입출력이 상대적으로 복잡함, 빠름 ( 바이너리 파일은 이진수로 저장되기 때문에 데이터가 어디까진지 알수가없음 그래서 데이터를 몇개를 보낼건지 보내는 사람, 읽는 사람 모두 알고있어야 한다는 불편함이 있다. ) 아스키파일 입출력 코드 #include #include #include using namespace std; int main() { //write, read밑에 if문 true, false를 이용해서 마음대로 조절하세요. //수동으로 닫을 수도 있지만 이렇게 하는경우가 많음 //write if(false) { ofstream ofs("my_first_file.dat"); //ofs.open("my_..
필요이유 어떤 문자열이 우리가 원하는 형식인지 아는 것은 입출력데이터를 처리할때 중요한 문제이다. ex) 주어진 문자열이 이메일 주소인가?, 전화번호 형식인가? 전 시간에 했던 입력 유효성 검사 방법으로도 처리 할 수도 있겠지만, 번거롭기도 하고 쉬운 처리방법은 아니다. 이때 간단하게 쓸수있는게 정규 표현식이다. 사용법 코드 #include #include //regular expression using namespace std; int main() { //+한개 이상의 문자, * 입력을 안받아도 괜춘 //regex re("\\d+"); //regex re("[ab]"); //regex re("[[:digit:]]{3}"); //regex re("[A-Z]+"); //regex re("[A-Z]{1,5}..
사용이유 파일이나 사용자의 입력을 받을때 그게 적절하게 들어왔는지 안왔는지 알기 위해 사용. 사용법 코드 #include #include using namespace std; void printCharacterClassification(const int& i) { cout
사용법 코드 #include #include using namespace std; int main() { stringstream os; //흘려주는것, 뒤에다 그냥 붙임, insert생각하면됨 //endl도 들어감 os
#include #include using namespace std; int main() { //+기호 출력 cout.setf(ios::showpos); cout
setw, setprecision #include #include using namespace std; int main() { double a = 1.222222f; char buf[5]; //5개까지 입력을 받음, 마지막은 nullchar용 cin >> setw(5) >> buf; cout
1. 얕은 복사와 깊은 복사가 필요한 이유 일반적으로 객체를 복사할때는 새로운 객체를 만들어서 그 안에 복사할 객체들을 복사한다. 이때 밑의 그림과 같은 오해를 할수도 있다 하지만, 참조된 값을 복사하면 밑의 그림과 같이 저런식으로 참조값만 복사가 된다. 이게 뭐가 문제냐?? 라고 생각할수도 있지만 충분히 문제가 생길수 있다. 예를들면 만약 하나의 클래스가 있고 A와 B는 그 클래스의 인스턴스이다. 그리고 B는 A의 값을 복사했다. 이때 소멸자에 클래스 포인터 변수를 delete 시켜주는 기능이 있다면 A가 소멸할땐 문제가 없겠지만 뒤이어 B가 소멸할때 분명히 에러가 날것이다. ( 밑의 코드 참조 ) #include using namespace std; class A { public: int value;..