그래서 cin.get()
을 사용하는 방법과 버퍼 사용 방법을 알고 있으므로 생각했습니다. 다음은 테이블에 대해 n (수 또는 행) 및 m (열 수)을 얻는 샘플 프로그램입니다. 그런 다음, n 개의 *의 m 문자를 취득하는 배열에 저장합니다하여 출력 :C++에서 cin.get()을 사용하여 줄 끝 문자를 얻는 방법
#include <bits/stdc++.h>
using namespace std;
int n, m;
char in;
char a[100][100];
int main()
{
cin >> n >> m;
for(int i = 0;i < n; ++i)
{
for(int j = 0;j < m; ++j)
{
cin.get(in);
a[i][j] = in;
if(j == m - 1)
cin.get();
}
}
for(int i = 0;i < n; ++i)
{
for(int j = 0;j < m; ++j)
cout <<a[i][j];
cout << endl;
}
return 0;
}
이 프로그램은 라인의 끝과 같은 일부 문자를 계산하는 것 같다. 누군가 그것을 고칠 수 있고 나를 설명 할 수 있습니다. 미리 감사드립니다.
는 당신이 우리 입력 예를 뿌릴 수 CIN와 cin.get()를 >> 대체? – Christophe
'#include'와'using namespace std; '는 위험한 책략입니다. g ++의 미리 컴파일 된 헤더와 함께 사용하기위한 전용이 아닌 표준 헤더를 사용하여 전체 표준 라이브러리 전체를 포함합니다. 그것은 당신이 충돌 할 수있는 많은 식별자입니다. 다행스럽게도'std' 네임 스페이스는 대학살을 방지합니다. 'using namespace std; '를 제외하고'string','swap','reverse'와 같은 일반적인 이름으로 수만개의 식별자가있는 지뢰밭을 만들어'std' 네임 스페이스를 지정할 필요를 없애고 숨어있는 기회를 기다리고 있습니다. 귀하의 프로그램을 폭파. –
user4581301
성능 노트 :'cout << endl;'은 개행과 함께 스트림의 플러시를 강요하기 때문에 꽤 비쌉니다. 속도가 필요하다면,'cout << '\ n';은 훨씬 빨라질 것입니다. 어쨌든 일반적인 원칙에서 벗어나지 않을 가치가 있습니다. – user4581301