• CSE207 객체지향 강좌 및 C++ 관련, 누구나 묻고 답하는 게시판 입니다.
  • CSE207 수강생이 아니여도 편안하게 질문하세요.
  • 첨부화일은 이미지 화일 혹은 zip 화일로 업로드 하기를 권합니다.

제목for 문 내 조건에 쓰인 변수 사용 횟수, #lab7 응용5번 string 관련 질문입니다.2019-10-06 15:13
작성자

1. for 문 내 조건에 쓰인 변수 사용 횟수


1번줄 for (int i = 0; i <= textbook.length() + 1; i += max_length)

2번줄 cout << i << endl;

3번줄 cout << textbook.substr(i, max_length) << endl;


이렇게 'i'를 두번 사용하려고 했는데요. 

2번 줄까지 i는 문제가 없는데, 3번 째 줄 i에서 i가 지정되어 있지 않다고 오류가 나오더라구요.

C++은 'i'를 한 번 밖에 사용하지 못하나요?


파이썬에서는

for i in range(1, 10):

print(i)

print(2*i)

이렇게 i를 여러 번 썼던 것 같거든요.


===================================================================================


2. #lab7 응용5번 string 관련 질문입니다.


ofstream fffout("new_apply5.txt");

string s1, s1_box;

while (apply5_file) { 

apply5_file >> s1;

s1_box = s1_box + s1 + " ";        #띄어쓰기, 줄바꿈자마다 s1이 초기화되는 것을 s1_box에 넣으려고 했습니다.

if (s1 == "sample.") {          #응용5번 주어진 텍스트의 마지막 단어(s1)이 "sample." 이어서 

break;                  #이 부분이 없으면 마지막에 "sample."이 두 번 반복돼서 추가 했습니다.

}

}

for (int i = 0; i <= textbook.length(); i += max_length)         #textbook 은 주어진 텍스트를 string으로 저장한 것입니다.

fffout << s1_box.substr(i, max_length) << endl;       # max_length는 cin으로 입력한 한 줄당 글자수입니다.


주어진 텍스트를 어떻게 자를까 고민하다가 string.substr(시작인덱스, 한 줄 길이)을 사용하면 될 것이라 판단하고,

주어진 텍스트를 string으로 저장하는 것을 목표로 하고 작성했습니다.


get(ch)로 가져오려 했으나, char 형태로 가져오면 subst 함수가 적용되지 않고, char을 string으로 형변환하려 했으나 되지 않아서 포기했습니다.

그래서 그냥 s1_box라는 새로운 변수를 만들어서 s1을 일일히 저장했는데요.

진하게 친 부분(날코딩, 하드코딩) 을 혹시 s1의 마지막이면 break거는 소프트코딩 방식으로 바꾸는 방법이 있는지 여쭙고 싶습니다.



##lab7# 응용5# for
댓글