Dart에서 코딩 연습을 할 때 사용하는 기본적인 입출력 방법을 정리한다.
입력을 받기 위해서는 dart:io 라이브러리를 사용해야 한다.
📌 문자열 입력받기
Dart에서 문자열을 입력받으려면 stdin.readLineSync()를 사용한다.
import 'dart:io';
void main() {
// 사용자에게 입력 요청
stdout.write('문자열을 입력하세요: ');
// 문자열 입력받기
String? str = stdin.readLineSync()!;
// String str = stdin.readLineSync().toString(); 도 가능
print("입력값: $str");
}
✅ 실행 예시
문자열을 입력하세요: sky
입력값: sky
📌 공백으로 구분된 문자열 리스트 입력받기
공백을 기준으로 여러 개의 문자열을 입력받고 리스트로 변환할 수 있다.
import 'dart:io';
void main() {
stdout.write('문자열을 공백으로 구분하여 여러 개 입력하세요: ');
// 문자열을 공백 기준으로 나누어 리스트로 저장
List<String?> lst = stdin.readLineSync()!.split(" ");
for (int i = 0; i < lst.length; i++) {
print("리스트 입력 $i 번째 값: ${lst[i]}");
}
}
✅ 실행 예시
문자열을 공백으로 구분하여 여러 개 입력하세요: blue red white
리스트 입력 0 번째 값: blue
리스트 입력 1 번째 값: red
리스트 입력 2 번째 값: white
📌 정수 입력받기
stdin.readLineSync()로 입력받은 후 int.parse()를 사용하여 정수로 변환할 수 있다.
import 'dart:io';
void main() {
stdout.write('숫자를 입력하세요: ');
// 정수 입력받기
int? no = int.parse(stdin.readLineSync()!);
// int no = int.parse(stdin.readLineSync().toString()); 도 가능
print("입력받은 숫자: $no");
}
⚠️ 주의할 점
만약 문자열이 입력되면 아래와 같은 오류가 발생한다.
Unhandled exception:
FormatException: Invalid radix-10 number (at character 1)
이를 방지하려면 예외 처리를 추가하는 것이 좋다.
✅ 실행 예시
숫자를 입력하세요: 10
입력받은 숫자: 10
📌 공백으로 구분된 정수 리스트 입력받기
여러 개의 숫자를 입력받아 정수 리스트로 변환하려면 map()을 사용한다.
import 'dart:io';
void main() {
stdout.write('숫자를 공백으로 구분하여 여러 개 입력하세요: ');
// 공백으로 구분된 숫자를 입력받아 정수 리스트로 변환
List<int> nolst = stdin.readLineSync()!.split(" ").map((e) => int.parse(e)).toList();
for (int i = 0; i < nolst.length; i++) {
print("리스트 입력 $i 번째 값: ${nolst[i]}");
}
}
⚠️ 주의할 점
문자열이 입력되면 FormatException이 발생할 수 있으므로 예외 처리를 추가하는 것이 안전하다.
✅ 실행 예시
숫자를 공백으로 구분하여 여러 개 입력하세요: 10 11 12
리스트 입력 0 번째 값: 10
리스트 입력 1 번째 값: 11
리스트 입력 2 번째 값: 12
📌 정리
입력 방식 | 예제 코드 |
문자열 입력 | stdin.readLineSync() |
공백 구분된 문자열 리스트 입력 | stdin.readLineSync()!.split(" ") |
정수 입력 | int.parse(stdin.readLineSync()!) |
공백 구분된 정수 리스트 입력 | stdin.readLineSync()!.split(" ").map((e) => int.parse(e)).toList() |
🔗 Dart 자습서 참고 사이트
Write command-line apps
Basics for command-line apps.
dart-ko.dev
'코딩라이브러리 > Dart' 카테고리의 다른 글
[Dart] for, while 반복문 (with 백준 2446, 2522) (0) | 2024.07.18 |
---|---|
[Dart] if, swich 조건문 (with 백준 1330) (0) | 2024.06.18 |
dart 은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치파일이 아닙니다 (with 안드로이드 스튜디오) (0) | 2024.06.12 |
[Dart] 변수 종류, 널(null) 변수 디폴트 처리 (1) | 2024.06.04 |
Dart 주석 처리 (2) | 2024.06.03 |