저는 초보자이며 학교용입니다.getline() 첫 줄을 읽지 않습니다.
약 28kb 크기의 파일을 읽으려고합니다. 이 프로그램은 작동하지만 처음 41 행은 인쇄되지 않습니다. 그것은 작은 파일로 잘 작동합니다. 처음에는 char 배열을 읽고 문자열로 전환했습니다. ..
어떤 도움을 크게 apreciated 될 것이다.. 감사 가 나는 또한 로그 버퍼를 변경 시도하지만 분명히 내가이 같은 느낌 그림 그것을 매우 간단하지만, 단지 문이 안 열려 있어야합니다 .. 충분히 커야한다 !
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
#include <cstdio>
#include <cerrno>
using namespace std;
struct espion
{
char nom[30];
char pays[20];
char emploi[29];
};
int main()
{
const int MAX_NOM = 30, MAX_PAYS = 20, MAX_EMPLOI = 29;
char nomFichier[50] = "espion.txt";
ifstream aLire;
aLire.open(nomFichier, ios::in|ios::binary);
if(!aLire.is_open()){
exit(EXIT_FAILURE);
}
std::string infoEspion;
while(aLire)
{
infoEspion.clear();
std::getline(aLire, infoEspion);
cout << infoEspion ;
}
aLire.close();
system("pause");
return 0;
}
줄 수는 몇 자입니까? 그것들 중 적어도 하나가'std :: string :: max_size()'보다 크면 추출이 실패합니다. – 0x499602D2
'getline'은 제대로 작동하지만'cout'에 인쇄 할 때 일부 문자가 손실 될 수 있습니다. 모든 줄에'infoEspion.size()'를 더하고 파일 크기와 일치하는지보십시오. 그렇다면 getline보다 입력을 정확하게 읽을 수 있습니다. – pts
각 I/O 작업 (열기, getline, 닫기)에 오류가 있는지 확인하고 오류가 발생하면 프로그램을 중단하십시오. 완료되면 I/O 오류가 없음을 명시 적으로 질문을 업데이트하십시오. – pts