간단한 파일 입력을 위해 fscanf를 사용하는 데 익숙합니다. 그래도 스트림으로 이동하기 위해 노력하고있어 나는이 작업을 수행 할 수 있도록하고 싶습니다 : 당신이 그것을 스틱, 파일을 읽어 상대적으로 쉽게 볼 수스트림에 대한 fscanf 유형 함수는 무엇입니까?
fscanf(file, %d %s, int1, str1);
최초의 하나에 건너 int로 컨테이너, 그리고 첫 번째 문자열을 char *로 변환합니다. 필자가 원하는 것은 스트림 함수를 사용하여 fstream으로이 작업을 수행하는 것입니다. 이것은 제한된 스트림 지식으로 내가 생각해 낸 것입니다.
while((fGet = File.get() != EOF))
{
int x;
int y;
bool oscillate = false;
switch(oscillate)
{
case false:
{
x = fGet;
oscillate = true;
break;
}
case true:
{
y = fGet;
oscillate = false;
break;
}
}
}
기본적으로 파일을 스캔하여 첫 번째 int를 x에 넣고 두 번째를 y에 넣기를 원합니다.
당신이 말할 수있는 것처럼 이것은 몇 가지 이유로 매우 나쁘지 만, 실제로 이것을 사용하지는 않겠지 만 생각할 수있는 전부입니다. 이 문제를 해결할 더 좋은 방법이 있습니까?
초기 설명에 int와 char *가 있지만 의사 코드에 int가 두 개있는 이유는 무엇입니까? –
@Matt. 그것은 정말로 그것입니다. 나는 단지 다른 것처럼 느꼈다. – Jcrack
@MooingDuck : 나는 일반적으로 해결책에 동의하지만,'str1'이'char * '로 선언되면'if (in >> int1 >> std :: setw (size)) >> str1) {...}'. 물론,'fscanf()'의 사용은 비슷한 문제가 있습니다 만,'char *'에 대한 입력은 size가 제약이 없다면'gets()'와 실질적으로 동일하다는 것을 알아 두는 것이 중요하다고 생각합니다. –